From 8dbca08b1e6f679c36a687d7bfde5b7e48a4a289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9A=E4=BA=9A=E7=94=B7?= Date: Fri, 17 Sep 2021 14:21:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E5=9F=BA=E6=9C=AC=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 23 - .editorconfig | 39 - .env | 3 - .env.development | 1 - .env.production | 1 - .env.test | 4 - .eslintignore | 1 - .gitattributes | 1 - .gitignore | 21 - .prettierrc | 5 - Dockerfile | 29 - README.md | 134 - babel.config.js | 6 - idea.config.js | 24 - package-lock.json | 17608 ---------------- package.json | 119 - public/api_address_config.js | 12 - public/avatar2.jpg | Bin 80189 -> 0 bytes public/cdn/babel-polyfill/polyfill_7_2_5.js | 6953 ------ .../cdn/font-icon/font_2316098_umqusozousr.js | 1 - public/color.less | 7720 ------- public/goright.png | Bin 1105 -> 0 bytes public/index.html | 261 - public/logo.png | Bin 8929 -> 0 bytes public/tinymce/langs/zh_CN.js | 261 - .../tinymce/skins/lightgray/content.min.css | 554 - public/tinymce/skins/lightgray/skin.min.css | 2159 -- public/v2.js | 1 - src/App.vue | 44 - src/api/GroupRequest.js | 30 - src/api/api.js | 160 - src/api/index.js | 10 - src/api/login.js | 89 - src/api/manage.js | 225 - src/assets/background.svg | 69 - src/assets/checkcode.png | Bin 2236 -> 0 bytes src/assets/daiban.png | Bin 3632 -> 0 bytes src/assets/duban.png | Bin 4933 -> 0 bytes src/assets/guaz.png | Bin 7491 -> 0 bytes src/assets/home.png | Bin 94802 -> 0 bytes src/assets/less/JAreaLinkage.less | 259 - src/assets/less/TableExpand.less | 15 - src/assets/less/codemirror_idea.css | 1 - src/assets/less/common.less | 61 - src/assets/less/index.less | 28 - src/assets/logo.png | Bin 5528 -> 0 bytes src/assets/mobileBg.png | Bin 17926 -> 0 bytes src/assets/mobileHome.png | Bin 289240 -> 0 bytes src/assets/nodata.png | Bin 101556 -> 0 bytes src/assets/pdf4.jpg | Bin 50960 -> 0 bytes src/assets/userLogin.png | Bin 17047 -> 0 bytes src/assets/wenhao.png | Bin 846 -> 0 bytes src/assets/zaiban.png | Bin 10332 -> 0 bytes src/cas/sso.js | 77 - src/components/ChartCard.vue | 111 - src/components/Ellipsis/Ellipsis.vue | 0 src/components/Ellipsis/index.js | 0 src/components/README.md | 43 - src/components/_util/Area.js | 79 - src/components/_util/StringUtil.js | 35 - src/components/_util/util.js | 12 - src/components/chart/AreaChartTy.vue | 88 - src/components/chart/Bar.vue | 50 - src/components/chart/BarAndLine.vue | 60 - src/components/chart/BarMultid.vue | 96 - src/components/chart/DashChartDemo.vue | 187 - src/components/chart/IndexBar.vue | 61 - src/components/chart/LineChartMultid.vue | 95 - src/components/chart/Liquid.vue | 80 - src/components/chart/MiniArea.vue | 69 - src/components/chart/MiniBar.vue | 76 - src/components/chart/MiniProgress.vue | 75 - src/components/chart/Pie.vue | 70 - src/components/chart/README.md | 367 - src/components/chart/Radar.vue | 90 - src/components/chart/RankList.vue | 81 - src/components/chart/StackBar.vue | 54 - src/components/chart/TransferBar.vue | 66 - src/components/chart/Trend.vue | 84 - src/components/chart/chart.less | 13 - src/components/chart/mixins/ChartMixins.js | 10 - src/components/dict/JDictSelectTag.vue | 110 - src/components/dict/JDictSelectUtil.js | 147 - src/components/dict/JMultiSelectTag.vue | 132 - src/components/dict/JSearchSelectTag.vue | 246 - src/components/dict/README.md | 181 - src/components/dict/index.js | 16 - src/components/index.less | 4 - src/components/jero/JAreaLinkage.vue | 163 - src/components/jero/JCategorySelect.vue | 269 - src/components/jero/JCheckbox.vue | 46 - src/components/jero/JCodeEditor.vue | 479 - src/components/jero/JCron.vue | 65 - src/components/jero/JDate.vue | 160 - src/components/jero/JEditableTable.vue | 3222 --- src/components/jero/JEditor.vue | 158 - src/components/jero/JEllipsis.vue | 32 - src/components/jero/JFormContainer.vue | 61 - src/components/jero/JImageUpload.vue | 233 - src/components/jero/JImportModal.vue | 129 - src/components/jero/JInput.vue | 130 - src/components/jero/JModal/index.vue | 228 - src/components/jero/JPopup.vue | 221 - src/components/jero/JSelectMultiple.vue | 94 - src/components/jero/JSlider.vue | 116 - src/components/jero/JSuperQuery.vue | 677 - src/components/jero/JSwitch.vue | 102 - src/components/jero/JTable.vue | 398 - src/components/jero/JTime.vue | 90 - src/components/jero/JTreeDict.vue | 218 - src/components/jero/JTreeSelect.vue | 338 - src/components/jero/JTreeTable.vue | 180 - src/components/jero/JUpload.vue | 295 - src/components/jero/README.md | 512 - src/components/jero/README_JEditableTable.md | 577 - src/components/jero/README_JPopup.md | 65 - src/components/jero/index.js | 59 - src/components/jero/minipop/JFilePop.vue | 117 - src/components/jero/minipop/JInputPop.vue | 105 - src/components/jero/modal/JCronModal.vue | 928 - src/components/jero/modal/JPopupOnlReport.vue | 395 - src/components/layouts/BasicLayout.vue | 60 - src/components/layouts/BlankLayout.vue | 16 - src/components/layouts/IframeFReportView.vue | 47 - src/components/layouts/IframePageView.vue | 62 - src/components/layouts/PageView.vue | 85 - src/components/layouts/RouteView.vue | 44 - src/components/layouts/TabLayout.vue | 428 - src/components/layouts/UserLayout.vue | 55 - src/components/layouts/index.js | 8 - src/components/lazy_antd.js | 124 - src/components/menu/Contextmenu.vue | 71 - src/components/menu/SideMenu.vue | 181 - src/components/menu/index.js | 188 - src/components/page/GlobalFooter.vue | 14 - src/components/page/GlobalHeader.vue | 205 - src/components/page/GlobalLayout.vue | 699 - src/components/page/PageHeader.vue | 238 - src/components/page/PageLayout.vue | 127 - src/components/page/SHeaderNotice.vue | 58 - src/components/tools/Breadcrumb.vue | 48 - src/components/tools/DetailList.vue | 147 - src/components/tools/DynamicNotice.vue | 36 - src/components/tools/FooterToolBar.vue | 32 - src/components/tools/HeadInfo.vue | 67 - src/components/tools/HeaderNotice.vue | 337 - src/components/tools/Logo.vue | 58 - src/components/tools/ShowAnnouncement.vue | 139 - src/components/tools/TwoStepCaptcha.vue | 89 - src/components/tools/UserMenu.vue | 214 - src/components/tools/UserPassword.vue | 157 - src/components/tools/setting.js | 95 - src/config/index.js | 0 src/config/router.config.js | 366 - src/defaultSettings.js | 32 - src/icons.js | 15 - src/main.js | 84 - src/mixins/DisabledAuthFilterMixin.js | 19 - src/mixins/JEditableTableMixin.js | 182 - src/mixins/JVxeTableMixin.js | 170 - src/mixins/JeroListMixin.js | 350 - src/mixins/OnlineCommonUtil.js | 26 - src/mixins/WebsocketMixin.js | 63 - src/permission.js | 76 - src/router/README.md | 139 - src/router/index.js | 18 - src/store/getters.js | 23 - src/store/index.js | 31 - src/store/modules/app.js | 126 - src/store/modules/enhance.js | 37 - src/store/modules/online.js | 25 - src/store/modules/permission.js | 87 - src/store/modules/user.js | 235 - src/store/mutation-types.js | 27 - src/utils/JEditableTableUtil.js | 122 - src/utils/LunarFullCalendarUtil.js | 107 - src/utils/authFilter.js | 277 - src/utils/axios.js | 37 - src/utils/browser.js | 38 - src/utils/commonUploadFile.js | 52 - src/utils/desform/CustomExpression.js | 22 - src/utils/device.js | 23 - src/utils/encryption/aesEncrypt.js | 6003 ------ src/utils/filter.js | 29 - src/utils/hasPermission.js | 133 - src/utils/mixin.js | 40 - src/utils/permissions.js | 8 - src/utils/portal/constant.js | 20 - src/utils/props-util.js | 115 - src/utils/request.js | 172 - src/utils/storage.js | 78 - src/utils/util.js | 589 - src/utils/validate.js | 31 - src/utils/vueBus.js | 5 - src/views/Home.vue | 33 - src/views/dashboard/Analysis.vue | 9 - src/views/exception/403.vue | 17 - src/views/exception/404.vue | 17 - src/views/exception/500.vue | 17 - src/views/exception/ExceptionPage.vue | 88 - src/views/exception/type.js | 19 - src/views/result/Error.vue | 0 src/views/result/Result.vue | 0 src/views/result/Success.vue | 0 src/views/system/DataLogList.vue | 138 - src/views/system/DepartList.vue | 662 - src/views/system/DepartList2.vue | 260 - src/views/system/DepartUserList.vue | 221 - src/views/system/DictDeleteList.vue | 138 - src/views/system/DictItemList.vue | 225 - src/views/system/DictList.vue | 208 - src/views/system/LogList.vue | 231 - src/views/system/NewPermissionList.vue | 229 - src/views/system/PermissionDataRuleList.vue | 188 - src/views/system/PermissionList.vue | 196 - src/views/system/QuartzJobList.vue | 284 - src/views/system/RoleList.vue | 193 - src/views/system/RoleUserList.vue | 547 - src/views/system/SysAnnouncementList.vue | 297 - src/views/system/SysCategoryList.vue | 336 - src/views/system/SysCheckRuleList.vue | 178 - src/views/system/SysDataSourceList.vue | 188 - src/views/system/SysFillRuleList.vue | 187 - src/views/system/SysGatewayRouteList.vue | 111 - src/views/system/TenantList.vue | 165 - src/views/system/UserAnnouncementList.vue | 192 - src/views/system/UserList.vue | 375 - src/views/system/modules/AddressListLeft.vue | 99 - src/views/system/modules/AddressListRight.vue | 211 - .../system/modules/DataLogCompareModal.vue | 163 - src/views/system/modules/DataLogModal.vue | 153 - src/views/system/modules/DepartAuthModal.vue | 192 - .../system/modules/DepartDataruleModal.vue | 116 - src/views/system/modules/DepartModal.vue | 223 - src/views/system/modules/DepartWindow.vue | 185 - src/views/system/modules/DeptBaseInfo.vue | 129 - .../system/modules/DeptRoleAuthModal.vue | 213 - .../system/modules/DeptRoleDataruleModal.vue | 122 - src/views/system/modules/DeptRoleInfo.vue | 191 - .../system/modules/DeptRoleUserModal.vue | 200 - src/views/system/modules/DeptUserInfo.vue | 349 - src/views/system/modules/DictItemModal.vue | 187 - src/views/system/modules/DictModal.vue | 151 - .../system/modules/GateWayRouteModal.vue | 303 - src/views/system/modules/PasswordModal.vue | 142 - .../modules/PermissionDataRuleModal.vue | 179 - src/views/system/modules/PermissionModal.vue | 423 - src/views/system/modules/QuartzJobModal.vue | 190 - .../system/modules/RoleDataruleModal.vue | 120 - src/views/system/modules/RoleModal.vue | 168 - .../system/modules/SelectUserListModal.vue | 290 - src/views/system/modules/SelectUserModal.vue | 287 - .../system/modules/SysAnnouncementModal.vue | 359 - src/views/system/modules/SysCategoryModal.vue | 182 - .../system/modules/SysCheckRuleModal.vue | 379 - .../system/modules/SysCheckRuleTestModal.vue | 58 - .../system/modules/SysDataSourceModal.vue | 251 - .../system/modules/SysDepartRoleModal.vue | 162 - src/views/system/modules/SysFillRuleModal.vue | 158 - src/views/system/modules/SysPositionModal.vue | 186 - src/views/system/modules/TenantForm.vue | 187 - src/views/system/modules/TenantModal.vue | 60 - src/views/system/modules/UserModal.vue | 709 - .../system/modules/UserRecycleBinModal.vue | 193 - src/views/system/modules/UserRoleModal.vue | 200 - src/views/system/modules/icon/Icon.less | 35 - src/views/system/modules/icon/Icons.vue | 123 - src/views/user/Login.vue | 369 - src/views/user/LoginSelectTenant.vue | 210 - src/views/user/alteration/Alteration.vue | 315 - src/views/user/register/Register.vue | 380 - src/views/user/register/RegisterResult.vue | 52 - src/views/user/third/JeroThirdLoginMixin.js | 211 - src/views/user/third/ThirdLogin.vue | 118 - vue.config.js | 98 - 275 files changed, 80850 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .editorconfig delete mode 100644 .env delete mode 100644 .env.development delete mode 100644 .env.production delete mode 100644 .env.test delete mode 100644 .eslintignore delete mode 100644 .gitattributes delete mode 100644 .gitignore delete mode 100644 .prettierrc delete mode 100644 Dockerfile delete mode 100644 README.md delete mode 100644 babel.config.js delete mode 100644 idea.config.js delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 public/api_address_config.js delete mode 100644 public/avatar2.jpg delete mode 100644 public/cdn/babel-polyfill/polyfill_7_2_5.js delete mode 100644 public/cdn/font-icon/font_2316098_umqusozousr.js delete mode 100644 public/color.less delete mode 100644 public/goright.png delete mode 100644 public/index.html delete mode 100644 public/logo.png delete mode 100644 public/tinymce/langs/zh_CN.js delete mode 100644 public/tinymce/skins/lightgray/content.min.css delete mode 100644 public/tinymce/skins/lightgray/skin.min.css delete mode 100644 public/v2.js delete mode 100644 src/App.vue delete mode 100644 src/api/GroupRequest.js delete mode 100644 src/api/api.js delete mode 100644 src/api/index.js delete mode 100644 src/api/login.js delete mode 100644 src/api/manage.js delete mode 100644 src/assets/background.svg delete mode 100644 src/assets/checkcode.png delete mode 100644 src/assets/daiban.png delete mode 100644 src/assets/duban.png delete mode 100644 src/assets/guaz.png delete mode 100644 src/assets/home.png delete mode 100644 src/assets/less/JAreaLinkage.less delete mode 100644 src/assets/less/TableExpand.less delete mode 100644 src/assets/less/codemirror_idea.css delete mode 100644 src/assets/less/common.less delete mode 100644 src/assets/less/index.less delete mode 100644 src/assets/logo.png delete mode 100644 src/assets/mobileBg.png delete mode 100644 src/assets/mobileHome.png delete mode 100644 src/assets/nodata.png delete mode 100644 src/assets/pdf4.jpg delete mode 100644 src/assets/userLogin.png delete mode 100644 src/assets/wenhao.png delete mode 100644 src/assets/zaiban.png delete mode 100644 src/cas/sso.js delete mode 100644 src/components/ChartCard.vue delete mode 100644 src/components/Ellipsis/Ellipsis.vue delete mode 100644 src/components/Ellipsis/index.js delete mode 100644 src/components/README.md delete mode 100644 src/components/_util/Area.js delete mode 100644 src/components/_util/StringUtil.js delete mode 100644 src/components/_util/util.js delete mode 100644 src/components/chart/AreaChartTy.vue delete mode 100644 src/components/chart/Bar.vue delete mode 100644 src/components/chart/BarAndLine.vue delete mode 100644 src/components/chart/BarMultid.vue delete mode 100644 src/components/chart/DashChartDemo.vue delete mode 100644 src/components/chart/IndexBar.vue delete mode 100644 src/components/chart/LineChartMultid.vue delete mode 100644 src/components/chart/Liquid.vue delete mode 100644 src/components/chart/MiniArea.vue delete mode 100644 src/components/chart/MiniBar.vue delete mode 100644 src/components/chart/MiniProgress.vue delete mode 100644 src/components/chart/Pie.vue delete mode 100644 src/components/chart/README.md delete mode 100644 src/components/chart/Radar.vue delete mode 100644 src/components/chart/RankList.vue delete mode 100644 src/components/chart/StackBar.vue delete mode 100644 src/components/chart/TransferBar.vue delete mode 100644 src/components/chart/Trend.vue delete mode 100644 src/components/chart/chart.less delete mode 100644 src/components/chart/mixins/ChartMixins.js delete mode 100644 src/components/dict/JDictSelectTag.vue delete mode 100644 src/components/dict/JDictSelectUtil.js delete mode 100644 src/components/dict/JMultiSelectTag.vue delete mode 100644 src/components/dict/JSearchSelectTag.vue delete mode 100644 src/components/dict/README.md delete mode 100644 src/components/dict/index.js delete mode 100644 src/components/index.less delete mode 100644 src/components/jero/JAreaLinkage.vue delete mode 100644 src/components/jero/JCategorySelect.vue delete mode 100644 src/components/jero/JCheckbox.vue delete mode 100644 src/components/jero/JCodeEditor.vue delete mode 100644 src/components/jero/JCron.vue delete mode 100644 src/components/jero/JDate.vue delete mode 100644 src/components/jero/JEditableTable.vue delete mode 100644 src/components/jero/JEditor.vue delete mode 100644 src/components/jero/JEllipsis.vue delete mode 100644 src/components/jero/JFormContainer.vue delete mode 100644 src/components/jero/JImageUpload.vue delete mode 100644 src/components/jero/JImportModal.vue delete mode 100644 src/components/jero/JInput.vue delete mode 100644 src/components/jero/JModal/index.vue delete mode 100644 src/components/jero/JPopup.vue delete mode 100644 src/components/jero/JSelectMultiple.vue delete mode 100644 src/components/jero/JSlider.vue delete mode 100644 src/components/jero/JSuperQuery.vue delete mode 100644 src/components/jero/JSwitch.vue delete mode 100644 src/components/jero/JTable.vue delete mode 100644 src/components/jero/JTime.vue delete mode 100644 src/components/jero/JTreeDict.vue delete mode 100644 src/components/jero/JTreeSelect.vue delete mode 100644 src/components/jero/JTreeTable.vue delete mode 100644 src/components/jero/JUpload.vue delete mode 100644 src/components/jero/README.md delete mode 100644 src/components/jero/README_JEditableTable.md delete mode 100644 src/components/jero/README_JPopup.md delete mode 100644 src/components/jero/index.js delete mode 100644 src/components/jero/minipop/JFilePop.vue delete mode 100644 src/components/jero/minipop/JInputPop.vue delete mode 100644 src/components/jero/modal/JCronModal.vue delete mode 100644 src/components/jero/modal/JPopupOnlReport.vue delete mode 100644 src/components/layouts/BasicLayout.vue delete mode 100644 src/components/layouts/BlankLayout.vue delete mode 100644 src/components/layouts/IframeFReportView.vue delete mode 100644 src/components/layouts/IframePageView.vue delete mode 100644 src/components/layouts/PageView.vue delete mode 100644 src/components/layouts/RouteView.vue delete mode 100644 src/components/layouts/TabLayout.vue delete mode 100644 src/components/layouts/UserLayout.vue delete mode 100644 src/components/layouts/index.js delete mode 100644 src/components/lazy_antd.js delete mode 100644 src/components/menu/Contextmenu.vue delete mode 100644 src/components/menu/SideMenu.vue delete mode 100644 src/components/menu/index.js delete mode 100644 src/components/page/GlobalFooter.vue delete mode 100644 src/components/page/GlobalHeader.vue delete mode 100644 src/components/page/GlobalLayout.vue delete mode 100644 src/components/page/PageHeader.vue delete mode 100644 src/components/page/PageLayout.vue delete mode 100644 src/components/page/SHeaderNotice.vue delete mode 100644 src/components/tools/Breadcrumb.vue delete mode 100644 src/components/tools/DetailList.vue delete mode 100644 src/components/tools/DynamicNotice.vue delete mode 100644 src/components/tools/FooterToolBar.vue delete mode 100644 src/components/tools/HeadInfo.vue delete mode 100644 src/components/tools/HeaderNotice.vue delete mode 100644 src/components/tools/Logo.vue delete mode 100644 src/components/tools/ShowAnnouncement.vue delete mode 100644 src/components/tools/TwoStepCaptcha.vue delete mode 100644 src/components/tools/UserMenu.vue delete mode 100644 src/components/tools/UserPassword.vue delete mode 100644 src/components/tools/setting.js delete mode 100644 src/config/index.js delete mode 100644 src/config/router.config.js delete mode 100644 src/defaultSettings.js delete mode 100644 src/icons.js delete mode 100644 src/main.js delete mode 100644 src/mixins/DisabledAuthFilterMixin.js delete mode 100644 src/mixins/JEditableTableMixin.js delete mode 100644 src/mixins/JVxeTableMixin.js delete mode 100644 src/mixins/JeroListMixin.js delete mode 100644 src/mixins/OnlineCommonUtil.js delete mode 100644 src/mixins/WebsocketMixin.js delete mode 100644 src/permission.js delete mode 100644 src/router/README.md delete mode 100644 src/router/index.js delete mode 100644 src/store/getters.js delete mode 100644 src/store/index.js delete mode 100644 src/store/modules/app.js delete mode 100644 src/store/modules/enhance.js delete mode 100644 src/store/modules/online.js delete mode 100644 src/store/modules/permission.js delete mode 100644 src/store/modules/user.js delete mode 100644 src/store/mutation-types.js delete mode 100644 src/utils/JEditableTableUtil.js delete mode 100644 src/utils/LunarFullCalendarUtil.js delete mode 100644 src/utils/authFilter.js delete mode 100644 src/utils/axios.js delete mode 100644 src/utils/browser.js delete mode 100644 src/utils/commonUploadFile.js delete mode 100644 src/utils/desform/CustomExpression.js delete mode 100644 src/utils/device.js delete mode 100644 src/utils/encryption/aesEncrypt.js delete mode 100644 src/utils/filter.js delete mode 100644 src/utils/hasPermission.js delete mode 100644 src/utils/mixin.js delete mode 100644 src/utils/permissions.js delete mode 100644 src/utils/portal/constant.js delete mode 100644 src/utils/props-util.js delete mode 100644 src/utils/request.js delete mode 100644 src/utils/storage.js delete mode 100644 src/utils/util.js delete mode 100644 src/utils/validate.js delete mode 100644 src/utils/vueBus.js delete mode 100644 src/views/Home.vue delete mode 100644 src/views/dashboard/Analysis.vue delete mode 100644 src/views/exception/403.vue delete mode 100644 src/views/exception/404.vue delete mode 100644 src/views/exception/500.vue delete mode 100644 src/views/exception/ExceptionPage.vue delete mode 100644 src/views/exception/type.js delete mode 100644 src/views/result/Error.vue delete mode 100644 src/views/result/Result.vue delete mode 100644 src/views/result/Success.vue delete mode 100644 src/views/system/DataLogList.vue delete mode 100644 src/views/system/DepartList.vue delete mode 100644 src/views/system/DepartList2.vue delete mode 100644 src/views/system/DepartUserList.vue delete mode 100644 src/views/system/DictDeleteList.vue delete mode 100644 src/views/system/DictItemList.vue delete mode 100644 src/views/system/DictList.vue delete mode 100644 src/views/system/LogList.vue delete mode 100644 src/views/system/NewPermissionList.vue delete mode 100644 src/views/system/PermissionDataRuleList.vue delete mode 100644 src/views/system/PermissionList.vue delete mode 100644 src/views/system/QuartzJobList.vue delete mode 100644 src/views/system/RoleList.vue delete mode 100644 src/views/system/RoleUserList.vue delete mode 100644 src/views/system/SysAnnouncementList.vue delete mode 100644 src/views/system/SysCategoryList.vue delete mode 100644 src/views/system/SysCheckRuleList.vue delete mode 100644 src/views/system/SysDataSourceList.vue delete mode 100644 src/views/system/SysFillRuleList.vue delete mode 100644 src/views/system/SysGatewayRouteList.vue delete mode 100644 src/views/system/TenantList.vue delete mode 100644 src/views/system/UserAnnouncementList.vue delete mode 100644 src/views/system/UserList.vue delete mode 100644 src/views/system/modules/AddressListLeft.vue delete mode 100644 src/views/system/modules/AddressListRight.vue delete mode 100644 src/views/system/modules/DataLogCompareModal.vue delete mode 100644 src/views/system/modules/DataLogModal.vue delete mode 100644 src/views/system/modules/DepartAuthModal.vue delete mode 100644 src/views/system/modules/DepartDataruleModal.vue delete mode 100644 src/views/system/modules/DepartModal.vue delete mode 100644 src/views/system/modules/DepartWindow.vue delete mode 100644 src/views/system/modules/DeptBaseInfo.vue delete mode 100644 src/views/system/modules/DeptRoleAuthModal.vue delete mode 100644 src/views/system/modules/DeptRoleDataruleModal.vue delete mode 100644 src/views/system/modules/DeptRoleInfo.vue delete mode 100644 src/views/system/modules/DeptRoleUserModal.vue delete mode 100644 src/views/system/modules/DeptUserInfo.vue delete mode 100644 src/views/system/modules/DictItemModal.vue delete mode 100644 src/views/system/modules/DictModal.vue delete mode 100644 src/views/system/modules/GateWayRouteModal.vue delete mode 100644 src/views/system/modules/PasswordModal.vue delete mode 100644 src/views/system/modules/PermissionDataRuleModal.vue delete mode 100644 src/views/system/modules/PermissionModal.vue delete mode 100644 src/views/system/modules/QuartzJobModal.vue delete mode 100644 src/views/system/modules/RoleDataruleModal.vue delete mode 100644 src/views/system/modules/RoleModal.vue delete mode 100644 src/views/system/modules/SelectUserListModal.vue delete mode 100644 src/views/system/modules/SelectUserModal.vue delete mode 100644 src/views/system/modules/SysAnnouncementModal.vue delete mode 100644 src/views/system/modules/SysCategoryModal.vue delete mode 100644 src/views/system/modules/SysCheckRuleModal.vue delete mode 100644 src/views/system/modules/SysCheckRuleTestModal.vue delete mode 100644 src/views/system/modules/SysDataSourceModal.vue delete mode 100644 src/views/system/modules/SysDepartRoleModal.vue delete mode 100644 src/views/system/modules/SysFillRuleModal.vue delete mode 100644 src/views/system/modules/SysPositionModal.vue delete mode 100644 src/views/system/modules/TenantForm.vue delete mode 100644 src/views/system/modules/TenantModal.vue delete mode 100644 src/views/system/modules/UserModal.vue delete mode 100644 src/views/system/modules/UserRecycleBinModal.vue delete mode 100644 src/views/system/modules/UserRoleModal.vue delete mode 100644 src/views/system/modules/icon/Icon.less delete mode 100644 src/views/system/modules/icon/Icons.vue delete mode 100644 src/views/user/Login.vue delete mode 100644 src/views/user/LoginSelectTenant.vue delete mode 100644 src/views/user/alteration/Alteration.vue delete mode 100644 src/views/user/register/Register.vue delete mode 100644 src/views/user/register/RegisterResult.vue delete mode 100644 src/views/user/third/JeroThirdLoginMixin.js delete mode 100644 src/views/user/third/ThirdLogin.vue delete mode 100644 vue.config.js diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 59c9c55..0000000 --- a/.dockerignore +++ /dev/null @@ -1,23 +0,0 @@ -docs -public -src -.dockerignore -.editorconfig -.eslintignore -.gitattributes -.gitignore -.prettierrc -babel.config.js -Dockerfile -idea.config.js -LICENSE -package.json -package-lock.json -README.md -vue.config.js -yarn -yarn.lock -yarn-error.log -.idea -.svn -node_modules \ No newline at end of file diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 3e26fbb..0000000 --- a/.editorconfig +++ /dev/null @@ -1,39 +0,0 @@ -[*] -charset=utf-8 -end_of_line=crlf -insert_final_newline=false -indent_style=space -indent_size=2 - -[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}] -indent_style=space -indent_size=2 - -[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}] -indent_style=space -indent_size=2 - -[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}] -indent_style=space -indent_size=2 - -[*.svg] -indent_style=space -indent_size=2 - -[*.js.map] -indent_style=space -indent_size=2 - -[*.less] -indent_style=space -indent_size=2 - -[*.vue] -indent_style=space -indent_size=2 - -[{.analysis_options,*.yml,*.yaml}] -indent_style=space -indent_size=2 - diff --git a/.env b/.env deleted file mode 100644 index 9a1e7a0..0000000 --- a/.env +++ /dev/null @@ -1,3 +0,0 @@ -NODE_ENV=production -VUE_APP_PLATFORM_NAME=JeroBoot 企业级快速开发平台 -VUE_APP_SSO=false \ No newline at end of file diff --git a/.env.development b/.env.development deleted file mode 100644 index 083c815..0000000 --- a/.env.development +++ /dev/null @@ -1 +0,0 @@ -NODE_ENV=development \ No newline at end of file diff --git a/.env.production b/.env.production deleted file mode 100644 index 995fca4..0000000 --- a/.env.production +++ /dev/null @@ -1 +0,0 @@ -NODE_ENV=production \ No newline at end of file diff --git a/.env.test b/.env.test deleted file mode 100644 index 6667bf3..0000000 --- a/.env.test +++ /dev/null @@ -1,4 +0,0 @@ -NODE_ENV=production -VUE_APP_API_BASE_URL=http://boot.jero.com:8080/jero-boot -VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas -VUE_APP_ONLINE_BASE_URL=http://fileview.jero.com/onlinePreview \ No newline at end of file diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index dbc8690..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -/src \ No newline at end of file diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index e507319..0000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -public/* linguist-vendored \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 185e663..0000000 --- a/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw* diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index cbe842a..0000000 --- a/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "printWidth": 120, - "semi": false, - "singleQuote": true -} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index b93536c..0000000 --- a/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM nginx -MAINTAINER test@163.com -VOLUME /tmp -ENV LANG en_US.UTF-8 -RUN echo "server { \ - listen 80; \ - location ^~ /jero-boot { \ - proxy_pass http://jero-boot-system:8080/jero-boot/; \ - proxy_set_header Host jero-boot-system; \ - proxy_set_header X-Real-IP \$remote_addr; \ - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \ - } \ - #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \ - location / { \ - root /var/www/html/; \ - index index.html index.htm; \ - if (!-e \$request_filename) { \ - rewrite ^(.*)\$ /index.html?s=\$1 last; \ - break; \ - } \ - } \ - access_log /var/log/nginx/access.log ; \ - } " > /etc/nginx/conf.d/default.conf \ - && mkdir -p /var/www \ - && mkdir -p /var/www/html - -ADD dist/ /var/www/html/ -EXPOSE 80 -EXPOSE 443 \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index d0a6bd6..0000000 --- a/README.md +++ /dev/null @@ -1,134 +0,0 @@ -Jero-Web -==== - -当前最新版本: 2.4.2 - -Overview ----- - -基于 [Ant Design of Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/) 实现的 Ant Design Pro Vue 版 -Jero-boot 的前端UI框架,采用前后端分离方案,提供强大代码生成器的快速开发平台。 - - - -#### 前端技术 - -- 基础框架:[ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Ant Design Of Vue 实现 -- JavaScript框架:Vue -- Webpack -- node -- yarn -- eslint -- @vue/cli 3.2.1 -- [vue-cropper](https://github.com/xyxiao001/vue-cropper) - 头像裁剪组件 -- [@antv/g2](https://antv.alipay.com/zh-cn/index.html) - Alipay AntV 数据可视化图表 -- [Viser-vue](https://viserjs.github.io/docs.html#/viser/guide/installation) - antv/g2 封装实现 - - - -项目下载和运行 ----- - -- 拉取项目代码 -```bash -git clone http://git.hzwlsoft.com/JeroBoot/jero-boot.git -cd jero-boot/jero-web -``` - -- 安装依赖 -``` -yarn install -``` - -- 开发模式运行 -``` -yarn run serve -``` - -- 编译项目 -``` -yarn run build -``` - -- Lints and fixes files -``` -yarn run lint -``` - - - -其他说明 ----- - -- 项目使用的 [vue-cli3](https://cli.vuejs.org/guide/), 请更新您的 cli - -- 关闭 Eslint (不推荐) 移除 `package.json` 中 `eslintConfig` 整个节点代码 - -- 修改 Ant Design 配色,在文件 `vue.config.js` 中,其他 less 变量覆盖参考 [ant design](https://ant.design/docs/react/customize-theme-cn) 官方说明 -```ecmascript 6 - css: { - loaderOptions: { - less: { - modifyVars: { - /* less 变量覆盖,用于自定义 ant design 主题 */ - - 'primary-color': '#F5222D', - 'link-color': '#F5222D', - 'border-radius-base': '4px', - }, - javascriptEnabled: true, - } - } - } -``` - - - -附属文档 ----- -- [Ant Design Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn) - -- [报表 viser-vue](https://viserjs.github.io/demo.html#/viser/bar/basic-bar) - -- [Vue](https://cn.vuejs.org/v2/guide) - -- [路由/菜单说明](https://github.com/zhangdaiscott/Jero-boot/tree/master/ant-design-jeecg-vue/src/router/README.md) - -- [ANTD 默认配置项](https://github.com/zhangdaiscott/Jero-boot/tree/master/ant-design-jeecg-vue/src/defaultSettings.js) - -- 其他待补充... - - -备注 ----- - -> @vue/cli 升级后,eslint 规则更新了。由于影响到全部 .vue 文件,需要逐个验证。既暂时关闭部分原本不验证的规则,后期维护时,在逐步修正这些 rules - - -Docker 镜像使用 ----- - - ``` -# 1.修改前端项目的后台域名 - .env.development - 域名改成: http://Jero-boot-system:8080/Jero-boot - -# 2.先进入打包前端项目 - yarn run build - -# 3.构建镜像 - docker build -t nginx:jeroboot . - -# 4.启动镜像 - docker run --name Jero-boot-nginx -p 80:80 -d nginx:jeroboot - -# 5.配置host - - # jeroboot - 127.0.0.1 Jero-boot-redis - 127.0.0.1 Jero-boot-mysql - 127.0.0.1 Jero-boot-system - -# 6.访问前台项目 - http://localhost:80 -``` \ No newline at end of file diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index bef7ac4..0000000 --- a/babel.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - presets: [ - ['@vue/app', - { useBuiltIns: 'entry' }] - ] -} diff --git a/idea.config.js b/idea.config.js deleted file mode 100644 index ad5afd1..0000000 --- a/idea.config.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict' -const path = require('path') - -function resolve (dir) { - return path.join(__dirname, '.', dir) -} - -module.exports = { - context: path.resolve(__dirname, './'), - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'config': resolve('config'), - '@': resolve('src'), - '@views': resolve('src/views'), - '@comp': resolve('src/components'), - '@core': resolve('src/core'), - '@utils': resolve('src/utils'), - '@entry': resolve('src/entry'), - '@router': resolve('src/router'), - '@store': resolve('src/store') - } - } -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 180289e..0000000 --- a/package-lock.json +++ /dev/null @@ -1,17608 +0,0 @@ -{ - "name": "jero-web", - "version": "2.4.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@ant-design/colors": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-3.2.2.tgz", - "integrity": "sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ==", - "requires": { - "tinycolor2": "^1.4.1" - } - }, - "@ant-design/icons": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-2.1.1.tgz", - "integrity": "sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w==" - }, - "@ant-design/icons-vue": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz", - "integrity": "sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg==", - "requires": { - "@ant-design/colors": "^3.1.0", - "babel-runtime": "^6.26.0" - } - }, - "@antv/adjust": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@antv/adjust/-/adjust-0.1.1.tgz", - "integrity": "sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q==", - "requires": { - "@antv/util": "~1.3.1" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - } - } - }, - "@antv/attr": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@antv/attr/-/attr-0.1.2.tgz", - "integrity": "sha512-QXjP+T2I+pJQcwZx1oCA4tipG43vgeCeKcGGKahlcxb71OBAzjJZm1QbF4frKXcnOqRkxVXtCr70X9TRair3Ew==", - "requires": { - "@antv/util": "~1.3.1" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - } - } - }, - "@antv/component": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@antv/component/-/component-0.3.9.tgz", - "integrity": "sha512-Knh/Nq0S8UkTfZj4SL7XizagTfXYqjFAYIqFtOmUaKpRMgccUi7p1oA7fJdNPGktkndljy6fUmCWocEeBXRS2g==", - "requires": { - "@antv/attr": "~0.1.2", - "@antv/g": "~3.3.5", - "@antv/util": "~1.3.1", - "wolfy87-eventemitter": "~5.1.0" - }, - "dependencies": { - "@antv/g": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@antv/g/-/g-3.3.6.tgz", - "integrity": "sha512-2GtyTz++s0BbN6s0ZL2/nrqGYCkd52pVoNH92YkrTdTOvpO6Z4DNoo6jGVgZdPX6Nzwli6yduC8MinVAhE8X6g==", - "requires": { - "@antv/gl-matrix": "~2.7.1", - "@antv/util": "~1.3.1", - "d3-ease": "~1.0.3", - "d3-interpolate": "~1.1.5", - "d3-timer": "~1.0.6", - "wolfy87-eventemitter": "~5.1.0" - } - }, - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - }, - "wolfy87-eventemitter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz", - "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" - } - } - }, - "@antv/coord": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@antv/coord/-/coord-0.1.0.tgz", - "integrity": "sha512-W1R8h3Jfb3AfMBVfCreFPMVetgEYuwHBIGn0+d3EgYXe2ckOF8XWjkpGF1fZhOMHREMr+Gt27NGiQh8yBdLUgg==", - "requires": { - "@antv/util": "~1.3.1" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - } - } - }, - "@antv/data-set": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@antv/data-set/-/data-set-0.11.7.tgz", - "integrity": "sha512-TP62M4ZGda/6dhz+XvmsghMSpkrmRLsLiRFfPfYQVM9+QZAzvGisVayj9x0xMSBBwDwjKE69LeDTFFMQJlTnog==", - "requires": { - "@antv/hierarchy": "^0.6.0", - "@antv/util": "^2.0.0", - "d3-composite-projections": "^1.2.0", - "d3-dsv": "^1.0.5", - "d3-geo": "~1.6.4", - "d3-geo-projection": "~2.1.2", - "d3-hexjson": "^1.0.1", - "d3-hierarchy": "^1.1.5", - "d3-sankey": "^0.9.1", - "d3-voronoi": "^1.1.2", - "dagre": "^0.8.2", - "point-at-length": "^1.0.2", - "regression": "^2.0.0", - "simple-statistics": "^6.1.0", - "topojson-client": "^3.0.0", - "wolfy87-eventemitter": "^5.1.0" - } - }, - "@antv/g": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@antv/g/-/g-3.4.10.tgz", - "integrity": "sha512-pKy/L1SyRBsXuujdkggqrdBA0/ciAgHiArYBdIJsxHRxCneUP01wGwHdGfDayh2+S0gcSBHynjhoEahsaZaLkw==", - "requires": { - "@antv/gl-matrix": "~2.7.1", - "@antv/util": "~1.3.1", - "d3-ease": "~1.0.3", - "d3-interpolate": "~1.1.5", - "d3-timer": "~1.0.6", - "detect-browser": "^5.1.0" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - } - } - }, - "@antv/g2": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/@antv/g2/-/g2-3.5.17.tgz", - "integrity": "sha512-gOjfA6pwXYEC5mrLbvg1kA3jZI5J5T2kQeGse+iBBsNc1Vje7zs9G+BleUaI4MLXSnqwhsj/ohfkP7d+h4ArNg==", - "requires": { - "@antv/adjust": "~0.1.0", - "@antv/attr": "~0.1.2", - "@antv/component": "~0.3.3", - "@antv/coord": "~0.1.0", - "@antv/g": "~3.4.10", - "@antv/scale": "~0.1.1", - "@antv/util": "~1.3.1", - "venn.js": "~0.2.20", - "wolfy87-eventemitter": "~5.1.0" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - }, - "wolfy87-eventemitter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz", - "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" - } - } - }, - "@antv/g2-brush": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@antv/g2-brush/-/g2-brush-0.0.2.tgz", - "integrity": "sha512-7O9szwem19nmEgReXhFB8kVLRaz8J5MHvrzDSDY36YaBOaHSWRGHnvYt2KkkPqgWtHtLY1srssk4X/UmP5govA==" - }, - "@antv/g2-plugin-slider": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@antv/g2-plugin-slider/-/g2-plugin-slider-2.1.1.tgz", - "integrity": "sha512-nB678VEGG3FkrvkDDFADAKjLQIeXzITEYqey5oeOpbf0vT5jOa55lQDyJDZ79cK8PmU/Hz6VPeSb3CNQBA+/FQ==" - }, - "@antv/gl-matrix": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz", - "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q==" - }, - "@antv/hierarchy": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.6.tgz", - "integrity": "sha512-ivb9j5aJOogjjU9k7WZXWznevMyqgBbP/Xq2rfXsQFLk4ArABt2ewU6a6jndPOiycGDxppZ8kaYjli70i4HluA==", - "requires": { - "@antv/util": "^2.0.7" - } - }, - "@antv/scale": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.1.5.tgz", - "integrity": "sha512-7RAu4iH5+Hk21h6+aBMiDTfmLf4IibK2SWjx/+E4f4AXRpqucO+8u7IbZdFkakAWxvqhJtN3oePJuTKqOMcmlg==", - "requires": { - "@antv/util": "~1.3.1", - "fecha": "~2.3.3" - }, - "dependencies": { - "@antv/util": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", - "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", - "requires": { - "@antv/gl-matrix": "^2.7.1" - } - } - } - }, - "@antv/util": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.10.tgz", - "integrity": "sha512-cO6F5qyGVdwG21lunhoDhupR+I+eLYAePgDzM2bjU3LwE3akfyymhOlHE8wcONsPEVRLQ3sTOtd+FojO6g01gw==", - "requires": { - "tslib": "^2.0.3" - } - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/core": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", - "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "regexpu-core": "^4.7.1" - }, - "dependencies": { - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", - "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - } - } - }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", - "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.12.tgz", - "integrity": "sha512-fhkE9lJYpw2mjHelBpM2zCbaA11aov2GJs7q4cFaXNrWx0H3bW58H9Esy2rdtYOghFBEYUDRIpvlgi+ZD+AvvQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-decorators": "^7.12.1" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz", - "integrity": "sha512-ir9YW5daRrTYiy9UJ2TzdNIJEZu8KclVzDcfSt4iEmOtwQ4llPtWInNKJyKnVXp1vE4bbVd5S31M/im3mYMO1w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", - "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - }, - "dependencies": { - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - } - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz", - "integrity": "sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "semver": "^5.5.1" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/polyfill": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", - "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", - "dev": true, - "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/preset-env": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", - "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.3.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.3.4", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.3.4", - "@babel/plugin-transform-classes": "^7.3.4", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.2.0", - "@babel/plugin-transform-dotall-regex": "^7.2.0", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.2.0", - "@babel/plugin-transform-function-name": "^7.2.0", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/plugin-transform-modules-systemjs": "^7.3.4", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", - "@babel/plugin-transform-new-target": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.2.0", - "@babel/plugin-transform-parameters": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.3.4", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.2.0", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.2.0", - "browserslist": "^4.3.4", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.3.0" - } - }, - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs2": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.12.5.tgz", - "integrity": "sha512-kt5YpZ7F5A05LOgQuaMXXmcxakK/qttf5C/E1BJPA3Kf5PanbjPzDoXN+PIslUnjUxpuKblCsXyP0QfMiqyKqA==", - "dev": true, - "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", - "dev": true - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", - "dev": true - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", - "dev": true - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "dev": true, - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "dev": true, - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@intervolga/optimize-cssnano-plugin": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz", - "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==", - "dev": true, - "requires": { - "cssnano": "^4.0.0", - "cssnano-preset-default": "^4.0.0", - "postcss": "^7.0.0" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@simonwep/pickr": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.7.4.tgz", - "integrity": "sha512-fq7jgKJT21uWGC1mARBHvvd1JYlEf93o7SuVOB4Lr0x/2UPuNC9Oe9n/GzVeg4oVtqMDfh1wIEJpsdOJEZb+3g==", - "requires": { - "core-js": "^3.6.5", - "nanopop": "^2.1.0" - }, - "dependencies": { - "core-js": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", - "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==" - } - } - }, - "@soda/friendly-errors-webpack-plugin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz", - "integrity": "sha512-RLotfx6k1+nfLacwNCenj7VnTMPxVwYKoGOcffMFoJDKM8tXzBiCN0hMHFJNnoAojduYAsxuiMm0EOMixgiRow==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "error-stack-parser": "^2.0.2", - "string-width": "^2.0.0", - "strip-ansi": "^5" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "@tinymce/tinymce-vue": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-2.1.0.tgz", - "integrity": "sha512-lDIpeLbkaobS/f00wWaOhGJdiZLdtL0dEDYB4JvqgVeAAoaDFG2PvXXP/kN49xpHpUe8vOdt7xFaN48nrPmsbQ==", - "requires": { - "vue": "^2.5.17" - } - }, - "@toast-ui/editor": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@toast-ui/editor/-/editor-2.5.1.tgz", - "integrity": "sha512-LVNo/YaNItUemEaRFvFAVn7w/0U7yxEheMdn6GEGxqo727rRZD1MH7OTDVq6NeQ+P93VwFpa0i9GGRBhNNEbPQ==", - "requires": { - "@types/codemirror": "0.0.71", - "codemirror": "^5.48.4" - } - }, - "@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", - "dev": true - }, - "@types/codemirror": { - "version": "0.0.71", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.71.tgz", - "integrity": "sha512-b2oEEnno1LIGKMR7uBEsr40al1UijF1HEpRn0+Yf1xOLl24iQgB7DBpZVMM7y54G5wCNoclDrRO65E6KHPNO2w==", - "requires": { - "@types/tern": "*" - } - }, - "@types/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-uagdkftxnGkO4pZw5jEYOM5ZnZOEsh7z8j11Qxk85UkB2RzfUUxRl7R9VvvJZHwKn8l+x+rpS77Nusq7FkFmIg==" - }, - "@types/estree": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", - "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==" - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/lodash": { - "version": "4.14.168", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", - "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", - "dev": true - }, - "@types/tern": { - "version": "0.23.3", - "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.3.tgz", - "integrity": "sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w==", - "requires": { - "@types/estree": "*" - } - }, - "@types/uglify-js": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz", - "integrity": "sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "@types/webpack": { - "version": "4.41.26", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", - "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==", - "dev": true, - "requires": { - "@types/anymatch": "*", - "@types/node": "*", - "@types/tapable": "*", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "source-map": "^0.6.0" - } - }, - "@types/webpack-sources": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz", - "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", - "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", - "dev": true - }, - "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", - "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "html-tags": "^2.0.0", - "lodash.kebabcase": "^4.1.1", - "svg-tags": "^1.0.0" - } - }, - "@vue/babel-preset-app": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.12.1.tgz", - "integrity": "sha512-Zjy5jQaikV1Pz+ri0YgXFS7q4/5wCxB5tRkDOEIt5+4105u0Feb/pvH20nVL6nx9GyXrECFfcm7Yxr/z++OaPQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-decorators": "^7.1.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.4.0", - "@babel/preset-env": "^7.0.0 < 7.4.0", - "@babel/runtime": "^7.0.0", - "@babel/runtime-corejs2": "^7.2.0", - "@vue/babel-preset-jsx": "^1.0.0", - "babel-plugin-dynamic-import-node": "^2.2.0", - "babel-plugin-module-resolver": "3.2.0", - "core-js": "^2.6.5" - } - }, - "@vue/babel-preset-jsx": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", - "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", - "dev": true, - "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", - "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", - "@vue/babel-sugar-functional-vue": "^1.2.2", - "@vue/babel-sugar-inject-h": "^1.2.2", - "@vue/babel-sugar-v-model": "^1.2.3", - "@vue/babel-sugar-v-on": "^1.2.3" - } - }, - "@vue/babel-sugar-composition-api-inject-h": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", - "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-composition-api-render-instance": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", - "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-functional-vue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", - "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-inject-h": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", - "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-v-model": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", - "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0", - "html-tags": "^2.0.0", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "@vue/babel-sugar-v-on": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", - "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "@vue/cli-overlay": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.12.1.tgz", - "integrity": "sha512-Bym92EN+lj+cNRN2ozbYyH+V8DMXWGbCDUk+hiJ4EYDBZfBkZKvalk1/mOBFwyxiopnnbOEBAAhL/UuMQ1xARg==", - "dev": true - }, - "@vue/cli-plugin-babel": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.12.1.tgz", - "integrity": "sha512-Zetvz8PikLCGomeKOKu8pC9YQ7cfxs7pGpvEOzaxGdhMnebhjAYR6i6dOB57A6N5lhxQksXCtYTv26QgfiIpdg==", - "dev": true, - "requires": { - "@babel/core": "^7.0.0", - "@vue/babel-preset-app": "^3.12.1", - "@vue/cli-shared-utils": "^3.12.1", - "babel-loader": "^8.0.5", - "webpack": "^4.0.0" - } - }, - "@vue/cli-plugin-eslint": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.12.1.tgz", - "integrity": "sha512-tVTZlEZsy3sQbO4LLWFK11yzlWwqVAqaM+IY+BeWHITBzEJKh2KmouG+x6x/reXiU3qROsMJ4Ej3Hs8buSMWyQ==", - "dev": true, - "requires": { - "@vue/cli-shared-utils": "^3.12.1", - "babel-eslint": "^10.0.1", - "eslint": "^4.19.1", - "eslint-loader": "^2.1.2", - "eslint-plugin-vue": "^4.7.1", - "globby": "^9.2.0", - "webpack": "^4.0.0", - "yorkie": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "optional": true - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - } - }, - "eslint-plugin-vue": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz", - "integrity": "sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==", - "dev": true, - "optional": true, - "requires": { - "vue-eslint-parser": "^2.0.3" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "dev": true, - "optional": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true, - "optional": true - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } - } - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true, - "optional": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "@vue/cli-service": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.12.1.tgz", - "integrity": "sha512-PDxNrTGnSKzeV1ruFlsRIAO8JcPizwT0EJXq9GeyooU+p+sOkv7aKkCBJQVYNjZapD1NOGWx6CvAAC/wAW+gew==", - "dev": true, - "requires": { - "@intervolga/optimize-cssnano-plugin": "^1.0.5", - "@soda/friendly-errors-webpack-plugin": "^1.7.1", - "@vue/cli-overlay": "^3.12.1", - "@vue/cli-shared-utils": "^3.12.1", - "@vue/component-compiler-utils": "^3.0.0", - "@vue/preload-webpack-plugin": "^1.1.0", - "@vue/web-component-wrapper": "^1.2.0", - "acorn": "^6.1.1", - "acorn-walk": "^6.1.1", - "address": "^1.0.3", - "autoprefixer": "^9.5.1", - "browserslist": "^4.5.4", - "cache-loader": "^2.0.1", - "case-sensitive-paths-webpack-plugin": "^2.2.0", - "chalk": "^2.4.2", - "cli-highlight": "^2.1.0", - "clipboardy": "^2.0.0", - "cliui": "^5.0.0", - "copy-webpack-plugin": "^4.6.0", - "css-loader": "^1.0.1", - "cssnano": "^4.1.10", - "current-script-polyfill": "^1.0.0", - "debug": "^4.1.1", - "default-gateway": "^5.0.2", - "dotenv": "^7.0.0", - "dotenv-expand": "^5.1.0", - "escape-string-regexp": "^1.0.5", - "file-loader": "^3.0.1", - "fs-extra": "^7.0.1", - "globby": "^9.2.0", - "hash-sum": "^1.0.2", - "html-webpack-plugin": "^3.2.0", - "launch-editor-middleware": "^2.2.1", - "lodash.defaultsdeep": "^4.6.1", - "lodash.mapvalues": "^4.6.0", - "lodash.transform": "^4.6.0", - "mini-css-extract-plugin": "^0.8.0", - "minimist": "^1.2.0", - "ora": "^3.4.0", - "portfinder": "^1.0.20", - "postcss-loader": "^3.0.0", - "read-pkg": "^5.0.0", - "semver": "^6.0.0", - "slash": "^2.0.0", - "source-map-url": "^0.4.0", - "ssri": "^6.0.1", - "string.prototype.padend": "^3.0.0", - "terser-webpack-plugin": "^1.2.3", - "thread-loader": "^2.1.2", - "url-loader": "^1.1.2", - "vue-loader": "^15.7.0", - "webpack": "^4.0.0", - "webpack-bundle-analyzer": "^3.3.0", - "webpack-chain": "^4.11.0", - "webpack-dev-server": "^3.4.1", - "webpack-merge": "^4.2.1" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "dev": true, - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - } - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - } - } - }, - "@vue/cli-shared-utils": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.12.1.tgz", - "integrity": "sha512-jFblzRFjutGwu5utOKdVlPlsbA1lBUNNQlAThzNqej+JtTKJjnvjlhjKX0Gq0oOny5FjKWhoyfQ74p9h1qE6JQ==", - "dev": true, - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.1", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.7", - "semver": "^6.0.0", - "string.prototype.padstart": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "@vue/component-compiler-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", - "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==", - "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - } - }, - "@vue/eslint-config-standard": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz", - "integrity": "sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg==", - "dev": true, - "requires": { - "eslint-config-standard": "^12.0.0", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-node": "^8.0.0", - "eslint-plugin-promise": "^4.0.1", - "eslint-plugin-standard": "^4.0.0" - } - }, - "@vue/preload-webpack-plugin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", - "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", - "dev": true - }, - "@vue/web-component-wrapper": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz", - "integrity": "sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "requires": { - "acorn": "^4.0.3" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "optional": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true, - "optional": true - } - } - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true - }, - "add-dom-event-listener": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", - "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", - "requires": { - "object-assign": "4.x" - } - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", - "dev": true - }, - "adjust-sourcemap-loader": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz", - "integrity": "sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ==", - "requires": { - "assert": "^1.3.0", - "camelcase": "^1.2.1", - "loader-utils": "^1.1.0", - "lodash.assign": "^4.0.1", - "lodash.defaults": "^3.1.2", - "object-path": "^0.9.2", - "regex-parser": "^2.2.9" - }, - "dependencies": { - "lodash.defaults": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", - "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", - "requires": { - "lodash.assign": "^3.0.0", - "lodash.restparam": "^3.0.0" - }, - "dependencies": { - "lodash.assign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "requires": { - "lodash._baseassign": "^3.0.0", - "lodash._createassigner": "^3.0.0", - "lodash.keys": "^3.0.0" - } - } - } - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ant-design-vue": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.7.2.tgz", - "integrity": "sha512-iVskTSG62OSiptyGQkvyhoeLlLMiqKtAOTcWZ7MmsMrj38h0TCpGtqSYS4/fwq4yYgyzloYSteBo8U8TrV99RA==", - "requires": { - "@ant-design/icons": "^2.1.1", - "@ant-design/icons-vue": "^2.0.0", - "@simonwep/pickr": "~1.7.0", - "add-dom-event-listener": "^1.0.2", - "array-tree-filter": "^2.1.0", - "async-validator": "^3.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.3", - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "component-classes": "^1.2.6", - "dom-align": "^1.10.4", - "dom-closest": "^0.2.0", - "dom-scroll-into-view": "^2.0.0", - "enquire.js": "^2.1.6", - "intersperse": "^1.0.0", - "is-mobile": "^2.2.1", - "is-negative-zero": "^2.0.0", - "ismobilejs": "^1.0.0", - "json2mq": "^0.2.0", - "lodash": "^4.17.5", - "moment": "^2.21.0", - "mutationobserver-shim": "^0.3.2", - "node-emoji": "^1.10.0", - "omit.js": "^1.0.0", - "raf": "^3.4.0", - "resize-observer-polyfill": "^1.5.1", - "shallow-equal": "^1.0.0", - "shallowequal": "^1.0.2", - "vue-ref": "^2.0.0", - "warning": "^4.0.0" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true - }, - "area-data": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/area-data/-/area-data-5.0.6.tgz", - "integrity": "sha512-QxLoA+823xXKyhw5S3750I9TToki0OS42HU9ol3rCOsCXfkjtl8RtQ/eoj0cK0Levn4//oEM05FmMumfw/HIlg==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", - "is-string": "^1.0.5" - } - }, - "array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "async-validator": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.1.tgz", - "integrity": "sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "requires": { - "browserslist": "^1.7.6", - "caniuse-db": "^1.0.30000634", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^5.2.16", - "postcss-value-parser": "^3.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "autoprefixer-loader": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/autoprefixer-loader/-/autoprefixer-loader-3.2.0.tgz", - "integrity": "sha1-Oae2ZGqCaYZQc9lYyX9IYVLCyEo=", - "requires": { - "autoprefixer": "^6.0.2", - "loader-utils": "^0.2.11", - "postcss": "^5.0.4", - "postcss-safe-parser": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "requires": { - "follow-redirects": "^1.10.0" - }, - "dependencies": { - "follow-redirects": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", - "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" - } - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "babel-eslint": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", - "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "babel-traverse": "^6.23.1", - "babel-types": "^6.23.0", - "babylon": "^6.17.0" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-vue-jsx-merge-props": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", - "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-module-resolver": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", - "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", - "dev": true, - "requires": { - "find-babel-config": "^1.1.0", - "glob": "^7.1.2", - "pkg-up": "^2.0.0", - "reselect": "^3.0.1", - "resolve": "^1.4.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - }, - "dependencies": { - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - } - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "^0.5.6" - } - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bfj": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", - "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cache-loader": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-2.0.1.tgz", - "integrity": "sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.0", - "normalize-path": "^3.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "optional": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true, - "optional": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - } - } - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-db": { - "version": "1.0.30001179", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001179.tgz", - "integrity": "sha512-YgqeMhTgW75OI7emeIpVTol3E2EQTQJqUJp/R1uA6aYzXOSyvGAGAkadvSdYqB/JPDBkXWwT3fLSxA+AuqttlA==" - }, - "caniuse-lite": { - "version": "1.0.30001179", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz", - "integrity": "sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA==" - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true, - "optional": true - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" - }, - "check-types": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", - "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true, - "optional": true - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "requires": { - "chalk": "^1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-highlight": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.10.tgz", - "integrity": "sha512-CcPFD3JwdQ2oSzy+AMG6j3LRTkNjM82kzcSKzoVw6cLanDCJNlsLjeqVTOTfOfucnWv5F0rmBemVf1m9JiIasw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.0.0", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", - "dev": true - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", - "dev": true, - "requires": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - }, - "dependencies": { - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "codemirror": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.59.2.tgz", - "integrity": "sha512-/D5PcsKyzthtSy2NNKCyJi3b+htRkoKv3idswR/tR6UAvMNKA7SrmyZy6fOONJxSRs1JlUWEDAbxqfdArbK8iA==" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - }, - "dependencies": { - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-string": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", - "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "requires": { - "color": "^0.11.0", - "css-color-names": "0.0.4", - "has": "^1.0.1" - }, - "dependencies": { - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "requires": { - "clone": "^1.0.2", - "color-convert": "^1.3.0", - "color-string": "^0.3.0" - } - }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "requires": { - "color-name": "^1.0.0" - } - } - } - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-classes": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", - "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", - "requires": { - "component-indexof": "0.0.3" - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "component-indexof": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", - "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "compression-webpack-plugin": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz", - "integrity": "sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug==", - "dev": true, - "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.0.0", - "neo-async": "^2.5.0", - "schema-utils": "^2.6.1", - "serialize-javascript": "^2.1.2", - "webpack-sources": "^1.0.1" - }, - "dependencies": { - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "requires": { - "bluebird": "^3.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "contour_plot": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/contour_plot/-/contour_plot-0.0.1.tgz", - "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-anything": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz", - "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==", - "dev": true, - "requires": { - "is-what": "^3.7.1" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", - "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" - }, - "dependencies": { - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", - "dev": true - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.4.3", - "minimist": "^1.2.0", - "object-assign": "^4.1.0", - "os-homedir": "^1.0.1", - "parse-json": "^2.2.0", - "require-from-string": "^1.1.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-env": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", - "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", - "requires": { - "cross-spawn": "^6.0.5" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-loader": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", - "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "cssnano": "^3.10.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash.camelcase": "^4.3.0", - "object-assign": "^4.1.1", - "postcss": "^5.0.6", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "requires": { - "autoprefixer": "^6.3.1", - "decamelize": "^1.1.2", - "defined": "^1.0.0", - "has": "^1.0.1", - "object-assign": "^4.0.1", - "postcss": "^5.0.14", - "postcss-calc": "^5.2.0", - "postcss-colormin": "^2.1.8", - "postcss-convert-values": "^2.3.4", - "postcss-discard-comments": "^2.0.4", - "postcss-discard-duplicates": "^2.0.1", - "postcss-discard-empty": "^2.0.1", - "postcss-discard-overridden": "^0.1.1", - "postcss-discard-unused": "^2.2.1", - "postcss-filter-plugins": "^2.0.0", - "postcss-merge-idents": "^2.1.5", - "postcss-merge-longhand": "^2.0.1", - "postcss-merge-rules": "^2.0.3", - "postcss-minify-font-values": "^1.0.2", - "postcss-minify-gradients": "^1.0.1", - "postcss-minify-params": "^1.0.4", - "postcss-minify-selectors": "^2.0.4", - "postcss-normalize-charset": "^1.1.0", - "postcss-normalize-url": "^3.0.7", - "postcss-ordered-values": "^2.1.0", - "postcss-reduce-idents": "^2.2.2", - "postcss-reduce-initial": "^1.0.0", - "postcss-reduce-transforms": "^1.0.3", - "postcss-svgo": "^2.1.1", - "postcss-unique-selectors": "^2.0.2", - "postcss-value-parser": "^3.2.3", - "postcss-zindex": "^2.0.1" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - }, - "dependencies": { - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - } - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - } - } - }, - "current-script-polyfill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz", - "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=", - "dev": true - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "^1.0.1" - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "d3-array": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.10.0.tgz", - "integrity": "sha512-TygE7/GvpL0092Pa/cS/kcyQ4E+I8KCkw3uCpQOFc4xi4IWNE67xST56H1Tz/FTYUqABULSEAmeLrGAmuLN8Xg==", - "requires": { - "internmap": "^1.0.0" - } - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "d3-composite-projections": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-composite-projections/-/d3-composite-projections-1.4.0.tgz", - "integrity": "sha512-csygyxdRfy7aUYRPea23veM6sjisdHI+DNd0nHcAGMd2LyL2lklr+xLRzHiJ+hy1HGp6YgAtbqdJR8CsLolrNQ==", - "requires": { - "d3-geo": "^2.0.1", - "d3-path": "^2.0.0" - }, - "dependencies": { - "d3-geo": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.1.tgz", - "integrity": "sha512-M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A==", - "requires": { - "d3-array": ">=2.5" - } - } - } - }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "requires": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - } - }, - "d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "d3-geo": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.6.4.tgz", - "integrity": "sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk=", - "requires": { - "d3-array": "1" - }, - "dependencies": { - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - } - } - }, - "d3-geo-projection": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz", - "integrity": "sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM=", - "requires": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.1.0" - }, - "dependencies": { - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - } - } - }, - "d3-hexjson": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/d3-hexjson/-/d3-hexjson-1.1.1.tgz", - "integrity": "sha512-WMF1juFJwAx6LzdEVKlsCGZz+7QUG7VMJDtg8uD3cfNwWOTgMiy6qBRRGU7LSY2KbmEObu3BV5ZQbq9l/BvUZQ==", - "requires": { - "d3-array": "1" - }, - "dependencies": { - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - } - } - }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.6.tgz", - "integrity": "sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==", - "requires": { - "d3-color": "1" - } - }, - "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" - }, - "d3-sankey": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.9.1.tgz", - "integrity": "sha512-nnRkDaUMjBdeuGg+kWGdA+tjG1AVTnJ+Ykw7ff7CZHVI17Hm5sy8n0UXykVffn13aNHwK5wPOdOt1gS1ZEaF+A==", - "requires": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - }, - "dependencies": { - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - } - } - }, - "d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" - }, - "dependencies": { - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - } - } - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "requires": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", - "requires": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "dayjs": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz", - "integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==" - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true - }, - "default-gateway": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz", - "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==", - "dev": true, - "requires": { - "execa": "^3.3.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-browser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz", - "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==" - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "optional": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-align": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz", - "integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA==" - }, - "dom-closest": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz", - "integrity": "sha1-69n5HRvyLo1vR3h2u80+yQIWwM8=", - "requires": { - "dom-matches": ">=1.0.1" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-matches": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz", - "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw=" - }, - "dom-scroll-into-view": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", - "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - } - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", - "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "easy-stack": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz", - "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "echarts": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.0.2.tgz", - "integrity": "sha512-En0VYpc96nw2/2AZoBWPHsGi471zMublttj50kfFpYAeR4geup0Tj9iVgEXh7QYZFPnRiruDJEjcB5PXZ+BYzQ==", - "requires": { - "tslib": "2.0.3", - "zrender": "5.0.4" - }, - "dependencies": { - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.644", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz", - "integrity": "sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "enquire.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", - "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=" - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", - "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", - "dev": true, - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - }, - "dependencies": { - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - } - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" - }, - "dependencies": { - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - } - } - }, - "eslint-config-standard": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "eslint-loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", - "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", - "dev": true, - "requires": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" - } - }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - } - }, - "eslint-plugin-es": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz", - "integrity": "sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==", - "dev": true, - "requires": { - "eslint-utils": "^1.4.2", - "regexpp": "^2.0.1" - }, - "dependencies": { - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz", - "integrity": "sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==", - "dev": true, - "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^5.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } - } - }, - "eslint-plugin-promise": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", - "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", - "dev": true - }, - "eslint-plugin-standard": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true - }, - "eslint-plugin-vue": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz", - "integrity": "sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw==", - "dev": true, - "requires": { - "vue-eslint-parser": "^5.0.0" - }, - "dependencies": { - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "espree": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", - "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", - "dev": true, - "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "vue-eslint-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz", - "integrity": "sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "eslint-scope": "^4.0.0", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.1.0", - "esquery": "^1.0.1", - "lodash": "^4.17.11" - } - } - } - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "optional": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "dev": true, - "optional": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "event-pubsub": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", - "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "requires": { - "original": ">=0.0.5" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "optional": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - } - } - }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "requires": { - "async": "^2.4.1", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0", - "webpack-sources": "^1.0.1" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "^5.0.0" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fecha": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", - "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "optional": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-babel-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", - "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", - "dev": true, - "requires": { - "json5": "^0.5.1", - "path-exists": "^3.0.0" - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "dev": true, - "optional": true, - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "fmin": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/fmin/-/fmin-0.0.2.tgz", - "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", - "requires": { - "contour_plot": "^0.0.1", - "json2module": "^0.0.3", - "rollup": "^0.25.8", - "tape": "^4.5.1", - "uglify-js": "^2.6.2" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "requires": { - "delegate": "^3.1.2" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "requires": { - "lodash": "^4.17.15" - } - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "highlight.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz", - "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", - "dev": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - } - } - } - } - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - } - } - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - }, - "html-webpack-plugin": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz", - "integrity": "sha512-yzK7RQZwv9xB+pcdHNTjcqbaaDZ+5L0zJHXfi89iWIZmb/FtzxhLk0635rmJihcQbs3ZUF27Xp4oWGx6EK56zg==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.20", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "dependencies": { - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - } - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "optional": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "internal-ip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "requires": { - "meow": "^3.3.0" - } - }, - "internmap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.0.tgz", - "integrity": "sha512-SdoDWwNOTE2n4JWUsLn4KXZGuZPjPF9yyOGc8bnfWnBQh7BD/l80rzSznKc/r4Y0aQ7z3RTk9X+tV4tHBpu+dA==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "intersperse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/intersperse/-/intersperse-1.0.0.tgz", - "integrity": "sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE=" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "^1.5.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-mobile": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz", - "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-what": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz", - "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "ismobilejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", - "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "javascript-stringify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz", - "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=", - "dev": true - }, - "js-base64": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", - "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" - }, - "js-cookie": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", - "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, - "js-message": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz", - "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", - "dev": true - }, - "js-queue": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.2.tgz", - "integrity": "sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==", - "dev": true, - "requires": { - "easy-stack": "^1.0.1" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsencrypt": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsencrypt/-/jsencrypt-3.1.0.tgz", - "integrity": "sha512-A4fIgyPN38G7wwB5t1Vkpi+w7j/nHKdradl/k9/GQqwAsxJqAJ55j3P5rWO3dvjhzOyWKOmK//WwzPO+o6gW0g==" - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json2module": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/json2module/-/json2module-0.0.3.tgz", - "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", - "requires": { - "rw": "^1.3.2" - } - }, - "json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", - "requires": { - "string-convert": "^0.2.0" - } - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "launch-editor": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz", - "integrity": "sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "shell-quote": "^1.6.1" - } - }, - "launch-editor-middleware": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz", - "integrity": "sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==", - "dev": true, - "requires": { - "launch-editor": "^2.2.1" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "less": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", - "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", - "dev": true, - "requires": { - "copy-anything": "^2.0.1", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "native-request": "^1.0.5", - "source-map": "~0.6.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^3.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", - "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", - "dev": true, - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" - }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" - }, - "lodash._createassigner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "requires": { - "lodash._bindcallback": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, - "lodash.find": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.mapvalues": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "lodash.transform": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", - "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "math-expression-evaluator": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.3.7.tgz", - "integrity": "sha512-nrbaifCl42w37hYd6oRLvoymFK42tWB+WQTMFtksDGQMi5GvlJwnz/CsS30FFAISFLtX+A0csJ0xLiuuyyec7w==" - }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "requires": { - "source-map": "^0.6.1" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" - }, - "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "requires": { - "mime-db": "1.45.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "mini-css-extract-plugin": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", - "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "mutationobserver-shim": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz", - "integrity": "sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ==" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - } - } - }, - "nanopop": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.1.0.tgz", - "integrity": "sha512-jGTwpFRexSH+fxappnGQtN9dspgE2ipa1aOjtR24igG0pv6JCxImIAmrLRHX+zUF5+1wtsFVbKyfP51kIGAVNw==" - }, - "native-request": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", - "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", - "dev": true, - "optional": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node-ipc": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.3.tgz", - "integrity": "sha512-8RS4RZyS/KMKKYG8mrje+cLxwATe9dBCuOiqKFSWND4oOuKytfuKCiR9yinvhoXF/nGdX/WnbywaUee+9U87zA==", - "dev": true, - "requires": { - "event-pubsub": "4.3.0", - "js-message": "1.0.7", - "js-queue": "2.0.2" - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", - "dev": true - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" - }, - "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", - "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "omit.js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-1.0.2.tgz", - "integrity": "sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ==", - "requires": { - "babel-runtime": "^6.23.0" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - }, - "dependencies": { - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=" - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - } - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - } - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "photoswipe": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-4.1.3.tgz", - "integrity": "sha512-89Z43IRUyw7ycTolo+AaiDn3W1EEIfox54hERmm9bI12IB9cvRfHSHez3XhAyU8XW2EAFrC+2sKMhh7SJwn0bA==" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "optional": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true, - "optional": true - }, - "point-at-length": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-at-length/-/point-at-length-1.1.0.tgz", - "integrity": "sha1-CtcuvQmA1/WhqxIpbAVfnrazDlc=", - "requires": { - "abs-svg-path": "~0.1.1", - "isarray": "~0.0.1", - "parse-svg-path": "~0.1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "requires": { - "postcss": "^5.0.2", - "postcss-message-helpers": "^2.0.0", - "reduce-css-calc": "^1.2.6" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "requires": { - "colormin": "^1.0.5", - "postcss": "^5.0.13", - "postcss-value-parser": "^3.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "requires": { - "postcss": "^5.0.11", - "postcss-value-parser": "^3.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "requires": { - "postcss": "^5.0.14" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "requires": { - "postcss": "^5.0.14" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "requires": { - "postcss": "^5.0.16" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "requires": { - "postcss": "^5.0.14", - "uniqs": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0", - "postcss-load-options": "^1.2.0", - "postcss-load-plugins": "^2.3.0" - } - }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0" - } - }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "requires": { - "cosmiconfig": "^2.1.1", - "object-assign": "^4.1.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.10", - "postcss-value-parser": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "requires": { - "browserslist": "^1.5.2", - "caniuse-api": "^1.5.2", - "postcss": "^5.0.4", - "postcss-selector-parser": "^2.2.2", - "vendors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "requires": { - "browserslist": "^1.3.6", - "caniuse-db": "^1.0.30000529", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "requires": { - "object-assign": "^4.0.1", - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "requires": { - "postcss": "^5.0.12", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.2", - "postcss-value-parser": "^3.0.2", - "uniqs": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "requires": { - "alphanum-sort": "^1.0.2", - "has": "^1.0.1", - "postcss": "^5.0.14", - "postcss-selector-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "requires": { - "postcss": "^5.0.5" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^1.4.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.8", - "postcss-value-parser": "^3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-safe-parser": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-1.0.7.tgz", - "integrity": "sha1-Q70MjITV99hHTeglxpnk2ryscqg=", - "requires": { - "postcss": "^5.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "requires": { - "is-svg": "^2.0.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3", - "svgo": "^0.7.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - } - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "dependencies": { - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - } - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "requires": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - } - } - }, - "reduce-function-call": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", - "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true, - "optional": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - } - }, - "regression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regression/-/regression-2.0.1.tgz", - "integrity": "sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc=" - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", - "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", - "dev": true, - "requires": { - "css-select": "^2.0.2", - "dom-converter": "^0.2", - "htmlparser2": "^3.10.1", - "lodash": "^4.17.20", - "strip-ansi": "^3.0.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "optional": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true, - "optional": true - } - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "reselect": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", - "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", - "dev": true - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "resolve-url-loader": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.3.2.tgz", - "integrity": "sha512-sc/UVgiADdoTc+4cGPB7cUCnlEkzlxD1NXHw4oa9qA0fp30H8mAQ2ePJBP9MQ029DUuhEPouhNdvzT37pBCV0g==", - "requires": { - "adjust-sourcemap-loader": "^1.1.0", - "camelcase": "^4.1.0", - "convert-source-map": "^1.5.1", - "loader-utils": "^1.1.0", - "lodash.defaults": "^4.0.0", - "rework": "^1.0.1", - "rework-visit": "^1.0.0", - "source-map": "^0.5.7", - "urix": "^0.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "~2.3.4" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rollup": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.25.8.tgz", - "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", - "requires": { - "chalk": "^1.1.1", - "minimist": "^1.2.0", - "source-map-support": "^0.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true, - "optional": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "optional": true, - "requires": { - "rx-lite": "*" - } - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-equal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-statistics": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-6.1.1.tgz", - "integrity": "sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "optional": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - }, - "dependencies": { - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "sockjs-client": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", - "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", - "requires": { - "debug": "^2.6.6", - "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", - "json3": "^3.3.2", - "url-parse": "^1.1.8" - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", - "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", - "requires": { - "source-map": "0.1.32" - }, - "dependencies": { - "source-map": { - "version": "0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", - "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", - "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.padend": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz", - "integrity": "sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "string.prototype.padstart": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.1.tgz", - "integrity": "sha512-kcFjKhQYg40AK9MITCWYr/vIebruAD01sc/fxi8szHJaEG7Rke4XHw6LU9c1VWXh/+J/PxvWLLf/aIAGKhXkAQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "string.prototype.trim": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", - "integrity": "sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "style-loader": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", - "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.3.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "^5.0.0" - } - } - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "requires": { - "coa": "~1.0.1", - "colors": "~1.1.2", - "csso": "~2.3.1", - "js-yaml": "~3.7.0", - "mkdirp": "~0.5.1", - "sax": "~1.2.1", - "whet.extend": "~0.9.9" - }, - "dependencies": { - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "requires": { - "q": "^1.1.2" - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "requires": { - "clap": "^1.0.9", - "source-map": "^0.5.3" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "requires": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true, - "optional": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true, - "optional": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true, - "optional": true - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "tape": { - "version": "4.13.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", - "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", - "requires": { - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.6", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.0.5", - "minimist": "~1.2.5", - "object-inspect": "~1.7.0", - "resolve": "~1.17.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.1", - "through": "~2.3.8" - }, - "dependencies": { - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "requires": { - "has": "^1.0.3" - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dev": true, - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "thread-loader": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz", - "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==", - "dev": true, - "requires": { - "loader-runner": "^2.3.1", - "loader-utils": "^1.1.0", - "neo-async": "^2.6.0" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "time-stamp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.2.0.tgz", - "integrity": "sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA==" - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" - }, - "tinymce": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-5.6.2.tgz", - "integrity": "sha512-z7zvM5seOPiW86/vqf08kStwW5Zs5U9oQfuqh2rTj4jEcT2QzxT0v72i2zw3W6rbTLldkAej6edFZphj5ee5zg==" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "requires": { - "commander": "2" - } - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "dev": true - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "requires": { - "source-map": "^0.5.6", - "uglify-js": "^2.8.29", - "webpack-sources": "^1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "venn.js": { - "version": "0.2.20", - "resolved": "https://registry.npmjs.org/venn.js/-/venn.js-0.2.20.tgz", - "integrity": "sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w==", - "requires": { - "d3-selection": "^1.0.2", - "d3-transition": "^1.0.1", - "fmin": "0.0.2" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "viser": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/viser/-/viser-2.4.9.tgz", - "integrity": "sha512-DKsqtMa3TZYQHEZ7jp4kpNp1Iqomda7d+3IkkIjIdKQvfL8OeksXfy/ECZUY1hTrGoOe7cq85+6PMS+MPn4mgQ==", - "requires": { - "@antv/g2": "~3.5.3", - "@antv/g2-brush": "^0.0.2", - "@antv/g2-plugin-slider": "^2.1.0", - "@types/d3-format": "*", - "@types/lodash": "*", - "@types/node": "^8.0.53", - "d3-format": "^1.3.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" - } - } - }, - "viser-vue": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/viser-vue/-/viser-vue-2.4.8.tgz", - "integrity": "sha512-ERAREN+6k/ywrwT+swcMo4CDIAq6dBjnB0+lhmsSfaip06BGHSBfNKg6yl7/4GJ9Nk2kioUw3llNhEboJuIKmQ==", - "requires": { - "@types/node": "*", - "viser": "^2.0.0", - "vue": "^2.5.3" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "vue": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", - "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==" - }, - "vue-area-linkage": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vue-area-linkage/-/vue-area-linkage-5.1.0.tgz", - "integrity": "sha512-86WD4O6PD9e2koWZ81Zlfcyey17U1+3B3fpWoyIZlBIe2V6qfvrg9BTozWdTpdF4CmKBiz138LBRTKhawl/UWw==", - "requires": { - "lodash.find": "^4.6.0" - } - }, - "vue-cropper": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.6.tgz", - "integrity": "sha512-54Z/AipXDBcE5nzJweTM+BryzSAcC0FCTMQLvLt6f4XanP4AWB3mPkQw3PG3NRICo7knljHO+N+pjZxYAKoTLQ==" - }, - "vue-eslint-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", - "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", - "dev": true, - "optional": true, - "requires": { - "debug": "^3.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "dev": true, - "optional": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "optional": true - } - } - }, - "vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" - }, - "vue-i18n": { - "version": "8.22.4", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.22.4.tgz", - "integrity": "sha512-XLI5s0AdqMP2Lf4I4CmdmOq8kjb5DDFGR77wAuxCfpEuYSfhTRyyx6MetgZMiL6Lxa0DasjBOiOcciU3NkL3/Q==" - }, - "vue-loader": { - "version": "15.9.6", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz", - "integrity": "sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg==", - "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - } - }, - "vue-ls": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vue-ls/-/vue-ls-3.2.2.tgz", - "integrity": "sha512-xros9Zheckv+8x9PerHvWe5SMYud0+ZlPAMrKWKNtDN/usMOKRoluj6kBZyQo6BxwpmiBL8/EjKMYjxmCNXOMg==", - "requires": { - "opencollective-postinstall": "^2.0.2" - } - }, - "vue-photo-preview": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vue-photo-preview/-/vue-photo-preview-1.1.3.tgz", - "integrity": "sha512-L9JTQh62rYqLHNCdpy7zQdqVisks9dvkmUpM8+7kIKG7l+KkbRLzKWK7lCjCKc6OQT42o6/ngK6B13niXunS9Q==", - "requires": { - "autoprefixer-loader": "^3.2.0", - "babel-core": "^6.26.0", - "babel-loader": "^7.1.2", - "babel-preset-env": "^1.6.0", - "cross-env": "^5.0.5", - "css-loader": "^0.28.7", - "extract-text-webpack-plugin": "^3.0.1", - "file-loader": "^1.1.4", - "photoswipe": "^4.1.2", - "resolve-url-loader": "^2.1.1", - "style-loader": "^0.19.0", - "vue": "^2.4.4", - "vue-loader": "^13.0.5", - "vue-template-compiler": "^2.4.4", - "webpack": "^3.6.0", - "webpack-dev-server": "^2.9.1" - }, - "dependencies": { - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" - }, - "babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", - "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "consolidate": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", - "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", - "requires": { - "bluebird": "^3.1.1" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.7" - } - }, - "file-loader": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", - "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.4.5" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "tapable": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz", - "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==" - }, - "vue-loader": { - "version": "13.7.3", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.3.tgz", - "integrity": "sha512-ACCwbfeC6HjY2pnDii+Zer+MZ6sdOtwvLmDXRK/BoD3WNR551V22R6KEagwHoTRJ0ZlIhpCBkptpCU6+Ri/05w==", - "requires": { - "consolidate": "^0.14.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "lru-cache": "^4.1.1", - "postcss": "^6.0.8", - "postcss-load-config": "^1.1.0", - "postcss-selector-parser": "^2.0.0", - "prettier": "^1.7.0", - "resolve": "^1.4.0", - "source-map": "^0.6.1", - "vue-hot-reload-api": "^2.2.0", - "vue-style-loader": "^3.0.0", - "vue-template-es2015-compiler": "^1.6.0" - } - }, - "vue-style-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", - "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "webpack": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", - "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", - "requires": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "async": "^2.1.2", - "enhanced-resolve": "^3.4.0", - "escope": "^3.6.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "mkdirp": "~0.5.0", - "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^4.2.1", - "tapable": "^0.2.7", - "uglifyjs-webpack-plugin": "^0.4.6", - "watchpack": "^1.4.0", - "webpack-sources": "^1.0.1", - "yargs": "^8.0.2" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "^2.0.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", - "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", - "requires": { - "memory-fs": "~0.4.1", - "mime": "^1.5.0", - "path-is-absolute": "^1.0.0", - "range-parser": "^1.0.3", - "time-stamp": "^2.0.0" - } - }, - "webpack-dev-server": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.5.tgz", - "integrity": "sha512-7TdOKKt7G3sWEhPKV0zP+nD0c4V9YKUJ3wDdBwQsZNo58oZIRoVIu66pg7PYkBW8A74msP9C2kLwmxGHndz/pw==", - "requires": { - "ansi-html": "0.0.7", - "array-includes": "^3.0.3", - "bonjour": "^3.5.0", - "chokidar": "^2.1.2", - "compression": "^1.7.3", - "connect-history-api-fallback": "^1.3.0", - "debug": "^3.1.0", - "del": "^3.0.0", - "express": "^4.16.2", - "html-entities": "^1.2.0", - "http-proxy-middleware": "^0.19.1", - "import-local": "^1.0.0", - "internal-ip": "1.2.0", - "ip": "^1.1.5", - "killable": "^1.0.0", - "loglevel": "^1.4.1", - "opn": "^5.1.0", - "portfinder": "^1.0.9", - "selfsigned": "^1.9.1", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.1.5", - "spdy": "^4.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^5.1.0", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^4.2.0" - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "requires": { - "camelcase": "^3.0.0" - } - } - } - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "vue-print-nb-jeecg": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vue-print-nb-jeecg/-/vue-print-nb-jeecg-1.0.9.tgz", - "integrity": "sha512-dWLbThjeq/hBo50wcKoHrJAxLEZcqiwoIFEjZQEvntVQs76PdDrWvpkC8F8tGZ5G9GXs9ihrddkXpaIltHJ1dQ==", - "requires": { - "babel-plugin-transform-runtime": "^6.23.0" - } - }, - "vue-ref": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vue-ref/-/vue-ref-2.0.0.tgz", - "integrity": "sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ==" - }, - "vue-router": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", - "integrity": "sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==" - }, - "vue-splitpane": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/vue-splitpane/-/vue-splitpane-1.0.6.tgz", - "integrity": "sha512-6sneVSEeF1VsCD025HP93nRxwzYhv3rotCeYi2Ah1FmGxwtfqbCZEIzaHGberdGNCpMlEzGD/1OIE1kK5QukLA==" - }, - "vue-style-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", - "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==", - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "vue-template-compiler": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz", - "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==", - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==" - }, - "vuedraggable": { - "version": "2.24.3", - "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.3.tgz", - "integrity": "sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==", - "requires": { - "sortablejs": "1.10.2" - }, - "dependencies": { - "sortablejs": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz", - "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==" - } - } - }, - "vuex": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.0.tgz", - "integrity": "sha512-W74OO2vCJPs9/YjNjW8lLbj+jzT24waTo2KShI8jLvJW8OaIkgb3wuAMA7D+ZiUxDOx3ubwSZTaJBip9G8a3aQ==" - }, - "vxe-table": { - "version": "2.9.13", - "resolved": "https://registry.npmjs.org/vxe-table/-/vxe-table-2.9.13.tgz", - "integrity": "sha512-MOaJLLJtdgVbiZX8netLqG8+daB7IbjBM9+5Ppt+seyjBrNV2C4dd8JkGpGX5zPThSzkYPGz66vo404Yu5Q/EA==" - }, - "vxe-table-plugin-antd": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/vxe-table-plugin-antd/-/vxe-table-plugin-antd-1.8.10.tgz", - "integrity": "sha512-XsNToY1zSmuLo/oQfSeDjnD4I03U+YYiMcBiduW8/BhZ7/eSTF4L2Rmu7cSDbLJefPwxsQKRd+jlFeF7T433Mw==" - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "optional": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-bundle-analyzer": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", - "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1", - "bfj": "^6.1.1", - "chalk": "^2.4.1", - "commander": "^2.18.0", - "ejs": "^2.6.1", - "express": "^4.16.3", - "filesize": "^3.6.1", - "gzip-size": "^5.0.0", - "lodash": "^4.17.19", - "mkdirp": "^0.5.1", - "opener": "^1.5.1", - "ws": "^6.0.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - } - } - }, - "webpack-chain": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz", - "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", - "dev": true, - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^1.6.0" - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", - "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "sockjs-client": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", - "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.4.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "wolfy87-eventemitter": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz", - "integrity": "sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw==" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "optional": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xe-utils": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-2.4.8.tgz", - "integrity": "sha512-/95ZaQK9GJE/EYrpMv9lgKdkEMQwWv4a4TF4dddi4gSzZ33vp/rZvzJNNV9XknaOkMizK9IBSX8CB/nL+SAk0Q==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yorkie": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz", - "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", - "dev": true, - "requires": { - "execa": "^0.8.0", - "is-ci": "^1.0.10", - "normalize-path": "^1.0.0", - "strip-indent": "^2.0.0" - }, - "dependencies": { - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", - "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", - "dev": true - } - } - }, - "zrender": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.0.4.tgz", - "integrity": "sha512-DJpy0yrHYY5CuH6vhb9IINWbjvBUe/56J8aH86Jb7O8rRPAYZ3M2E469Qf5B3EOIfM3o3aUrO5edRQfLJ+l1Qw==", - "requires": { - "tslib": "2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" - } - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 1948abb..0000000 --- a/package.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "name": "jero-web", - "version": "2.4.2", - "private": true, - "scripts": { - "pre": "cnpm install || yarn --registry https://registry.npm.taobao.org || npm install --registry https://registry.npm.taobao.org ", - "serve": "vue-cli-service serve", - "build:test": "vue-cli-service build --mode test", - "build": "vue-cli-service build", - "lint": "vue-cli-service lint" - }, - "dependencies": { - "@antv/data-set": "^0.11.4", - "@tinymce/tinymce-vue": "^2.1.0", - "@toast-ui/editor": "^2.1.2", - "ant-design-vue": "^1.7.2", - "area-data": "^5.0.6", - "axios": "^0.21.1", - "clipboard": "^2.0.4", - "codemirror": "^5.46.0", - "dayjs": "^1.8.0", - "dom-align": "1.12.0", - "echarts": "^5.0.2", - "enquire.js": "^2.1.6", - "js-base64": "^3.6.0", - "js-cookie": "^2.2.0", - "jsencrypt": "^3.0.0-rc.1", - "lodash.get": "^4.4.2", - "lodash.pick": "^4.4.0", - "md5": "^2.2.1", - "nprogress": "^0.2.0", - "tinymce": "^5.3.2", - "viser-vue": "^2.4.8", - "vue": "^2.6.10", - "vue-area-linkage": "^5.1.0", - "vue-cropper": "^0.5.4", - "vue-i18n": "^8.7.0", - "vue-loader": "^15.7.0", - "vue-ls": "^3.2.0", - "vue-photo-preview": "^1.1.3", - "vue-print-nb-jeecg": "^1.0.9", - "vue-router": "^3.0.1", - "vue-splitpane": "^1.0.4", - "vuedraggable": "^2.20.0", - "vuex": "^3.1.0", - "vxe-table": "2.9.13", - "vxe-table-plugin-antd": "1.8.10", - "xe-utils": "2.4.8" - }, - "devDependencies": { - "@babel/polyfill": "^7.2.5", - "@vue/cli-plugin-babel": "^3.3.0", - "@vue/cli-plugin-eslint": "^3.3.0", - "@vue/cli-service": "^3.3.0", - "@vue/eslint-config-standard": "^4.0.0", - "babel-eslint": "7.2.3", - "compression-webpack-plugin": "^3.1.0", - "eslint": "^5.16.0", - "eslint-plugin-vue": "^5.1.0", - "html-webpack-plugin": "^4.2.0", - "less": "^3.9.0", - "less-loader": "^4.1.0", - "vue-template-compiler": "^2.6.10" - }, - "eslintConfig": { - "root": true, - "env": { - "node": true - }, - "extends": [ - "plugin:vue/strongly-recommended", - "@vue/standard" - ], - "parserOptions": { - "parser": "babel-eslint" - }, - "rules": { - "generator-star-spacing": "off", - "no-mixed-operators": 0, - "vue/max-attributes-per-line": [ - 2, - { - "singleline": 5, - "multiline": { - "max": 1, - "allowFirstLine": false - } - } - ], - "vue/attribute-hyphenation": 0, - "vue/html-self-closing": 0, - "vue/component-name-in-template-casing": 0, - "vue/html-closing-bracket-spacing": 0, - "vue/singleline-html-element-content-newline": 0, - "vue/no-unused-components": 0, - "vue/multiline-html-element-content-newline": 0, - "vue/no-use-v-if-with-v-for": 0, - "vue/html-closing-bracket-newline": 0, - "vue/no-parsing-error": 0, - "no-tabs": 0, - "indent": [ - "off", - 2 - ], - "no-console": 0, - "space-before-function-paren": 0 - } - }, - "postcss": { - "plugins": { - "autoprefixer": {} - } - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 10" - ] -} diff --git a/public/api_address_config.js b/public/api_address_config.js deleted file mode 100644 index 74ec003..0000000 --- a/public/api_address_config.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * 防止打包部署时路径被写死 - */ -window._CONFIG = {} -window._CONFIG['domianURL'] = '/jero-boot' // 路由转发 devServer -window._CONFIG['domianWebSocketURL'] = 'http://localhost:8080/jero-boot' -// 单点登录地址 -window._CONFIG['staticDomainURL'] = window._CONFIG['domianURL'] + '/sys/common/download' -window._CONFIG['pdfDomainURL'] = window._CONFIG['domianURL'] + '/sys/common/pdf/pdfPreviewIframe' -window._CONFIG['casPrefixUrl'] = 'http://cas.example.org:8443/cas' -// 预览文件地址 -window._CONFIG['onlinePreviewDomainURL'] = 'http://127.0.0.1:8012/onlinePreview' diff --git a/public/avatar2.jpg b/public/avatar2.jpg deleted file mode 100644 index 9adb2d1b88665631c9dfe7acd8c125ec87eb6fc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80189 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Ȇ~_mYlz55^9KP)hUklbsu17%qOvafHCep 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

@kHGHV*M}ud-K*Ym^3Id2q7H(x;jE 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

    9J2$d}*12p3mw+Jf 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
  1. +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 diff --git a/public/cdn/babel-polyfill/polyfill_7_2_5.js b/public/cdn/babel-polyfill/polyfill_7_2_5.js deleted file mode 100644 index 250b921..0000000 --- a/public/cdn/babel-polyfill/polyfill_7_2_5.js +++ /dev/null @@ -1,6953 +0,0 @@ -(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 2 ? arguments[2] : undefined; - var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); - var inc = 1; - if (from < to && to < from + count) { - inc = -1; - from += count - 1; - to += count - 1; - } - while (count-- > 0) { - if (from in O) O[to] = O[from]; - else delete O[to]; - to += inc; - from += inc; - } return O; -}; - -},{"113":113,"117":117,"118":118}],18:[function(_dereq_,module,exports){ -// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) -'use strict'; -var toObject = _dereq_(118); -var toAbsoluteIndex = _dereq_(113); -var toLength = _dereq_(117); -module.exports = function fill(value /* , start = 0, end = @length */) { - var O = toObject(this); - var length = toLength(O.length); - var aLen = arguments.length; - var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); - var end = aLen > 2 ? arguments[2] : undefined; - var endPos = end === undefined ? length : toAbsoluteIndex(end, length); - while (endPos > index) O[index++] = value; - return O; -}; - -},{"113":113,"117":117,"118":118}],19:[function(_dereq_,module,exports){ -// false -> Array#indexOf -// true -> Array#includes -var toIObject = _dereq_(116); -var toLength = _dereq_(117); -var toAbsoluteIndex = _dereq_(113); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -},{"113":113,"116":116,"117":117}],20:[function(_dereq_,module,exports){ -// 0 -> Array#forEach -// 1 -> Array#map -// 2 -> Array#filter -// 3 -> Array#some -// 4 -> Array#every -// 5 -> Array#find -// 6 -> Array#findIndex -var ctx = _dereq_(32); -var IObject = _dereq_(53); -var toObject = _dereq_(118); -var toLength = _dereq_(117); -var asc = _dereq_(23); -module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - for (;length > index; index++) if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - if (TYPE) { - if (IS_MAP) result[index] = res; // map - else if (res) switch (TYPE) { - case 3: return true; // some - case 5: return val; // find - case 6: return index; // findIndex - case 2: result.push(val); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; -}; - -},{"117":117,"118":118,"23":23,"32":32,"53":53}],21:[function(_dereq_,module,exports){ -var aFunction = _dereq_(11); -var toObject = _dereq_(118); -var IObject = _dereq_(53); -var toLength = _dereq_(117); - -module.exports = function (that, callbackfn, aLen, memo, isRight) { - aFunction(callbackfn); - var O = toObject(that); - var self = IObject(O); - var length = toLength(O.length); - var index = isRight ? length - 1 : 0; - var i = isRight ? -1 : 1; - if (aLen < 2) for (;;) { - if (index in self) { - memo = self[index]; - index += i; - break; - } - index += i; - if (isRight ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); - } - } - for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { - memo = callbackfn(memo, self[index], index, O); - } - return memo; -}; - -},{"11":11,"117":117,"118":118,"53":53}],22:[function(_dereq_,module,exports){ -var isObject = _dereq_(57); -var isArray = _dereq_(55); -var SPECIES = _dereq_(128)('species'); - -module.exports = function (original) { - var C; - if (isArray(original)) { - C = original.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return C === undefined ? Array : C; -}; - -},{"128":128,"55":55,"57":57}],23:[function(_dereq_,module,exports){ -// 9.4.2.3 ArraySpeciesCreate(originalArray, length) -var speciesConstructor = _dereq_(22); - -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - -},{"22":22}],24:[function(_dereq_,module,exports){ -'use strict'; -var aFunction = _dereq_(11); -var isObject = _dereq_(57); -var invoke = _dereq_(52); -var arraySlice = [].slice; -var factories = {}; - -var construct = function (F, len, args) { - if (!(len in factories)) { - for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; - // eslint-disable-next-line no-new-func - factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); - } return factories[len](F, args); -}; - -module.exports = Function.bind || function bind(that /* , ...args */) { - var fn = aFunction(this); - var partArgs = arraySlice.call(arguments, 1); - var bound = function (/* args... */) { - var args = partArgs.concat(arraySlice.call(arguments)); - return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); - }; - if (isObject(fn.prototype)) bound.prototype = fn.prototype; - return bound; -}; - -},{"11":11,"52":52,"57":57}],25:[function(_dereq_,module,exports){ -// getting tag from 19.1.3.6 Object.prototype.toString() -var cof = _dereq_(26); -var TAG = _dereq_(128)('toStringTag'); -// ES3 wrong here -var ARG = cof(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - // builtinTag case - : ARG ? cof(O) - // ES3 arguments fallback - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - -},{"128":128,"26":26}],26:[function(_dereq_,module,exports){ -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - -},{}],27:[function(_dereq_,module,exports){ -'use strict'; -var dP = _dereq_(75).f; -var create = _dereq_(74); -var redefineAll = _dereq_(93); -var ctx = _dereq_(32); -var anInstance = _dereq_(15); -var forOf = _dereq_(45); -var $iterDefine = _dereq_(61); -var step = _dereq_(63); -var setSpecies = _dereq_(99); -var DESCRIPTORS = _dereq_(36); -var fastKey = _dereq_(70).fastKey; -var validate = _dereq_(125); -var SIZE = DESCRIPTORS ? '_s' : 'size'; - -var getEntry = function (that, key) { - // fast case - var index = fastKey(key); - var entry; - if (index !== 'F') return that._i[index]; - // frozen object case - for (entry = that._f; entry; entry = entry.n) { - if (entry.k == key) return entry; - } -}; - -module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = create(null); // index - that._f = undefined; // first entry - that._l = undefined; // last entry - that[SIZE] = 0; // size - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear() { - for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { - entry.r = true; - if (entry.p) entry.p = entry.p.n = undefined; - delete data[entry.i]; - } - that._f = that._l = undefined; - that[SIZE] = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function (key) { - var that = validate(this, NAME); - var entry = getEntry(that, key); - if (entry) { - var next = entry.n; - var prev = entry.p; - delete that._i[entry.i]; - entry.r = true; - if (prev) prev.n = next; - if (next) next.p = prev; - if (that._f == entry) that._f = next; - if (that._l == entry) that._l = prev; - that[SIZE]--; - } return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn /* , that = undefined */) { - validate(this, NAME); - var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - while (entry = entry ? entry.n : this._f) { - f(entry.v, entry.k, this); - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key) { - return !!getEntry(validate(this, NAME), key); - } - }); - if (DESCRIPTORS) dP(C.prototype, 'size', { - get: function () { - return validate(this, NAME)[SIZE]; - } - }); - return C; - }, - def: function (that, key, value) { - var entry = getEntry(that, key); - var prev, index; - // change existing entry - if (entry) { - entry.v = value; - // create new entry - } else { - that._l = entry = { - i: index = fastKey(key, true), // <- index - k: key, // <- key - v: value, // <- value - p: prev = that._l, // <- previous entry - n: undefined, // <- next entry - r: false // <- removed - }; - if (!that._f) that._f = entry; - if (prev) prev.n = entry; - that[SIZE]++; - // add to index - if (index !== 'F') that._i[index] = entry; - } return that; - }, - getEntry: getEntry, - setStrong: function (C, NAME, IS_MAP) { - // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - $iterDefine(C, NAME, function (iterated, kind) { - this._t = validate(iterated, NAME); // target - this._k = kind; // kind - this._l = undefined; // previous - }, function () { - var that = this; - var kind = that._k; - var entry = that._l; - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - // get next entry - if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { - // or finish the iteration - that._t = undefined; - return step(1); - } - // return step by kind - if (kind == 'keys') return step(0, entry.k); - if (kind == 'values') return step(0, entry.v); - return step(0, [entry.k, entry.v]); - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - - // add [@@species], 23.1.2.2, 23.2.2.2 - setSpecies(NAME); - } -}; - -},{"125":125,"15":15,"32":32,"36":36,"45":45,"61":61,"63":63,"70":70,"74":74,"75":75,"93":93,"99":99}],28:[function(_dereq_,module,exports){ -'use strict'; -var redefineAll = _dereq_(93); -var getWeak = _dereq_(70).getWeak; -var anObject = _dereq_(16); -var isObject = _dereq_(57); -var anInstance = _dereq_(15); -var forOf = _dereq_(45); -var createArrayMethod = _dereq_(20); -var $has = _dereq_(47); -var validate = _dereq_(125); -var arrayFind = createArrayMethod(5); -var arrayFindIndex = createArrayMethod(6); -var id = 0; - -// fallback for uncaught frozen keys -var uncaughtFrozenStore = function (that) { - return that._l || (that._l = new UncaughtFrozenStore()); -}; -var UncaughtFrozenStore = function () { - this.a = []; -}; -var findUncaughtFrozen = function (store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); -}; -UncaughtFrozenStore.prototype = { - get: function (key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function (key) { - return !!findUncaughtFrozen(this, key); - }, - set: function (key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value; - else this.a.push([key, value]); - }, - 'delete': function (key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; - } -}; - -module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = id++; // collection id - that._l = undefined; // leak store for uncaught frozen objects - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function (key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function (that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value); - else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - -},{"125":125,"15":15,"16":16,"20":20,"45":45,"47":47,"57":57,"70":70,"93":93}],29:[function(_dereq_,module,exports){ -'use strict'; -var global = _dereq_(46); -var $export = _dereq_(40); -var redefine = _dereq_(94); -var redefineAll = _dereq_(93); -var meta = _dereq_(70); -var forOf = _dereq_(45); -var anInstance = _dereq_(15); -var isObject = _dereq_(57); -var fails = _dereq_(42); -var $iterDetect = _dereq_(62); -var setToStringTag = _dereq_(100); -var inheritIfRequired = _dereq_(51); - -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - var fixMethod = function (KEY) { - var fn = proto[KEY]; - redefine(proto, KEY, - KEY == 'delete' ? function (a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'has' ? function has(a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'get' ? function get(a) { - return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } - : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } - ); - }; - if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - // create collection constructor - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - var instance = new C(); - // early implementations not supports chaining - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false - var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); - // most early implementations doesn't supports iterables, most modern - not close it correctly - var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new - // for early implementations -0 and +0 not the same - var BUGGY_ZERO = !IS_WEAK && fails(function () { - // V8 ~ Chromium 42- fails only with 5+ elements - var $instance = new C(); - var index = 5; - while (index--) $instance[ADDER](index, index); - return !$instance.has(-0); - }); - if (!ACCEPT_ITERABLES) { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME); - var that = inheritIfRequired(new Base(), target, C); - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; - } - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - // weak collections should not contains .clear method - if (IS_WEAK && proto.clear) delete proto.clear; - } - - setToStringTag(C, NAME); - - O[NAME] = C; - $export($export.G + $export.W + $export.F * (C != Base), O); - - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - - return C; -}; - -},{"100":100,"15":15,"40":40,"42":42,"45":45,"46":46,"51":51,"57":57,"62":62,"70":70,"93":93,"94":94}],30:[function(_dereq_,module,exports){ -var core = module.exports = { version: '2.6.1' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - -},{}],31:[function(_dereq_,module,exports){ -'use strict'; -var $defineProperty = _dereq_(75); -var createDesc = _dereq_(92); - -module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value)); - else object[index] = value; -}; - -},{"75":75,"92":92}],32:[function(_dereq_,module,exports){ -// optional / simple context binding -var aFunction = _dereq_(11); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - -},{"11":11}],33:[function(_dereq_,module,exports){ -'use strict'; -// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() -var fails = _dereq_(42); -var getTime = Date.prototype.getTime; -var $toISOString = Date.prototype.toISOString; - -var lz = function (num) { - return num > 9 ? num : '0' + num; -}; - -// PhantomJS / old WebKit has a broken implementations -module.exports = (fails(function () { - return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; -}) || !fails(function () { - $toISOString.call(new Date(NaN)); -})) ? function toISOString() { - if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); - var d = this; - var y = d.getUTCFullYear(); - var m = d.getUTCMilliseconds(); - var s = y < 0 ? '-' : y > 9999 ? '+' : ''; - return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + - '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + - 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + - ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; -} : $toISOString; - -},{"42":42}],34:[function(_dereq_,module,exports){ -'use strict'; -var anObject = _dereq_(16); -var toPrimitive = _dereq_(119); -var NUMBER = 'number'; - -module.exports = function (hint) { - if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); - return toPrimitive(anObject(this), hint != NUMBER); -}; - -},{"119":119,"16":16}],35:[function(_dereq_,module,exports){ -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - -},{}],36:[function(_dereq_,module,exports){ -// Thank's IE8 for his funny defineProperty -module.exports = !_dereq_(42)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - -},{"42":42}],37:[function(_dereq_,module,exports){ -var isObject = _dereq_(57); -var document = _dereq_(46).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - -},{"46":46,"57":57}],38:[function(_dereq_,module,exports){ -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - -},{}],39:[function(_dereq_,module,exports){ -// all enumerable object keys, includes symbols -var getKeys = _dereq_(83); -var gOPS = _dereq_(80); -var pIE = _dereq_(84); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - -},{"80":80,"83":83,"84":84}],40:[function(_dereq_,module,exports){ -var global = _dereq_(46); -var core = _dereq_(30); -var hide = _dereq_(48); -var redefine = _dereq_(94); -var ctx = _dereq_(32); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); - var key, own, out, exp; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - // export native or passed - out = (own ? target : source)[key]; - // bind timers to global for call from export context - exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // extend global - if (target) redefine(target, key, out, type & $export.U); - // export - if (exports[key] != out) hide(exports, key, exp); - if (IS_PROTO && expProto[key] != out) expProto[key] = out; - } -}; -global.core = core; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - -},{"30":30,"32":32,"46":46,"48":48,"94":94}],41:[function(_dereq_,module,exports){ -var MATCH = _dereq_(128)('match'); -module.exports = function (KEY) { - var re = /./; - try { - '/./'[KEY](re); - } catch (e) { - try { - re[MATCH] = false; - return !'/./'[KEY](re); - } catch (f) { /* empty */ } - } return true; -}; - -},{"128":128}],42:[function(_dereq_,module,exports){ -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - -},{}],43:[function(_dereq_,module,exports){ -'use strict'; -_dereq_(224); -var redefine = _dereq_(94); -var hide = _dereq_(48); -var fails = _dereq_(42); -var defined = _dereq_(35); -var wks = _dereq_(128); -var regexpExec = _dereq_(96); - -var SPECIES = wks('species'); - -var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; -}); - -var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () { - // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length === 2 && result[0] === 'a' && result[1] === 'b'; -})(); - -module.exports = function (KEY, length, exec) { - var SYMBOL = wks(KEY); - - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - re.exec = function () { execCalled = true; return null; }; - if (KEY === 'split') { - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES] = function () { return re; }; - } - re[SYMBOL](''); - return !execCalled; - }) : undefined; - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var fns = exec( - defined, - SYMBOL, - ''[KEY], - function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - } - ); - var strfn = fns[0]; - var rxfn = fns[1]; - - redefine(String.prototype, KEY, strfn); - hide(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return rxfn.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return rxfn.call(string, this); } - ); - } -}; - -},{"128":128,"224":224,"35":35,"42":42,"48":48,"94":94,"96":96}],44:[function(_dereq_,module,exports){ -'use strict'; -// 21.2.5.3 get RegExp.prototype.flags -var anObject = _dereq_(16); -module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; -}; - -},{"16":16}],45:[function(_dereq_,module,exports){ -var ctx = _dereq_(32); -var call = _dereq_(59); -var isArrayIter = _dereq_(54); -var anObject = _dereq_(16); -var toLength = _dereq_(117); -var getIterFn = _dereq_(129); -var BREAK = {}; -var RETURN = {}; -var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - // fast case for arrays with default iterator - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; -exports.BREAK = BREAK; -exports.RETURN = RETURN; - -},{"117":117,"129":129,"16":16,"32":32,"54":54,"59":59}],46:[function(_dereq_,module,exports){ -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - -},{}],47:[function(_dereq_,module,exports){ -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - -},{}],48:[function(_dereq_,module,exports){ -var dP = _dereq_(75); -var createDesc = _dereq_(92); -module.exports = _dereq_(36) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -},{"36":36,"75":75,"92":92}],49:[function(_dereq_,module,exports){ -var document = _dereq_(46).document; -module.exports = document && document.documentElement; - -},{"46":46}],50:[function(_dereq_,module,exports){ -module.exports = !_dereq_(36) && !_dereq_(42)(function () { - return Object.defineProperty(_dereq_(37)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - -},{"36":36,"37":37,"42":42}],51:[function(_dereq_,module,exports){ -var isObject = _dereq_(57); -var setPrototypeOf = _dereq_(98).set; -module.exports = function (that, target, C) { - var S = target.constructor; - var P; - if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { - setPrototypeOf(that, P); - } return that; -}; - -},{"57":57,"98":98}],52:[function(_dereq_,module,exports){ -// fast apply, http://jsperf.lnkit.com/fast-apply/5 -module.exports = function (fn, args, that) { - var un = that === undefined; - switch (args.length) { - case 0: return un ? fn() - : fn.call(that); - case 1: return un ? fn(args[0]) - : fn.call(that, args[0]); - case 2: return un ? fn(args[0], args[1]) - : fn.call(that, args[0], args[1]); - case 3: return un ? fn(args[0], args[1], args[2]) - : fn.call(that, args[0], args[1], args[2]); - case 4: return un ? fn(args[0], args[1], args[2], args[3]) - : fn.call(that, args[0], args[1], args[2], args[3]); - } return fn.apply(that, args); -}; - -},{}],53:[function(_dereq_,module,exports){ -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = _dereq_(26); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - -},{"26":26}],54:[function(_dereq_,module,exports){ -// check on default Array iterator -var Iterators = _dereq_(64); -var ITERATOR = _dereq_(128)('iterator'); -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - -},{"128":128,"64":64}],55:[function(_dereq_,module,exports){ -// 7.2.2 IsArray(argument) -var cof = _dereq_(26); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - -},{"26":26}],56:[function(_dereq_,module,exports){ -// 20.1.2.3 Number.isInteger(number) -var isObject = _dereq_(57); -var floor = Math.floor; -module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; -}; - -},{"57":57}],57:[function(_dereq_,module,exports){ -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - -},{}],58:[function(_dereq_,module,exports){ -// 7.2.8 IsRegExp(argument) -var isObject = _dereq_(57); -var cof = _dereq_(26); -var MATCH = _dereq_(128)('match'); -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); -}; - -},{"128":128,"26":26,"57":57}],59:[function(_dereq_,module,exports){ -// call something on iterator step with safe closing on error -var anObject = _dereq_(16); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - -},{"16":16}],60:[function(_dereq_,module,exports){ -'use strict'; -var create = _dereq_(74); -var descriptor = _dereq_(92); -var setToStringTag = _dereq_(100); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -_dereq_(48)(IteratorPrototype, _dereq_(128)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - -},{"100":100,"128":128,"48":48,"74":74,"92":92}],61:[function(_dereq_,module,exports){ -'use strict'; -var LIBRARY = _dereq_(65); -var $export = _dereq_(40); -var redefine = _dereq_(94); -var hide = _dereq_(48); -var Iterators = _dereq_(64); -var $iterCreate = _dereq_(60); -var setToStringTag = _dereq_(100); -var getPrototypeOf = _dereq_(81); -var ITERATOR = _dereq_(128)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - -},{"100":100,"128":128,"40":40,"48":48,"60":60,"64":64,"65":65,"81":81,"94":94}],62:[function(_dereq_,module,exports){ -var ITERATOR = _dereq_(128)('iterator'); -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - // eslint-disable-next-line no-throw-literal - Array.from(riter, function () { throw 2; }); -} catch (e) { /* empty */ } - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; -}; - -},{"128":128}],63:[function(_dereq_,module,exports){ -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - -},{}],64:[function(_dereq_,module,exports){ -module.exports = {}; - -},{}],65:[function(_dereq_,module,exports){ -module.exports = false; - -},{}],66:[function(_dereq_,module,exports){ -// 20.2.2.14 Math.expm1(x) -var $expm1 = Math.expm1; -module.exports = (!$expm1 - // Old FF bug - || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 - // Tor Browser bug - || $expm1(-2e-17) != -2e-17 -) ? function expm1(x) { - return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; -} : $expm1; - -},{}],67:[function(_dereq_,module,exports){ -// 20.2.2.16 Math.fround(x) -var sign = _dereq_(69); -var pow = Math.pow; -var EPSILON = pow(2, -52); -var EPSILON32 = pow(2, -23); -var MAX32 = pow(2, 127) * (2 - EPSILON32); -var MIN32 = pow(2, -126); - -var roundTiesToEven = function (n) { - return n + 1 / EPSILON - 1 / EPSILON; -}; - -module.exports = Math.fround || function fround(x) { - var $abs = Math.abs(x); - var $sign = sign(x); - var a, result; - if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; - a = (1 + EPSILON32 / EPSILON) * $abs; - result = a - (a - $abs); - // eslint-disable-next-line no-self-compare - if (result > MAX32 || result != result) return $sign * Infinity; - return $sign * result; -}; - -},{"69":69}],68:[function(_dereq_,module,exports){ -// 20.2.2.20 Math.log1p(x) -module.exports = Math.log1p || function log1p(x) { - return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); -}; - -},{}],69:[function(_dereq_,module,exports){ -// 20.2.2.28 Math.sign(x) -module.exports = Math.sign || function sign(x) { - // eslint-disable-next-line no-self-compare - return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; -}; - -},{}],70:[function(_dereq_,module,exports){ -var META = _dereq_(123)('meta'); -var isObject = _dereq_(57); -var has = _dereq_(47); -var setDesc = _dereq_(75).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !_dereq_(42)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - -},{"123":123,"42":42,"47":47,"57":57,"75":75}],71:[function(_dereq_,module,exports){ -var global = _dereq_(46); -var macrotask = _dereq_(112).set; -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = _dereq_(26)(process) == 'process'; - -module.exports = function () { - var head, last, notify; - - var flush = function () { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (e) { - if (head) notify(); - else last = undefined; - throw e; - } - } last = undefined; - if (parent) parent.enter(); - }; - - // Node.js - if (isNode) { - notify = function () { - process.nextTick(flush); - }; - // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new - notify = function () { - node.data = toggle = !toggle; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (Promise && Promise.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - var promise = Promise.resolve(undefined); - notify = function () { - promise.then(flush); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - } else { - notify = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; - }; -}; - -},{"112":112,"26":26,"46":46}],72:[function(_dereq_,module,exports){ -'use strict'; -// 25.4.1.5 NewPromiseCapability(C) -var aFunction = _dereq_(11); - -function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -} - -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - -},{"11":11}],73:[function(_dereq_,module,exports){ -'use strict'; -// 19.1.2.1 Object.assign(target, source, ...) -var getKeys = _dereq_(83); -var gOPS = _dereq_(80); -var pIE = _dereq_(84); -var toObject = _dereq_(118); -var IObject = _dereq_(53); -var $assign = Object.assign; - -// should work with symbols and should have deterministic property order (V8 bug) -module.exports = !$assign || _dereq_(42)(function () { - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; - } return T; -} : $assign; - -},{"118":118,"42":42,"53":53,"80":80,"83":83,"84":84}],74:[function(_dereq_,module,exports){ -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = _dereq_(16); -var dPs = _dereq_(76); -var enumBugKeys = _dereq_(38); -var IE_PROTO = _dereq_(101)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = _dereq_(37)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - _dereq_(49).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - -},{"101":101,"16":16,"37":37,"38":38,"49":49,"76":76}],75:[function(_dereq_,module,exports){ -var anObject = _dereq_(16); -var IE8_DOM_DEFINE = _dereq_(50); -var toPrimitive = _dereq_(119); -var dP = Object.defineProperty; - -exports.f = _dereq_(36) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - -},{"119":119,"16":16,"36":36,"50":50}],76:[function(_dereq_,module,exports){ -var dP = _dereq_(75); -var anObject = _dereq_(16); -var getKeys = _dereq_(83); - -module.exports = _dereq_(36) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - -},{"16":16,"36":36,"75":75,"83":83}],77:[function(_dereq_,module,exports){ -var pIE = _dereq_(84); -var createDesc = _dereq_(92); -var toIObject = _dereq_(116); -var toPrimitive = _dereq_(119); -var has = _dereq_(47); -var IE8_DOM_DEFINE = _dereq_(50); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = _dereq_(36) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - -},{"116":116,"119":119,"36":36,"47":47,"50":50,"84":84,"92":92}],78:[function(_dereq_,module,exports){ -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = _dereq_(116); -var gOPN = _dereq_(79).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - -},{"116":116,"79":79}],79:[function(_dereq_,module,exports){ -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = _dereq_(82); -var hiddenKeys = _dereq_(38).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - -},{"38":38,"82":82}],80:[function(_dereq_,module,exports){ -exports.f = Object.getOwnPropertySymbols; - -},{}],81:[function(_dereq_,module,exports){ -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = _dereq_(47); -var toObject = _dereq_(118); -var IE_PROTO = _dereq_(101)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - -},{"101":101,"118":118,"47":47}],82:[function(_dereq_,module,exports){ -var has = _dereq_(47); -var toIObject = _dereq_(116); -var arrayIndexOf = _dereq_(19)(false); -var IE_PROTO = _dereq_(101)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - -},{"101":101,"116":116,"19":19,"47":47}],83:[function(_dereq_,module,exports){ -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = _dereq_(82); -var enumBugKeys = _dereq_(38); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - -},{"38":38,"82":82}],84:[function(_dereq_,module,exports){ -exports.f = {}.propertyIsEnumerable; - -},{}],85:[function(_dereq_,module,exports){ -// most Object methods by ES6 should accept primitives -var $export = _dereq_(40); -var core = _dereq_(30); -var fails = _dereq_(42); -module.exports = function (KEY, exec) { - var fn = (core.Object || {})[KEY] || Object[KEY]; - var exp = {}; - exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); -}; - -},{"30":30,"40":40,"42":42}],86:[function(_dereq_,module,exports){ -var getKeys = _dereq_(83); -var toIObject = _dereq_(116); -var isEnum = _dereq_(84).f; -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) if (isEnum.call(O, key = keys[i++])) { - result.push(isEntries ? [key, O[key]] : O[key]); - } return result; - }; -}; - -},{"116":116,"83":83,"84":84}],87:[function(_dereq_,module,exports){ -// all object keys, includes non-enumerable and symbols -var gOPN = _dereq_(79); -var gOPS = _dereq_(80); -var anObject = _dereq_(16); -var Reflect = _dereq_(46).Reflect; -module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { - var keys = gOPN.f(anObject(it)); - var getSymbols = gOPS.f; - return getSymbols ? keys.concat(getSymbols(it)) : keys; -}; - -},{"16":16,"46":46,"79":79,"80":80}],88:[function(_dereq_,module,exports){ -var $parseFloat = _dereq_(46).parseFloat; -var $trim = _dereq_(110).trim; - -module.exports = 1 / $parseFloat(_dereq_(111) + '-0') !== -Infinity ? function parseFloat(str) { - var string = $trim(String(str), 3); - var result = $parseFloat(string); - return result === 0 && string.charAt(0) == '-' ? -0 : result; -} : $parseFloat; - -},{"110":110,"111":111,"46":46}],89:[function(_dereq_,module,exports){ -var $parseInt = _dereq_(46).parseInt; -var $trim = _dereq_(110).trim; -var ws = _dereq_(111); -var hex = /^[-+]?0[xX]/; - -module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { - var string = $trim(String(str), 3); - return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); -} : $parseInt; - -},{"110":110,"111":111,"46":46}],90:[function(_dereq_,module,exports){ -module.exports = function (exec) { - try { - return { e: false, v: exec() }; - } catch (e) { - return { e: true, v: e }; - } -}; - -},{}],91:[function(_dereq_,module,exports){ -var anObject = _dereq_(16); -var isObject = _dereq_(57); -var newPromiseCapability = _dereq_(72); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - -},{"16":16,"57":57,"72":72}],92:[function(_dereq_,module,exports){ -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - -},{}],93:[function(_dereq_,module,exports){ -var redefine = _dereq_(94); -module.exports = function (target, src, safe) { - for (var key in src) redefine(target, key, src[key], safe); - return target; -}; - -},{"94":94}],94:[function(_dereq_,module,exports){ -var global = _dereq_(46); -var hide = _dereq_(48); -var has = _dereq_(47); -var SRC = _dereq_(123)('src'); -var TO_STRING = 'toString'; -var $toString = Function[TO_STRING]; -var TPL = ('' + $toString).split(TO_STRING); - -_dereq_(30).inspectSource = function (it) { - return $toString.call(it); -}; - -(module.exports = function (O, key, val, safe) { - var isFunction = typeof val == 'function'; - if (isFunction) has(val, 'name') || hide(val, 'name', key); - if (O[key] === val) return; - if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); - if (O === global) { - O[key] = val; - } else if (!safe) { - delete O[key]; - hide(O, key, val); - } else if (O[key]) { - O[key] = val; - } else { - hide(O, key, val); - } -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, TO_STRING, function toString() { - return typeof this == 'function' && this[SRC] || $toString.call(this); -}); - -},{"123":123,"30":30,"46":46,"47":47,"48":48}],95:[function(_dereq_,module,exports){ -'use strict'; - -var classof = _dereq_(25); -var builtinExec = RegExp.prototype.exec; - - // `RegExpExec` abstract operation -// https://tc39.github.io/ecma262/#sec-regexpexec -module.exports = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw new TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - if (classof(R) !== 'RegExp') { - throw new TypeError('RegExp#exec called on incompatible receiver'); - } - return builtinExec.call(R, S); -}; - -},{"25":25}],96:[function(_dereq_,module,exports){ -'use strict'; - -var regexpFlags = _dereq_(44); - -var nativeExec = RegExp.prototype.exec; -// This always refers to the native implementation, because the -// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, -// which loads this file before patching the method. -var nativeReplace = String.prototype.replace; - -var patchedExec = nativeExec; - -var LAST_INDEX = 'lastIndex'; - -var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/, - re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; -})(); - -// nonparticipating capturing group, copied from es5-shim's String#split patch. -var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; - -if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; - - match = nativeExec.call(re, str); - - if (UPDATES_LAST_INDEX_WRONG && match) { - re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - // eslint-disable-next-line no-loop-func - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; -} - -module.exports = patchedExec; - -},{"44":44}],97:[function(_dereq_,module,exports){ -// 7.2.9 SameValue(x, y) -module.exports = Object.is || function is(x, y) { - // eslint-disable-next-line no-self-compare - return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; -}; - -},{}],98:[function(_dereq_,module,exports){ -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var isObject = _dereq_(57); -var anObject = _dereq_(16); -var check = function (O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function (test, buggy, set) { - try { - set = _dereq_(32)(Function.call, _dereq_(77).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { buggy = true; } - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - -},{"16":16,"32":32,"57":57,"77":77}],99:[function(_dereq_,module,exports){ -'use strict'; -var global = _dereq_(46); -var dP = _dereq_(75); -var DESCRIPTORS = _dereq_(36); -var SPECIES = _dereq_(128)('species'); - -module.exports = function (KEY) { - var C = global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function () { return this; } - }); -}; - -},{"128":128,"36":36,"46":46,"75":75}],100:[function(_dereq_,module,exports){ -var def = _dereq_(75).f; -var has = _dereq_(47); -var TAG = _dereq_(128)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - -},{"128":128,"47":47,"75":75}],101:[function(_dereq_,module,exports){ -var shared = _dereq_(102)('keys'); -var uid = _dereq_(123); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - -},{"102":102,"123":123}],102:[function(_dereq_,module,exports){ -var core = _dereq_(30); -var global = _dereq_(46); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: _dereq_(65) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - -},{"30":30,"46":46,"65":65}],103:[function(_dereq_,module,exports){ -// 7.3.20 SpeciesConstructor(O, defaultConstructor) -var anObject = _dereq_(16); -var aFunction = _dereq_(11); -var SPECIES = _dereq_(128)('species'); -module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); -}; - -},{"11":11,"128":128,"16":16}],104:[function(_dereq_,module,exports){ -'use strict'; -var fails = _dereq_(42); - -module.exports = function (method, arg) { - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call - arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); - }); -}; - -},{"42":42}],105:[function(_dereq_,module,exports){ -var toInteger = _dereq_(115); -var defined = _dereq_(35); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - -},{"115":115,"35":35}],106:[function(_dereq_,module,exports){ -// helper for String#{startsWith, endsWith, includes} -var isRegExp = _dereq_(58); -var defined = _dereq_(35); - -module.exports = function (that, searchString, NAME) { - if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); - return String(defined(that)); -}; - -},{"35":35,"58":58}],107:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var fails = _dereq_(42); -var defined = _dereq_(35); -var quot = /"/g; -// B.2.3.2.1 CreateHTML(string, tag, attribute, value) -var createHTML = function (string, tag, attribute, value) { - var S = String(defined(string)); - var p1 = '<' + tag; - if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; - return p1 + '>' + S + ''; -}; -module.exports = function (NAME, exec) { - var O = {}; - O[NAME] = exec(createHTML); - $export($export.P + $export.F * fails(function () { - var test = ''[NAME]('"'); - return test !== test.toLowerCase() || test.split('"').length > 3; - }), 'String', O); -}; - -},{"35":35,"40":40,"42":42}],108:[function(_dereq_,module,exports){ -// https://github.com/tc39/proposal-string-pad-start-end -var toLength = _dereq_(117); -var repeat = _dereq_(109); -var defined = _dereq_(35); - -module.exports = function (that, maxLength, fillString, left) { - var S = String(defined(that)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); - var intMaxLength = toLength(maxLength); - if (intMaxLength <= stringLength || fillStr == '') return S; - var fillLen = intMaxLength - stringLength; - var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); - return left ? stringFiller + S : S + stringFiller; -}; - -},{"109":109,"117":117,"35":35}],109:[function(_dereq_,module,exports){ -'use strict'; -var toInteger = _dereq_(115); -var defined = _dereq_(35); - -module.exports = function repeat(count) { - var str = String(defined(this)); - var res = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); - for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; - return res; -}; - -},{"115":115,"35":35}],110:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var defined = _dereq_(35); -var fails = _dereq_(42); -var spaces = _dereq_(111); -var space = '[' + spaces + ']'; -var non = '\u200b\u0085'; -var ltrim = RegExp('^' + space + space + '*'); -var rtrim = RegExp(space + space + '*$'); - -var exporter = function (KEY, exec, ALIAS) { - var exp = {}; - var FORCE = fails(function () { - return !!spaces[KEY]() || non[KEY]() != non; - }); - var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; - if (ALIAS) exp[ALIAS] = fn; - $export($export.P + $export.F * FORCE, 'String', exp); -}; - -// 1 -> String#trimLeft -// 2 -> String#trimRight -// 3 -> String#trim -var trim = exporter.trim = function (string, TYPE) { - string = String(defined(string)); - if (TYPE & 1) string = string.replace(ltrim, ''); - if (TYPE & 2) string = string.replace(rtrim, ''); - return string; -}; - -module.exports = exporter; - -},{"111":111,"35":35,"40":40,"42":42}],111:[function(_dereq_,module,exports){ -module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - -},{}],112:[function(_dereq_,module,exports){ -var ctx = _dereq_(32); -var invoke = _dereq_(52); -var html = _dereq_(49); -var cel = _dereq_(37); -var global = _dereq_(46); -var process = global.process; -var setTask = global.setImmediate; -var clearTask = global.clearImmediate; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; -var run = function () { - var id = +this; - // eslint-disable-next-line no-prototype-builtins - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; -var listener = function (event) { - run.call(event.data); -}; -// Node.js 0.9+ & IE10+ has setImmediate, otherwise: -if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - // eslint-disable-next-line no-new-func - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - defer(counter); - return counter; - }; - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - // Node.js 0.8- - if (_dereq_(26)(process) == 'process') { - defer = function (id) { - process.nextTick(ctx(run, id, 1)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(ctx(run, id, 1)); - }; - // Browsers with MessageChannel, includes WebWorkers - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function (id) { - global.postMessage(id + '', '*'); - }; - global.addEventListener('message', listener, false); - // IE8- - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function (id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - // Rest old browsers - } else { - defer = function (id) { - setTimeout(ctx(run, id, 1), 0); - }; - } -} -module.exports = { - set: setTask, - clear: clearTask -}; - -},{"26":26,"32":32,"37":37,"46":46,"49":49,"52":52}],113:[function(_dereq_,module,exports){ -var toInteger = _dereq_(115); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - -},{"115":115}],114:[function(_dereq_,module,exports){ -// https://tc39.github.io/ecma262/#sec-toindex -var toInteger = _dereq_(115); -var toLength = _dereq_(117); -module.exports = function (it) { - if (it === undefined) return 0; - var number = toInteger(it); - var length = toLength(number); - if (number !== length) throw RangeError('Wrong length!'); - return length; -}; - -},{"115":115,"117":117}],115:[function(_dereq_,module,exports){ -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - -},{}],116:[function(_dereq_,module,exports){ -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = _dereq_(53); -var defined = _dereq_(35); -module.exports = function (it) { - return IObject(defined(it)); -}; - -},{"35":35,"53":53}],117:[function(_dereq_,module,exports){ -// 7.1.15 ToLength -var toInteger = _dereq_(115); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - -},{"115":115}],118:[function(_dereq_,module,exports){ -// 7.1.13 ToObject(argument) -var defined = _dereq_(35); -module.exports = function (it) { - return Object(defined(it)); -}; - -},{"35":35}],119:[function(_dereq_,module,exports){ -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = _dereq_(57); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - -},{"57":57}],120:[function(_dereq_,module,exports){ -'use strict'; -if (_dereq_(36)) { - var LIBRARY = _dereq_(65); - var global = _dereq_(46); - var fails = _dereq_(42); - var $export = _dereq_(40); - var $typed = _dereq_(122); - var $buffer = _dereq_(121); - var ctx = _dereq_(32); - var anInstance = _dereq_(15); - var propertyDesc = _dereq_(92); - var hide = _dereq_(48); - var redefineAll = _dereq_(93); - var toInteger = _dereq_(115); - var toLength = _dereq_(117); - var toIndex = _dereq_(114); - var toAbsoluteIndex = _dereq_(113); - var toPrimitive = _dereq_(119); - var has = _dereq_(47); - var classof = _dereq_(25); - var isObject = _dereq_(57); - var toObject = _dereq_(118); - var isArrayIter = _dereq_(54); - var create = _dereq_(74); - var getPrototypeOf = _dereq_(81); - var gOPN = _dereq_(79).f; - var getIterFn = _dereq_(129); - var uid = _dereq_(123); - var wks = _dereq_(128); - var createArrayMethod = _dereq_(20); - var createArrayIncludes = _dereq_(19); - var speciesConstructor = _dereq_(103); - var ArrayIterators = _dereq_(140); - var Iterators = _dereq_(64); - var $iterDetect = _dereq_(62); - var setSpecies = _dereq_(99); - var arrayFill = _dereq_(18); - var arrayCopyWithin = _dereq_(17); - var $DP = _dereq_(75); - var $GOPD = _dereq_(77); - var dP = $DP.f; - var gOPD = $GOPD.f; - var RangeError = global.RangeError; - var TypeError = global.TypeError; - var Uint8Array = global.Uint8Array; - var ARRAY_BUFFER = 'ArrayBuffer'; - var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; - var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; - var PROTOTYPE = 'prototype'; - var ArrayProto = Array[PROTOTYPE]; - var $ArrayBuffer = $buffer.ArrayBuffer; - var $DataView = $buffer.DataView; - var arrayForEach = createArrayMethod(0); - var arrayFilter = createArrayMethod(2); - var arraySome = createArrayMethod(3); - var arrayEvery = createArrayMethod(4); - var arrayFind = createArrayMethod(5); - var arrayFindIndex = createArrayMethod(6); - var arrayIncludes = createArrayIncludes(true); - var arrayIndexOf = createArrayIncludes(false); - var arrayValues = ArrayIterators.values; - var arrayKeys = ArrayIterators.keys; - var arrayEntries = ArrayIterators.entries; - var arrayLastIndexOf = ArrayProto.lastIndexOf; - var arrayReduce = ArrayProto.reduce; - var arrayReduceRight = ArrayProto.reduceRight; - var arrayJoin = ArrayProto.join; - var arraySort = ArrayProto.sort; - var arraySlice = ArrayProto.slice; - var arrayToString = ArrayProto.toString; - var arrayToLocaleString = ArrayProto.toLocaleString; - var ITERATOR = wks('iterator'); - var TAG = wks('toStringTag'); - var TYPED_CONSTRUCTOR = uid('typed_constructor'); - var DEF_CONSTRUCTOR = uid('def_constructor'); - var ALL_CONSTRUCTORS = $typed.CONSTR; - var TYPED_ARRAY = $typed.TYPED; - var VIEW = $typed.VIEW; - var WRONG_LENGTH = 'Wrong length!'; - - var $map = createArrayMethod(1, function (O, length) { - return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); - }); - - var LITTLE_ENDIAN = fails(function () { - // eslint-disable-next-line no-undef - return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; - }); - - var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { - new Uint8Array(1).set({}); - }); - - var toOffset = function (it, BYTES) { - var offset = toInteger(it); - if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); - return offset; - }; - - var validate = function (it) { - if (isObject(it) && TYPED_ARRAY in it) return it; - throw TypeError(it + ' is not a typed array!'); - }; - - var allocate = function (C, length) { - if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { - throw TypeError('It is not a typed array constructor!'); - } return new C(length); - }; - - var speciesFromList = function (O, list) { - return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); - }; - - var fromList = function (C, list) { - var index = 0; - var length = list.length; - var result = allocate(C, length); - while (length > index) result[index] = list[index++]; - return result; - }; - - var addGetter = function (it, key, internal) { - dP(it, key, { get: function () { return this._d[internal]; } }); - }; - - var $from = function from(source /* , mapfn, thisArg */) { - var O = toObject(source); - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iterFn = getIterFn(O); - var i, length, values, result, step, iterator; - if (iterFn != undefined && !isArrayIter(iterFn)) { - for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { - values.push(step.value); - } O = values; - } - if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); - for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { - result[i] = mapping ? mapfn(O[i], i) : O[i]; - } - return result; - }; - - var $of = function of(/* ...items */) { - var index = 0; - var length = arguments.length; - var result = allocate(this, length); - while (length > index) result[index] = arguments[index++]; - return result; - }; - - // iOS Safari 6.x fails here - var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); - - var $toLocaleString = function toLocaleString() { - return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); - }; - - var proto = { - copyWithin: function copyWithin(target, start /* , end */) { - return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); - }, - every: function every(callbackfn /* , thisArg */) { - return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }, - fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars - return arrayFill.apply(validate(this), arguments); - }, - filter: function filter(callbackfn /* , thisArg */) { - return speciesFromList(this, arrayFilter(validate(this), callbackfn, - arguments.length > 1 ? arguments[1] : undefined)); - }, - find: function find(predicate /* , thisArg */) { - return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); - }, - findIndex: function findIndex(predicate /* , thisArg */) { - return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); - }, - forEach: function forEach(callbackfn /* , thisArg */) { - arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }, - indexOf: function indexOf(searchElement /* , fromIndex */) { - return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); - }, - includes: function includes(searchElement /* , fromIndex */) { - return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); - }, - join: function join(separator) { // eslint-disable-line no-unused-vars - return arrayJoin.apply(validate(this), arguments); - }, - lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars - return arrayLastIndexOf.apply(validate(this), arguments); - }, - map: function map(mapfn /* , thisArg */) { - return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); - }, - reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars - return arrayReduce.apply(validate(this), arguments); - }, - reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars - return arrayReduceRight.apply(validate(this), arguments); - }, - reverse: function reverse() { - var that = this; - var length = validate(that).length; - var middle = Math.floor(length / 2); - var index = 0; - var value; - while (index < middle) { - value = that[index]; - that[index++] = that[--length]; - that[length] = value; - } return that; - }, - some: function some(callbackfn /* , thisArg */) { - return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }, - sort: function sort(comparefn) { - return arraySort.call(validate(this), comparefn); - }, - subarray: function subarray(begin, end) { - var O = validate(this); - var length = O.length; - var $begin = toAbsoluteIndex(begin, length); - return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( - O.buffer, - O.byteOffset + $begin * O.BYTES_PER_ELEMENT, - toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) - ); - } - }; - - var $slice = function slice(start, end) { - return speciesFromList(this, arraySlice.call(validate(this), start, end)); - }; - - var $set = function set(arrayLike /* , offset */) { - validate(this); - var offset = toOffset(arguments[1], 1); - var length = this.length; - var src = toObject(arrayLike); - var len = toLength(src.length); - var index = 0; - if (len + offset > length) throw RangeError(WRONG_LENGTH); - while (index < len) this[offset + index] = src[index++]; - }; - - var $iterators = { - entries: function entries() { - return arrayEntries.call(validate(this)); - }, - keys: function keys() { - return arrayKeys.call(validate(this)); - }, - values: function values() { - return arrayValues.call(validate(this)); - } - }; - - var isTAIndex = function (target, key) { - return isObject(target) - && target[TYPED_ARRAY] - && typeof key != 'symbol' - && key in target - && String(+key) == String(key); - }; - var $getDesc = function getOwnPropertyDescriptor(target, key) { - return isTAIndex(target, key = toPrimitive(key, true)) - ? propertyDesc(2, target[key]) - : gOPD(target, key); - }; - var $setDesc = function defineProperty(target, key, desc) { - if (isTAIndex(target, key = toPrimitive(key, true)) - && isObject(desc) - && has(desc, 'value') - && !has(desc, 'get') - && !has(desc, 'set') - // TODO: add validation descriptor w/o calling accessors - && !desc.configurable - && (!has(desc, 'writable') || desc.writable) - && (!has(desc, 'enumerable') || desc.enumerable) - ) { - target[key] = desc.value; - return target; - } return dP(target, key, desc); - }; - - if (!ALL_CONSTRUCTORS) { - $GOPD.f = $getDesc; - $DP.f = $setDesc; - } - - $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { - getOwnPropertyDescriptor: $getDesc, - defineProperty: $setDesc - }); - - if (fails(function () { arrayToString.call({}); })) { - arrayToString = arrayToLocaleString = function toString() { - return arrayJoin.call(this); - }; - } - - var $TypedArrayPrototype$ = redefineAll({}, proto); - redefineAll($TypedArrayPrototype$, $iterators); - hide($TypedArrayPrototype$, ITERATOR, $iterators.values); - redefineAll($TypedArrayPrototype$, { - slice: $slice, - set: $set, - constructor: function () { /* noop */ }, - toString: arrayToString, - toLocaleString: $toLocaleString - }); - addGetter($TypedArrayPrototype$, 'buffer', 'b'); - addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); - addGetter($TypedArrayPrototype$, 'byteLength', 'l'); - addGetter($TypedArrayPrototype$, 'length', 'e'); - dP($TypedArrayPrototype$, TAG, { - get: function () { return this[TYPED_ARRAY]; } - }); - - // eslint-disable-next-line max-statements - module.exports = function (KEY, BYTES, wrapper, CLAMPED) { - CLAMPED = !!CLAMPED; - var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; - var GETTER = 'get' + KEY; - var SETTER = 'set' + KEY; - var TypedArray = global[NAME]; - var Base = TypedArray || {}; - var TAC = TypedArray && getPrototypeOf(TypedArray); - var FORCED = !TypedArray || !$typed.ABV; - var O = {}; - var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; - var getter = function (that, index) { - var data = that._d; - return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); - }; - var setter = function (that, index, value) { - var data = that._d; - if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; - data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); - }; - var addElement = function (that, index) { - dP(that, index, { - get: function () { - return getter(this, index); - }, - set: function (value) { - return setter(this, index, value); - }, - enumerable: true - }); - }; - if (FORCED) { - TypedArray = wrapper(function (that, data, $offset, $length) { - anInstance(that, TypedArray, NAME, '_d'); - var index = 0; - var offset = 0; - var buffer, byteLength, length, klass; - if (!isObject(data)) { - length = toIndex(data); - byteLength = length * BYTES; - buffer = new $ArrayBuffer(byteLength); - } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { - buffer = data; - offset = toOffset($offset, BYTES); - var $len = data.byteLength; - if ($length === undefined) { - if ($len % BYTES) throw RangeError(WRONG_LENGTH); - byteLength = $len - offset; - if (byteLength < 0) throw RangeError(WRONG_LENGTH); - } else { - byteLength = toLength($length) * BYTES; - if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); - } - length = byteLength / BYTES; - } else if (TYPED_ARRAY in data) { - return fromList(TypedArray, data); - } else { - return $from.call(TypedArray, data); - } - hide(that, '_d', { - b: buffer, - o: offset, - l: byteLength, - e: length, - v: new $DataView(buffer) - }); - while (index < length) addElement(that, index++); - }); - TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); - hide(TypedArrayPrototype, 'constructor', TypedArray); - } else if (!fails(function () { - TypedArray(1); - }) || !fails(function () { - new TypedArray(-1); // eslint-disable-line no-new - }) || !$iterDetect(function (iter) { - new TypedArray(); // eslint-disable-line no-new - new TypedArray(null); // eslint-disable-line no-new - new TypedArray(1.5); // eslint-disable-line no-new - new TypedArray(iter); // eslint-disable-line no-new - }, true)) { - TypedArray = wrapper(function (that, data, $offset, $length) { - anInstance(that, TypedArray, NAME); - var klass; - // `ws` module bug, temporarily remove validation length for Uint8Array - // https://github.com/websockets/ws/pull/645 - if (!isObject(data)) return new Base(toIndex(data)); - if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { - return $length !== undefined - ? new Base(data, toOffset($offset, BYTES), $length) - : $offset !== undefined - ? new Base(data, toOffset($offset, BYTES)) - : new Base(data); - } - if (TYPED_ARRAY in data) return fromList(TypedArray, data); - return $from.call(TypedArray, data); - }); - arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { - if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); - }); - TypedArray[PROTOTYPE] = TypedArrayPrototype; - if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; - } - var $nativeIterator = TypedArrayPrototype[ITERATOR]; - var CORRECT_ITER_NAME = !!$nativeIterator - && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); - var $iterator = $iterators.values; - hide(TypedArray, TYPED_CONSTRUCTOR, true); - hide(TypedArrayPrototype, TYPED_ARRAY, NAME); - hide(TypedArrayPrototype, VIEW, true); - hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); - - if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { - dP(TypedArrayPrototype, TAG, { - get: function () { return NAME; } - }); - } - - O[NAME] = TypedArray; - - $export($export.G + $export.W + $export.F * (TypedArray != Base), O); - - $export($export.S, NAME, { - BYTES_PER_ELEMENT: BYTES - }); - - $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { - from: $from, - of: $of - }); - - if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); - - $export($export.P, NAME, proto); - - setSpecies(NAME); - - $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); - - $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); - - if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; - - $export($export.P + $export.F * fails(function () { - new TypedArray(1).slice(); - }), NAME, { slice: $slice }); - - $export($export.P + $export.F * (fails(function () { - return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); - }) || !fails(function () { - TypedArrayPrototype.toLocaleString.call([1, 2]); - })), NAME, { toLocaleString: $toLocaleString }); - - Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; - if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); - }; -} else module.exports = function () { /* empty */ }; - -},{"103":103,"113":113,"114":114,"115":115,"117":117,"118":118,"119":119,"121":121,"122":122,"123":123,"128":128,"129":129,"140":140,"15":15,"17":17,"18":18,"19":19,"20":20,"25":25,"32":32,"36":36,"40":40,"42":42,"46":46,"47":47,"48":48,"54":54,"57":57,"62":62,"64":64,"65":65,"74":74,"75":75,"77":77,"79":79,"81":81,"92":92,"93":93,"99":99}],121:[function(_dereq_,module,exports){ -'use strict'; -var global = _dereq_(46); -var DESCRIPTORS = _dereq_(36); -var LIBRARY = _dereq_(65); -var $typed = _dereq_(122); -var hide = _dereq_(48); -var redefineAll = _dereq_(93); -var fails = _dereq_(42); -var anInstance = _dereq_(15); -var toInteger = _dereq_(115); -var toLength = _dereq_(117); -var toIndex = _dereq_(114); -var gOPN = _dereq_(79).f; -var dP = _dereq_(75).f; -var arrayFill = _dereq_(18); -var setToStringTag = _dereq_(100); -var ARRAY_BUFFER = 'ArrayBuffer'; -var DATA_VIEW = 'DataView'; -var PROTOTYPE = 'prototype'; -var WRONG_LENGTH = 'Wrong length!'; -var WRONG_INDEX = 'Wrong index!'; -var $ArrayBuffer = global[ARRAY_BUFFER]; -var $DataView = global[DATA_VIEW]; -var Math = global.Math; -var RangeError = global.RangeError; -// eslint-disable-next-line no-shadow-restricted-names -var Infinity = global.Infinity; -var BaseBuffer = $ArrayBuffer; -var abs = Math.abs; -var pow = Math.pow; -var floor = Math.floor; -var log = Math.log; -var LN2 = Math.LN2; -var BUFFER = 'buffer'; -var BYTE_LENGTH = 'byteLength'; -var BYTE_OFFSET = 'byteOffset'; -var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; -var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; -var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; - -// IEEE754 conversions based on https://github.com/feross/ieee754 -function packIEEE754(value, mLen, nBytes) { - var buffer = new Array(nBytes); - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; - var i = 0; - var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; - var e, m, c; - value = abs(value); - // eslint-disable-next-line no-self-compare - if (value != value || value === Infinity) { - // eslint-disable-next-line no-self-compare - m = value != value ? 1 : 0; - e = eMax; - } else { - e = floor(log(value) / LN2); - if (value * (c = pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * pow(2, mLen); - e = e + eBias; - } else { - m = value * pow(2, eBias - 1) * pow(2, mLen); - e = 0; - } - } - for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); - e = e << mLen | m; - eLen += mLen; - for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8); - buffer[--i] |= s * 128; - return buffer; -} -function unpackIEEE754(buffer, mLen, nBytes) { - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var nBits = eLen - 7; - var i = nBytes - 1; - var s = buffer[i--]; - var e = s & 127; - var m; - s >>= 7; - for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); - m = e & (1 << -nBits) - 1; - e >>= -nBits; - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : s ? -Infinity : Infinity; - } else { - m = m + pow(2, mLen); - e = e - eBias; - } return (s ? -1 : 1) * m * pow(2, e - mLen); -} - -function unpackI32(bytes) { - return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; -} -function packI8(it) { - return [it & 0xff]; -} -function packI16(it) { - return [it & 0xff, it >> 8 & 0xff]; -} -function packI32(it) { - return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; -} -function packF64(it) { - return packIEEE754(it, 52, 8); -} -function packF32(it) { - return packIEEE754(it, 23, 4); -} - -function addGetter(C, key, internal) { - dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); -} - -function get(view, bytes, index, isLittleEndian) { - var numIndex = +index; - var intIndex = toIndex(numIndex); - if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); - var store = view[$BUFFER]._b; - var start = intIndex + view[$OFFSET]; - var pack = store.slice(start, start + bytes); - return isLittleEndian ? pack : pack.reverse(); -} -function set(view, bytes, index, conversion, value, isLittleEndian) { - var numIndex = +index; - var intIndex = toIndex(numIndex); - if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); - var store = view[$BUFFER]._b; - var start = intIndex + view[$OFFSET]; - var pack = conversion(+value); - for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; -} - -if (!$typed.ABV) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer, ARRAY_BUFFER); - var byteLength = toIndex(length); - this._b = arrayFill.call(new Array(byteLength), 0); - this[$LENGTH] = byteLength; - }; - - $DataView = function DataView(buffer, byteOffset, byteLength) { - anInstance(this, $DataView, DATA_VIEW); - anInstance(buffer, $ArrayBuffer, DATA_VIEW); - var bufferLength = buffer[$LENGTH]; - var offset = toInteger(byteOffset); - if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); - byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); - if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); - this[$BUFFER] = buffer; - this[$OFFSET] = offset; - this[$LENGTH] = byteLength; - }; - - if (DESCRIPTORS) { - addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); - addGetter($DataView, BUFFER, '_b'); - addGetter($DataView, BYTE_LENGTH, '_l'); - addGetter($DataView, BYTE_OFFSET, '_o'); - } - - redefineAll($DataView[PROTOTYPE], { - getInt8: function getInt8(byteOffset) { - return get(this, 1, byteOffset)[0] << 24 >> 24; - }, - getUint8: function getUint8(byteOffset) { - return get(this, 1, byteOffset)[0]; - }, - getInt16: function getInt16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments[1]); - return (bytes[1] << 8 | bytes[0]) << 16 >> 16; - }, - getUint16: function getUint16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments[1]); - return bytes[1] << 8 | bytes[0]; - }, - getInt32: function getInt32(byteOffset /* , littleEndian */) { - return unpackI32(get(this, 4, byteOffset, arguments[1])); - }, - getUint32: function getUint32(byteOffset /* , littleEndian */) { - return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; - }, - getFloat32: function getFloat32(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); - }, - getFloat64: function getFloat64(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); - }, - setInt8: function setInt8(byteOffset, value) { - set(this, 1, byteOffset, packI8, value); - }, - setUint8: function setUint8(byteOffset, value) { - set(this, 1, byteOffset, packI8, value); - }, - setInt16: function setInt16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packI16, value, arguments[2]); - }, - setUint16: function setUint16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packI16, value, arguments[2]); - }, - setInt32: function setInt32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packI32, value, arguments[2]); - }, - setUint32: function setUint32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packI32, value, arguments[2]); - }, - setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packF32, value, arguments[2]); - }, - setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { - set(this, 8, byteOffset, packF64, value, arguments[2]); - } - }); -} else { - if (!fails(function () { - $ArrayBuffer(1); - }) || !fails(function () { - new $ArrayBuffer(-1); // eslint-disable-line no-new - }) || fails(function () { - new $ArrayBuffer(); // eslint-disable-line no-new - new $ArrayBuffer(1.5); // eslint-disable-line no-new - new $ArrayBuffer(NaN); // eslint-disable-line no-new - return $ArrayBuffer.name != ARRAY_BUFFER; - })) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer); - return new BaseBuffer(toIndex(length)); - }; - var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; - for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { - if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); - } - if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; - } - // iOS Safari 7.x bug - var view = new $DataView(new $ArrayBuffer(2)); - var $setInt8 = $DataView[PROTOTYPE].setInt8; - view.setInt8(0, 2147483648); - view.setInt8(1, 2147483649); - if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { - setInt8: function setInt8(byteOffset, value) { - $setInt8.call(this, byteOffset, value << 24 >> 24); - }, - setUint8: function setUint8(byteOffset, value) { - $setInt8.call(this, byteOffset, value << 24 >> 24); - } - }, true); -} -setToStringTag($ArrayBuffer, ARRAY_BUFFER); -setToStringTag($DataView, DATA_VIEW); -hide($DataView[PROTOTYPE], $typed.VIEW, true); -exports[ARRAY_BUFFER] = $ArrayBuffer; -exports[DATA_VIEW] = $DataView; - -},{"100":100,"114":114,"115":115,"117":117,"122":122,"15":15,"18":18,"36":36,"42":42,"46":46,"48":48,"65":65,"75":75,"79":79,"93":93}],122:[function(_dereq_,module,exports){ -var global = _dereq_(46); -var hide = _dereq_(48); -var uid = _dereq_(123); -var TYPED = uid('typed_array'); -var VIEW = uid('view'); -var ABV = !!(global.ArrayBuffer && global.DataView); -var CONSTR = ABV; -var i = 0; -var l = 9; -var Typed; - -var TypedArrayConstructors = ( - 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' -).split(','); - -while (i < l) { - if (Typed = global[TypedArrayConstructors[i++]]) { - hide(Typed.prototype, TYPED, true); - hide(Typed.prototype, VIEW, true); - } else CONSTR = false; -} - -module.exports = { - ABV: ABV, - CONSTR: CONSTR, - TYPED: TYPED, - VIEW: VIEW -}; - -},{"123":123,"46":46,"48":48}],123:[function(_dereq_,module,exports){ -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - -},{}],124:[function(_dereq_,module,exports){ -var global = _dereq_(46); -var navigator = global.navigator; - -module.exports = navigator && navigator.userAgent || ''; - -},{"46":46}],125:[function(_dereq_,module,exports){ -var isObject = _dereq_(57); -module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; -}; - -},{"57":57}],126:[function(_dereq_,module,exports){ -var global = _dereq_(46); -var core = _dereq_(30); -var LIBRARY = _dereq_(65); -var wksExt = _dereq_(127); -var defineProperty = _dereq_(75).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - -},{"127":127,"30":30,"46":46,"65":65,"75":75}],127:[function(_dereq_,module,exports){ -exports.f = _dereq_(128); - -},{"128":128}],128:[function(_dereq_,module,exports){ -var store = _dereq_(102)('wks'); -var uid = _dereq_(123); -var Symbol = _dereq_(46).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - -},{"102":102,"123":123,"46":46}],129:[function(_dereq_,module,exports){ -var classof = _dereq_(25); -var ITERATOR = _dereq_(128)('iterator'); -var Iterators = _dereq_(64); -module.exports = _dereq_(30).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - -},{"128":128,"25":25,"30":30,"64":64}],130:[function(_dereq_,module,exports){ -// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) -var $export = _dereq_(40); - -$export($export.P, 'Array', { copyWithin: _dereq_(17) }); - -_dereq_(13)('copyWithin'); - -},{"13":13,"17":17,"40":40}],131:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $every = _dereq_(20)(4); - -$export($export.P + $export.F * !_dereq_(104)([].every, true), 'Array', { - // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) - every: function every(callbackfn /* , thisArg */) { - return $every(this, callbackfn, arguments[1]); - } -}); - -},{"104":104,"20":20,"40":40}],132:[function(_dereq_,module,exports){ -// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) -var $export = _dereq_(40); - -$export($export.P, 'Array', { fill: _dereq_(18) }); - -_dereq_(13)('fill'); - -},{"13":13,"18":18,"40":40}],133:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $filter = _dereq_(20)(2); - -$export($export.P + $export.F * !_dereq_(104)([].filter, true), 'Array', { - // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) - filter: function filter(callbackfn /* , thisArg */) { - return $filter(this, callbackfn, arguments[1]); - } -}); - -},{"104":104,"20":20,"40":40}],134:[function(_dereq_,module,exports){ -'use strict'; -// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) -var $export = _dereq_(40); -var $find = _dereq_(20)(6); -var KEY = 'findIndex'; -var forced = true; -// Shouldn't skip holes -if (KEY in []) Array(1)[KEY](function () { forced = false; }); -$export($export.P + $export.F * forced, 'Array', { - findIndex: function findIndex(callbackfn /* , that = undefined */) { - return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); -_dereq_(13)(KEY); - -},{"13":13,"20":20,"40":40}],135:[function(_dereq_,module,exports){ -'use strict'; -// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) -var $export = _dereq_(40); -var $find = _dereq_(20)(5); -var KEY = 'find'; -var forced = true; -// Shouldn't skip holes -if (KEY in []) Array(1)[KEY](function () { forced = false; }); -$export($export.P + $export.F * forced, 'Array', { - find: function find(callbackfn /* , that = undefined */) { - return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); -_dereq_(13)(KEY); - -},{"13":13,"20":20,"40":40}],136:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $forEach = _dereq_(20)(0); -var STRICT = _dereq_(104)([].forEach, true); - -$export($export.P + $export.F * !STRICT, 'Array', { - // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) - forEach: function forEach(callbackfn /* , thisArg */) { - return $forEach(this, callbackfn, arguments[1]); - } -}); - -},{"104":104,"20":20,"40":40}],137:[function(_dereq_,module,exports){ -'use strict'; -var ctx = _dereq_(32); -var $export = _dereq_(40); -var toObject = _dereq_(118); -var call = _dereq_(59); -var isArrayIter = _dereq_(54); -var toLength = _dereq_(117); -var createProperty = _dereq_(31); -var getIterFn = _dereq_(129); - -$export($export.S + $export.F * !_dereq_(62)(function (iter) { Array.from(iter); }), 'Array', { - // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) - from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - // if object isn't iterable or it's array with default iterator - use simple case - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - result.length = index; - return result; - } -}); - -},{"117":117,"118":118,"129":129,"31":31,"32":32,"40":40,"54":54,"59":59,"62":62}],138:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $indexOf = _dereq_(19)(false); -var $native = [].indexOf; -var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; - -$export($export.P + $export.F * (NEGATIVE_ZERO || !_dereq_(104)($native)), 'Array', { - // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) - indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { - return NEGATIVE_ZERO - // convert -0 to +0 - ? $native.apply(this, arguments) || 0 - : $indexOf(this, searchElement, arguments[1]); - } -}); - -},{"104":104,"19":19,"40":40}],139:[function(_dereq_,module,exports){ -// 22.1.2.2 / 15.4.3.2 Array.isArray(arg) -var $export = _dereq_(40); - -$export($export.S, 'Array', { isArray: _dereq_(55) }); - -},{"40":40,"55":55}],140:[function(_dereq_,module,exports){ -'use strict'; -var addToUnscopables = _dereq_(13); -var step = _dereq_(63); -var Iterators = _dereq_(64); -var toIObject = _dereq_(116); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = _dereq_(61)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -},{"116":116,"13":13,"61":61,"63":63,"64":64}],141:[function(_dereq_,module,exports){ -'use strict'; -// 22.1.3.13 Array.prototype.join(separator) -var $export = _dereq_(40); -var toIObject = _dereq_(116); -var arrayJoin = [].join; - -// fallback for not array-like strings -$export($export.P + $export.F * (_dereq_(53) != Object || !_dereq_(104)(arrayJoin)), 'Array', { - join: function join(separator) { - return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); - } -}); - -},{"104":104,"116":116,"40":40,"53":53}],142:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var toIObject = _dereq_(116); -var toInteger = _dereq_(115); -var toLength = _dereq_(117); -var $native = [].lastIndexOf; -var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; - -$export($export.P + $export.F * (NEGATIVE_ZERO || !_dereq_(104)($native)), 'Array', { - // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) - lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { - // convert -0 to +0 - if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; - var O = toIObject(this); - var length = toLength(O.length); - var index = length - 1; - if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); - if (index < 0) index = length + index; - for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; - return -1; - } -}); - -},{"104":104,"115":115,"116":116,"117":117,"40":40}],143:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $map = _dereq_(20)(1); - -$export($export.P + $export.F * !_dereq_(104)([].map, true), 'Array', { - // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments[1]); - } -}); - -},{"104":104,"20":20,"40":40}],144:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var createProperty = _dereq_(31); - -// WebKit Array.of isn't generic -$export($export.S + $export.F * _dereq_(42)(function () { - function F() { /* empty */ } - return !(Array.of.call(F) instanceof F); -}), 'Array', { - // 22.1.2.3 Array.of( ...items) - of: function of(/* ...args */) { - var index = 0; - var aLen = arguments.length; - var result = new (typeof this == 'function' ? this : Array)(aLen); - while (aLen > index) createProperty(result, index, arguments[index++]); - result.length = aLen; - return result; - } -}); - -},{"31":31,"40":40,"42":42}],145:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $reduce = _dereq_(21); - -$export($export.P + $export.F * !_dereq_(104)([].reduceRight, true), 'Array', { - // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) - reduceRight: function reduceRight(callbackfn /* , initialValue */) { - return $reduce(this, callbackfn, arguments.length, arguments[1], true); - } -}); - -},{"104":104,"21":21,"40":40}],146:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $reduce = _dereq_(21); - -$export($export.P + $export.F * !_dereq_(104)([].reduce, true), 'Array', { - // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) - reduce: function reduce(callbackfn /* , initialValue */) { - return $reduce(this, callbackfn, arguments.length, arguments[1], false); - } -}); - -},{"104":104,"21":21,"40":40}],147:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var html = _dereq_(49); -var cof = _dereq_(26); -var toAbsoluteIndex = _dereq_(113); -var toLength = _dereq_(117); -var arraySlice = [].slice; - -// fallback for not array-like ES3 strings and DOM objects -$export($export.P + $export.F * _dereq_(42)(function () { - if (html) arraySlice.call(html); -}), 'Array', { - slice: function slice(begin, end) { - var len = toLength(this.length); - var klass = cof(this); - end = end === undefined ? len : end; - if (klass == 'Array') return arraySlice.call(this, begin, end); - var start = toAbsoluteIndex(begin, len); - var upTo = toAbsoluteIndex(end, len); - var size = toLength(upTo - start); - var cloned = new Array(size); - var i = 0; - for (; i < size; i++) cloned[i] = klass == 'String' - ? this.charAt(start + i) - : this[start + i]; - return cloned; - } -}); - -},{"113":113,"117":117,"26":26,"40":40,"42":42,"49":49}],148:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $some = _dereq_(20)(3); - -$export($export.P + $export.F * !_dereq_(104)([].some, true), 'Array', { - // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) - some: function some(callbackfn /* , thisArg */) { - return $some(this, callbackfn, arguments[1]); - } -}); - -},{"104":104,"20":20,"40":40}],149:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var aFunction = _dereq_(11); -var toObject = _dereq_(118); -var fails = _dereq_(42); -var $sort = [].sort; -var test = [1, 2, 3]; - -$export($export.P + $export.F * (fails(function () { - // IE8- - test.sort(undefined); -}) || !fails(function () { - // V8 bug - test.sort(null); - // Old WebKit -}) || !_dereq_(104)($sort)), 'Array', { - // 22.1.3.25 Array.prototype.sort(comparefn) - sort: function sort(comparefn) { - return comparefn === undefined - ? $sort.call(toObject(this)) - : $sort.call(toObject(this), aFunction(comparefn)); - } -}); - -},{"104":104,"11":11,"118":118,"40":40,"42":42}],150:[function(_dereq_,module,exports){ -_dereq_(99)('Array'); - -},{"99":99}],151:[function(_dereq_,module,exports){ -// 20.3.3.1 / 15.9.4.4 Date.now() -var $export = _dereq_(40); - -$export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); - -},{"40":40}],152:[function(_dereq_,module,exports){ -// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() -var $export = _dereq_(40); -var toISOString = _dereq_(33); - -// PhantomJS / old WebKit has a broken implementations -$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { - toISOString: toISOString -}); - -},{"33":33,"40":40}],153:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var toObject = _dereq_(118); -var toPrimitive = _dereq_(119); - -$export($export.P + $export.F * _dereq_(42)(function () { - return new Date(NaN).toJSON() !== null - || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; -}), 'Date', { - // eslint-disable-next-line no-unused-vars - toJSON: function toJSON(key) { - var O = toObject(this); - var pv = toPrimitive(O); - return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); - } -}); - -},{"118":118,"119":119,"40":40,"42":42}],154:[function(_dereq_,module,exports){ -var TO_PRIMITIVE = _dereq_(128)('toPrimitive'); -var proto = Date.prototype; - -if (!(TO_PRIMITIVE in proto)) _dereq_(48)(proto, TO_PRIMITIVE, _dereq_(34)); - -},{"128":128,"34":34,"48":48}],155:[function(_dereq_,module,exports){ -var DateProto = Date.prototype; -var INVALID_DATE = 'Invalid Date'; -var TO_STRING = 'toString'; -var $toString = DateProto[TO_STRING]; -var getTime = DateProto.getTime; -if (new Date(NaN) + '' != INVALID_DATE) { - _dereq_(94)(DateProto, TO_STRING, function toString() { - var value = getTime.call(this); - // eslint-disable-next-line no-self-compare - return value === value ? $toString.call(this) : INVALID_DATE; - }); -} - -},{"94":94}],156:[function(_dereq_,module,exports){ -// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) -var $export = _dereq_(40); - -$export($export.P, 'Function', { bind: _dereq_(24) }); - -},{"24":24,"40":40}],157:[function(_dereq_,module,exports){ -'use strict'; -var isObject = _dereq_(57); -var getPrototypeOf = _dereq_(81); -var HAS_INSTANCE = _dereq_(128)('hasInstance'); -var FunctionProto = Function.prototype; -// 19.2.3.6 Function.prototype[@@hasInstance](V) -if (!(HAS_INSTANCE in FunctionProto)) _dereq_(75).f(FunctionProto, HAS_INSTANCE, { value: function (O) { - if (typeof this != 'function' || !isObject(O)) return false; - if (!isObject(this.prototype)) return O instanceof this; - // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: - while (O = getPrototypeOf(O)) if (this.prototype === O) return true; - return false; -} }); - -},{"128":128,"57":57,"75":75,"81":81}],158:[function(_dereq_,module,exports){ -var dP = _dereq_(75).f; -var FProto = Function.prototype; -var nameRE = /^\s*function ([^ (]*)/; -var NAME = 'name'; - -// 19.2.4.2 name -NAME in FProto || _dereq_(36) && dP(FProto, NAME, { - configurable: true, - get: function () { - try { - return ('' + this).match(nameRE)[1]; - } catch (e) { - return ''; - } - } -}); - -},{"36":36,"75":75}],159:[function(_dereq_,module,exports){ -'use strict'; -var strong = _dereq_(27); -var validate = _dereq_(125); -var MAP = 'Map'; - -// 23.1 Map Objects -module.exports = _dereq_(29)(MAP, function (get) { - return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key) { - var entry = strong.getEntry(validate(this, MAP), key); - return entry && entry.v; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value) { - return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); - } -}, strong, true); - -},{"125":125,"27":27,"29":29}],160:[function(_dereq_,module,exports){ -// 20.2.2.3 Math.acosh(x) -var $export = _dereq_(40); -var log1p = _dereq_(68); -var sqrt = Math.sqrt; -var $acosh = Math.acosh; - -$export($export.S + $export.F * !($acosh - // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 - && Math.floor($acosh(Number.MAX_VALUE)) == 710 - // Tor Browser bug: Math.acosh(Infinity) -> NaN - && $acosh(Infinity) == Infinity -), 'Math', { - acosh: function acosh(x) { - return (x = +x) < 1 ? NaN : x > 94906265.62425156 - ? Math.log(x) + Math.LN2 - : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); - } -}); - -},{"40":40,"68":68}],161:[function(_dereq_,module,exports){ -// 20.2.2.5 Math.asinh(x) -var $export = _dereq_(40); -var $asinh = Math.asinh; - -function asinh(x) { - return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); -} - -// Tor Browser bug: Math.asinh(0) -> -0 -$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); - -},{"40":40}],162:[function(_dereq_,module,exports){ -// 20.2.2.7 Math.atanh(x) -var $export = _dereq_(40); -var $atanh = Math.atanh; - -// Tor Browser bug: Math.atanh(-0) -> 0 -$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { - atanh: function atanh(x) { - return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; - } -}); - -},{"40":40}],163:[function(_dereq_,module,exports){ -// 20.2.2.9 Math.cbrt(x) -var $export = _dereq_(40); -var sign = _dereq_(69); - -$export($export.S, 'Math', { - cbrt: function cbrt(x) { - return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); - } -}); - -},{"40":40,"69":69}],164:[function(_dereq_,module,exports){ -// 20.2.2.11 Math.clz32(x) -var $export = _dereq_(40); - -$export($export.S, 'Math', { - clz32: function clz32(x) { - return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; - } -}); - -},{"40":40}],165:[function(_dereq_,module,exports){ -// 20.2.2.12 Math.cosh(x) -var $export = _dereq_(40); -var exp = Math.exp; - -$export($export.S, 'Math', { - cosh: function cosh(x) { - return (exp(x = +x) + exp(-x)) / 2; - } -}); - -},{"40":40}],166:[function(_dereq_,module,exports){ -// 20.2.2.14 Math.expm1(x) -var $export = _dereq_(40); -var $expm1 = _dereq_(66); - -$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); - -},{"40":40,"66":66}],167:[function(_dereq_,module,exports){ -// 20.2.2.16 Math.fround(x) -var $export = _dereq_(40); - -$export($export.S, 'Math', { fround: _dereq_(67) }); - -},{"40":40,"67":67}],168:[function(_dereq_,module,exports){ -// 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) -var $export = _dereq_(40); -var abs = Math.abs; - -$export($export.S, 'Math', { - hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars - var sum = 0; - var i = 0; - var aLen = arguments.length; - var larg = 0; - var arg, div; - while (i < aLen) { - arg = abs(arguments[i++]); - if (larg < arg) { - div = larg / arg; - sum = sum * div * div + 1; - larg = arg; - } else if (arg > 0) { - div = arg / larg; - sum += div * div; - } else sum += arg; - } - return larg === Infinity ? Infinity : larg * Math.sqrt(sum); - } -}); - -},{"40":40}],169:[function(_dereq_,module,exports){ -// 20.2.2.18 Math.imul(x, y) -var $export = _dereq_(40); -var $imul = Math.imul; - -// some WebKit versions fails with big numbers, some has wrong arity -$export($export.S + $export.F * _dereq_(42)(function () { - return $imul(0xffffffff, 5) != -5 || $imul.length != 2; -}), 'Math', { - imul: function imul(x, y) { - var UINT16 = 0xffff; - var xn = +x; - var yn = +y; - var xl = UINT16 & xn; - var yl = UINT16 & yn; - return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); - } -}); - -},{"40":40,"42":42}],170:[function(_dereq_,module,exports){ -// 20.2.2.21 Math.log10(x) -var $export = _dereq_(40); - -$export($export.S, 'Math', { - log10: function log10(x) { - return Math.log(x) * Math.LOG10E; - } -}); - -},{"40":40}],171:[function(_dereq_,module,exports){ -// 20.2.2.20 Math.log1p(x) -var $export = _dereq_(40); - -$export($export.S, 'Math', { log1p: _dereq_(68) }); - -},{"40":40,"68":68}],172:[function(_dereq_,module,exports){ -// 20.2.2.22 Math.log2(x) -var $export = _dereq_(40); - -$export($export.S, 'Math', { - log2: function log2(x) { - return Math.log(x) / Math.LN2; - } -}); - -},{"40":40}],173:[function(_dereq_,module,exports){ -// 20.2.2.28 Math.sign(x) -var $export = _dereq_(40); - -$export($export.S, 'Math', { sign: _dereq_(69) }); - -},{"40":40,"69":69}],174:[function(_dereq_,module,exports){ -// 20.2.2.30 Math.sinh(x) -var $export = _dereq_(40); -var expm1 = _dereq_(66); -var exp = Math.exp; - -// V8 near Chromium 38 has a problem with very small numbers -$export($export.S + $export.F * _dereq_(42)(function () { - return !Math.sinh(-2e-17) != -2e-17; -}), 'Math', { - sinh: function sinh(x) { - return Math.abs(x = +x) < 1 - ? (expm1(x) - expm1(-x)) / 2 - : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); - } -}); - -},{"40":40,"42":42,"66":66}],175:[function(_dereq_,module,exports){ -// 20.2.2.33 Math.tanh(x) -var $export = _dereq_(40); -var expm1 = _dereq_(66); -var exp = Math.exp; - -$export($export.S, 'Math', { - tanh: function tanh(x) { - var a = expm1(x = +x); - var b = expm1(-x); - return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); - } -}); - -},{"40":40,"66":66}],176:[function(_dereq_,module,exports){ -// 20.2.2.34 Math.trunc(x) -var $export = _dereq_(40); - -$export($export.S, 'Math', { - trunc: function trunc(it) { - return (it > 0 ? Math.floor : Math.ceil)(it); - } -}); - -},{"40":40}],177:[function(_dereq_,module,exports){ -'use strict'; -var global = _dereq_(46); -var has = _dereq_(47); -var cof = _dereq_(26); -var inheritIfRequired = _dereq_(51); -var toPrimitive = _dereq_(119); -var fails = _dereq_(42); -var gOPN = _dereq_(79).f; -var gOPD = _dereq_(77).f; -var dP = _dereq_(75).f; -var $trim = _dereq_(110).trim; -var NUMBER = 'Number'; -var $Number = global[NUMBER]; -var Base = $Number; -var proto = $Number.prototype; -// Opera ~12 has broken Object#toString -var BROKEN_COF = cof(_dereq_(74)(proto)) == NUMBER; -var TRIM = 'trim' in String.prototype; - -// 7.1.3 ToNumber(argument) -var toNumber = function (argument) { - var it = toPrimitive(argument, false); - if (typeof it == 'string' && it.length > 2) { - it = TRIM ? it.trim() : $trim(it, 3); - var first = it.charCodeAt(0); - var third, radix, maxCode; - if (first === 43 || first === 45) { - third = it.charCodeAt(2); - if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix - } else if (first === 48) { - switch (it.charCodeAt(1)) { - case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i - case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i - default: return +it; - } - for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { - code = digits.charCodeAt(i); - // parseInt parses a string to a first unavailable symbol - // but ToNumber should return NaN if a string contains unavailable symbols - if (code < 48 || code > maxCode) return NaN; - } return parseInt(digits, radix); - } - } return +it; -}; - -if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { - $Number = function Number(value) { - var it = arguments.length < 1 ? 0 : value; - var that = this; - return that instanceof $Number - // check on 1..constructor(foo) case - && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) - ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); - }; - for (var keys = _dereq_(36) ? gOPN(Base) : ( - // ES3: - 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + - // ES6 (in case, if modules with ES6 Number statics required before): - 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + - 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' - ).split(','), j = 0, key; keys.length > j; j++) { - if (has(Base, key = keys[j]) && !has($Number, key)) { - dP($Number, key, gOPD(Base, key)); - } - } - $Number.prototype = proto; - proto.constructor = $Number; - _dereq_(94)(global, NUMBER, $Number); -} - -},{"110":110,"119":119,"26":26,"36":36,"42":42,"46":46,"47":47,"51":51,"74":74,"75":75,"77":77,"79":79,"94":94}],178:[function(_dereq_,module,exports){ -// 20.1.2.1 Number.EPSILON -var $export = _dereq_(40); - -$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); - -},{"40":40}],179:[function(_dereq_,module,exports){ -// 20.1.2.2 Number.isFinite(number) -var $export = _dereq_(40); -var _isFinite = _dereq_(46).isFinite; - -$export($export.S, 'Number', { - isFinite: function isFinite(it) { - return typeof it == 'number' && _isFinite(it); - } -}); - -},{"40":40,"46":46}],180:[function(_dereq_,module,exports){ -// 20.1.2.3 Number.isInteger(number) -var $export = _dereq_(40); - -$export($export.S, 'Number', { isInteger: _dereq_(56) }); - -},{"40":40,"56":56}],181:[function(_dereq_,module,exports){ -// 20.1.2.4 Number.isNaN(number) -var $export = _dereq_(40); - -$export($export.S, 'Number', { - isNaN: function isNaN(number) { - // eslint-disable-next-line no-self-compare - return number != number; - } -}); - -},{"40":40}],182:[function(_dereq_,module,exports){ -// 20.1.2.5 Number.isSafeInteger(number) -var $export = _dereq_(40); -var isInteger = _dereq_(56); -var abs = Math.abs; - -$export($export.S, 'Number', { - isSafeInteger: function isSafeInteger(number) { - return isInteger(number) && abs(number) <= 0x1fffffffffffff; - } -}); - -},{"40":40,"56":56}],183:[function(_dereq_,module,exports){ -// 20.1.2.6 Number.MAX_SAFE_INTEGER -var $export = _dereq_(40); - -$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); - -},{"40":40}],184:[function(_dereq_,module,exports){ -// 20.1.2.10 Number.MIN_SAFE_INTEGER -var $export = _dereq_(40); - -$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); - -},{"40":40}],185:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var $parseFloat = _dereq_(88); -// 20.1.2.12 Number.parseFloat(string) -$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); - -},{"40":40,"88":88}],186:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var $parseInt = _dereq_(89); -// 20.1.2.13 Number.parseInt(string, radix) -$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); - -},{"40":40,"89":89}],187:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var toInteger = _dereq_(115); -var aNumberValue = _dereq_(12); -var repeat = _dereq_(109); -var $toFixed = 1.0.toFixed; -var floor = Math.floor; -var data = [0, 0, 0, 0, 0, 0]; -var ERROR = 'Number.toFixed: incorrect invocation!'; -var ZERO = '0'; - -var multiply = function (n, c) { - var i = -1; - var c2 = c; - while (++i < 6) { - c2 += n * data[i]; - data[i] = c2 % 1e7; - c2 = floor(c2 / 1e7); - } -}; -var divide = function (n) { - var i = 6; - var c = 0; - while (--i >= 0) { - c += data[i]; - data[i] = floor(c / n); - c = (c % n) * 1e7; - } -}; -var numToString = function () { - var i = 6; - var s = ''; - while (--i >= 0) { - if (s !== '' || i === 0 || data[i] !== 0) { - var t = String(data[i]); - s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; - } - } return s; -}; -var pow = function (x, n, acc) { - return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); -}; -var log = function (x) { - var n = 0; - var x2 = x; - while (x2 >= 4096) { - n += 12; - x2 /= 4096; - } - while (x2 >= 2) { - n += 1; - x2 /= 2; - } return n; -}; - -$export($export.P + $export.F * (!!$toFixed && ( - 0.00008.toFixed(3) !== '0.000' || - 0.9.toFixed(0) !== '1' || - 1.255.toFixed(2) !== '1.25' || - 1000000000000000128.0.toFixed(0) !== '1000000000000000128' -) || !_dereq_(42)(function () { - // V8 ~ Android 4.3- - $toFixed.call({}); -})), 'Number', { - toFixed: function toFixed(fractionDigits) { - var x = aNumberValue(this, ERROR); - var f = toInteger(fractionDigits); - var s = ''; - var m = ZERO; - var e, z, j, k; - if (f < 0 || f > 20) throw RangeError(ERROR); - // eslint-disable-next-line no-self-compare - if (x != x) return 'NaN'; - if (x <= -1e21 || x >= 1e21) return String(x); - if (x < 0) { - s = '-'; - x = -x; - } - if (x > 1e-21) { - e = log(x * pow(2, 69, 1)) - 69; - z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); - z *= 0x10000000000000; - e = 52 - e; - if (e > 0) { - multiply(0, z); - j = f; - while (j >= 7) { - multiply(1e7, 0); - j -= 7; - } - multiply(pow(10, j, 1), 0); - j = e - 1; - while (j >= 23) { - divide(1 << 23); - j -= 23; - } - divide(1 << j); - multiply(1, 1); - divide(2); - m = numToString(); - } else { - multiply(0, z); - multiply(1 << -e, 0); - m = numToString() + repeat.call(ZERO, f); - } - } - if (f > 0) { - k = m.length; - m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); - } else { - m = s + m; - } return m; - } -}); - -},{"109":109,"115":115,"12":12,"40":40,"42":42}],188:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $fails = _dereq_(42); -var aNumberValue = _dereq_(12); -var $toPrecision = 1.0.toPrecision; - -$export($export.P + $export.F * ($fails(function () { - // IE7- - return $toPrecision.call(1, undefined) !== '1'; -}) || !$fails(function () { - // V8 ~ Android 4.3- - $toPrecision.call({}); -})), 'Number', { - toPrecision: function toPrecision(precision) { - var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); - return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); - } -}); - -},{"12":12,"40":40,"42":42}],189:[function(_dereq_,module,exports){ -// 19.1.3.1 Object.assign(target, source) -var $export = _dereq_(40); - -$export($export.S + $export.F, 'Object', { assign: _dereq_(73) }); - -},{"40":40,"73":73}],190:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -$export($export.S, 'Object', { create: _dereq_(74) }); - -},{"40":40,"74":74}],191:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) -$export($export.S + $export.F * !_dereq_(36), 'Object', { defineProperties: _dereq_(76) }); - -},{"36":36,"40":40,"76":76}],192:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !_dereq_(36), 'Object', { defineProperty: _dereq_(75).f }); - -},{"36":36,"40":40,"75":75}],193:[function(_dereq_,module,exports){ -// 19.1.2.5 Object.freeze(O) -var isObject = _dereq_(57); -var meta = _dereq_(70).onFreeze; - -_dereq_(85)('freeze', function ($freeze) { - return function freeze(it) { - return $freeze && isObject(it) ? $freeze(meta(it)) : it; - }; -}); - -},{"57":57,"70":70,"85":85}],194:[function(_dereq_,module,exports){ -// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) -var toIObject = _dereq_(116); -var $getOwnPropertyDescriptor = _dereq_(77).f; - -_dereq_(85)('getOwnPropertyDescriptor', function () { - return function getOwnPropertyDescriptor(it, key) { - return $getOwnPropertyDescriptor(toIObject(it), key); - }; -}); - -},{"116":116,"77":77,"85":85}],195:[function(_dereq_,module,exports){ -// 19.1.2.7 Object.getOwnPropertyNames(O) -_dereq_(85)('getOwnPropertyNames', function () { - return _dereq_(78).f; -}); - -},{"78":78,"85":85}],196:[function(_dereq_,module,exports){ -// 19.1.2.9 Object.getPrototypeOf(O) -var toObject = _dereq_(118); -var $getPrototypeOf = _dereq_(81); - -_dereq_(85)('getPrototypeOf', function () { - return function getPrototypeOf(it) { - return $getPrototypeOf(toObject(it)); - }; -}); - -},{"118":118,"81":81,"85":85}],197:[function(_dereq_,module,exports){ -// 19.1.2.11 Object.isExtensible(O) -var isObject = _dereq_(57); - -_dereq_(85)('isExtensible', function ($isExtensible) { - return function isExtensible(it) { - return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; - }; -}); - -},{"57":57,"85":85}],198:[function(_dereq_,module,exports){ -// 19.1.2.12 Object.isFrozen(O) -var isObject = _dereq_(57); - -_dereq_(85)('isFrozen', function ($isFrozen) { - return function isFrozen(it) { - return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; - }; -}); - -},{"57":57,"85":85}],199:[function(_dereq_,module,exports){ -// 19.1.2.13 Object.isSealed(O) -var isObject = _dereq_(57); - -_dereq_(85)('isSealed', function ($isSealed) { - return function isSealed(it) { - return isObject(it) ? $isSealed ? $isSealed(it) : false : true; - }; -}); - -},{"57":57,"85":85}],200:[function(_dereq_,module,exports){ -// 19.1.3.10 Object.is(value1, value2) -var $export = _dereq_(40); -$export($export.S, 'Object', { is: _dereq_(97) }); - -},{"40":40,"97":97}],201:[function(_dereq_,module,exports){ -// 19.1.2.14 Object.keys(O) -var toObject = _dereq_(118); -var $keys = _dereq_(83); - -_dereq_(85)('keys', function () { - return function keys(it) { - return $keys(toObject(it)); - }; -}); - -},{"118":118,"83":83,"85":85}],202:[function(_dereq_,module,exports){ -// 19.1.2.15 Object.preventExtensions(O) -var isObject = _dereq_(57); -var meta = _dereq_(70).onFreeze; - -_dereq_(85)('preventExtensions', function ($preventExtensions) { - return function preventExtensions(it) { - return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; - }; -}); - -},{"57":57,"70":70,"85":85}],203:[function(_dereq_,module,exports){ -// 19.1.2.17 Object.seal(O) -var isObject = _dereq_(57); -var meta = _dereq_(70).onFreeze; - -_dereq_(85)('seal', function ($seal) { - return function seal(it) { - return $seal && isObject(it) ? $seal(meta(it)) : it; - }; -}); - -},{"57":57,"70":70,"85":85}],204:[function(_dereq_,module,exports){ -// 19.1.3.19 Object.setPrototypeOf(O, proto) -var $export = _dereq_(40); -$export($export.S, 'Object', { setPrototypeOf: _dereq_(98).set }); - -},{"40":40,"98":98}],205:[function(_dereq_,module,exports){ -'use strict'; -// 19.1.3.6 Object.prototype.toString() -var classof = _dereq_(25); -var test = {}; -test[_dereq_(128)('toStringTag')] = 'z'; -if (test + '' != '[object z]') { - _dereq_(94)(Object.prototype, 'toString', function toString() { - return '[object ' + classof(this) + ']'; - }, true); -} - -},{"128":128,"25":25,"94":94}],206:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var $parseFloat = _dereq_(88); -// 18.2.4 parseFloat(string) -$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); - -},{"40":40,"88":88}],207:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var $parseInt = _dereq_(89); -// 18.2.5 parseInt(string, radix) -$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); - -},{"40":40,"89":89}],208:[function(_dereq_,module,exports){ -'use strict'; -var LIBRARY = _dereq_(65); -var global = _dereq_(46); -var ctx = _dereq_(32); -var classof = _dereq_(25); -var $export = _dereq_(40); -var isObject = _dereq_(57); -var aFunction = _dereq_(11); -var anInstance = _dereq_(15); -var forOf = _dereq_(45); -var speciesConstructor = _dereq_(103); -var task = _dereq_(112).set; -var microtask = _dereq_(71)(); -var newPromiseCapabilityModule = _dereq_(72); -var perform = _dereq_(90); -var userAgent = _dereq_(124); -var promiseResolve = _dereq_(91); -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8 || ''; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; -var empty = function () { /* empty */ }; -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; - -var USE_NATIVE = !!function () { - try { - // correct subclassing with @@species support - var promise = $Promise.resolve(1); - var FakePromise = (promise.constructor = {})[_dereq_(128)('species')] = function (exec) { - exec(empty, empty); - }; - // unhandled rejections tracking support, NodeJS Promise without it fails @@species test - return (isNode || typeof PromiseRejectionEvent == 'function') - && promise.then(empty) instanceof FakePromise - // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // we can't detect it synchronously, so just check versions - && v8.indexOf('6.6') !== 0 - && userAgent.indexOf('Chrome/66') === -1; - } catch (e) { /* empty */ } -}(); - -// helpers -var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; -var notify = function (promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - var run = function (reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); // may throw - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - if (domain && !exited) domain.exit(); - reject(e); - } - }; - while (chain.length > i) run(chain[i++]); // variable length - can't use forEach - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; -var onUnhandled = function (promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ promise: promise, reason: value }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; -var isUnhandled = function (promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; -}; -var onHandleUnhandled = function (promise) { - task.call(global, function () { - var handler; - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ promise: promise, reason: promise._v }); - } - }); -}; -var $reject = function (value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; // unwrap - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; -var $resolve = function (value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; // unwrap - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { _w: promise, _d: false }; // wrap - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ _w: promise, _d: false }, e); // wrap - } -}; - -// constructor polyfill -if (!USE_NATIVE) { - // 25.4.3.1 Promise(executor) - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - // eslint-disable-next-line no-unused-vars - Internal = function Promise(executor) { - this._c = []; // <- awaiting reactions - this._a = undefined; // <- checked in isUnhandled reactions - this._s = 0; // <- state - this._d = false; // <- done - this._v = undefined; // <- value - this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled - this._n = false; // <- notify - }; - Internal.prototype = _dereq_(93)($Promise.prototype, { - // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - this._c.push(reaction); - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - // 25.4.5.1 Promise.prototype.catch(onRejected) - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === $Promise || C === Wrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); -_dereq_(100)($Promise, PROMISE); -_dereq_(99)(PROMISE); -Wrapper = _dereq_(30)[PROMISE]; - -// statics -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - // 25.4.4.5 Promise.reject(r) - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - // 25.4.4.6 Promise.resolve(x) - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } -}); -$export($export.S + $export.F * !(USE_NATIVE && _dereq_(62)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - // 25.4.4.1 Promise.all(iterable) - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - // 25.4.4.4 Promise.race(iterable) - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } -}); - -},{"100":100,"103":103,"11":11,"112":112,"124":124,"128":128,"15":15,"25":25,"30":30,"32":32,"40":40,"45":45,"46":46,"57":57,"62":62,"65":65,"71":71,"72":72,"90":90,"91":91,"93":93,"99":99}],209:[function(_dereq_,module,exports){ -// 26.1.1 Reflect.apply(target, thisArgument, argumentsList) -var $export = _dereq_(40); -var aFunction = _dereq_(11); -var anObject = _dereq_(16); -var rApply = (_dereq_(46).Reflect || {}).apply; -var fApply = Function.apply; -// MS Edge argumentsList argument is optional -$export($export.S + $export.F * !_dereq_(42)(function () { - rApply(function () { /* empty */ }); -}), 'Reflect', { - apply: function apply(target, thisArgument, argumentsList) { - var T = aFunction(target); - var L = anObject(argumentsList); - return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); - } -}); - -},{"11":11,"16":16,"40":40,"42":42,"46":46}],210:[function(_dereq_,module,exports){ -// 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) -var $export = _dereq_(40); -var create = _dereq_(74); -var aFunction = _dereq_(11); -var anObject = _dereq_(16); -var isObject = _dereq_(57); -var fails = _dereq_(42); -var bind = _dereq_(24); -var rConstruct = (_dereq_(46).Reflect || {}).construct; - -// MS Edge supports only 2 arguments and argumentsList argument is optional -// FF Nightly sets third argument as `new.target`, but does not create `this` from it -var NEW_TARGET_BUG = fails(function () { - function F() { /* empty */ } - return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); -}); -var ARGS_BUG = !fails(function () { - rConstruct(function () { /* empty */ }); -}); - -$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { - construct: function construct(Target, args /* , newTarget */) { - aFunction(Target); - anObject(args); - var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); - if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); - if (Target == newTarget) { - // w/o altered newTarget, optimization for 0-4 arguments - switch (args.length) { - case 0: return new Target(); - case 1: return new Target(args[0]); - case 2: return new Target(args[0], args[1]); - case 3: return new Target(args[0], args[1], args[2]); - case 4: return new Target(args[0], args[1], args[2], args[3]); - } - // w/o altered newTarget, lot of arguments case - var $args = [null]; - $args.push.apply($args, args); - return new (bind.apply(Target, $args))(); - } - // with altered newTarget, not support built-in constructors - var proto = newTarget.prototype; - var instance = create(isObject(proto) ? proto : Object.prototype); - var result = Function.apply.call(Target, instance, args); - return isObject(result) ? result : instance; - } -}); - -},{"11":11,"16":16,"24":24,"40":40,"42":42,"46":46,"57":57,"74":74}],211:[function(_dereq_,module,exports){ -// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) -var dP = _dereq_(75); -var $export = _dereq_(40); -var anObject = _dereq_(16); -var toPrimitive = _dereq_(119); - -// MS Edge has broken Reflect.defineProperty - throwing instead of returning false -$export($export.S + $export.F * _dereq_(42)(function () { - // eslint-disable-next-line no-undef - Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); -}), 'Reflect', { - defineProperty: function defineProperty(target, propertyKey, attributes) { - anObject(target); - propertyKey = toPrimitive(propertyKey, true); - anObject(attributes); - try { - dP.f(target, propertyKey, attributes); - return true; - } catch (e) { - return false; - } - } -}); - -},{"119":119,"16":16,"40":40,"42":42,"75":75}],212:[function(_dereq_,module,exports){ -// 26.1.4 Reflect.deleteProperty(target, propertyKey) -var $export = _dereq_(40); -var gOPD = _dereq_(77).f; -var anObject = _dereq_(16); - -$export($export.S, 'Reflect', { - deleteProperty: function deleteProperty(target, propertyKey) { - var desc = gOPD(anObject(target), propertyKey); - return desc && !desc.configurable ? false : delete target[propertyKey]; - } -}); - -},{"16":16,"40":40,"77":77}],213:[function(_dereq_,module,exports){ -'use strict'; -// 26.1.5 Reflect.enumerate(target) -var $export = _dereq_(40); -var anObject = _dereq_(16); -var Enumerate = function (iterated) { - this._t = anObject(iterated); // target - this._i = 0; // next index - var keys = this._k = []; // keys - var key; - for (key in iterated) keys.push(key); -}; -_dereq_(60)(Enumerate, 'Object', function () { - var that = this; - var keys = that._k; - var key; - do { - if (that._i >= keys.length) return { value: undefined, done: true }; - } while (!((key = keys[that._i++]) in that._t)); - return { value: key, done: false }; -}); - -$export($export.S, 'Reflect', { - enumerate: function enumerate(target) { - return new Enumerate(target); - } -}); - -},{"16":16,"40":40,"60":60}],214:[function(_dereq_,module,exports){ -// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) -var gOPD = _dereq_(77); -var $export = _dereq_(40); -var anObject = _dereq_(16); - -$export($export.S, 'Reflect', { - getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { - return gOPD.f(anObject(target), propertyKey); - } -}); - -},{"16":16,"40":40,"77":77}],215:[function(_dereq_,module,exports){ -// 26.1.8 Reflect.getPrototypeOf(target) -var $export = _dereq_(40); -var getProto = _dereq_(81); -var anObject = _dereq_(16); - -$export($export.S, 'Reflect', { - getPrototypeOf: function getPrototypeOf(target) { - return getProto(anObject(target)); - } -}); - -},{"16":16,"40":40,"81":81}],216:[function(_dereq_,module,exports){ -// 26.1.6 Reflect.get(target, propertyKey [, receiver]) -var gOPD = _dereq_(77); -var getPrototypeOf = _dereq_(81); -var has = _dereq_(47); -var $export = _dereq_(40); -var isObject = _dereq_(57); -var anObject = _dereq_(16); - -function get(target, propertyKey /* , receiver */) { - var receiver = arguments.length < 3 ? target : arguments[2]; - var desc, proto; - if (anObject(target) === receiver) return target[propertyKey]; - if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') - ? desc.value - : desc.get !== undefined - ? desc.get.call(receiver) - : undefined; - if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); -} - -$export($export.S, 'Reflect', { get: get }); - -},{"16":16,"40":40,"47":47,"57":57,"77":77,"81":81}],217:[function(_dereq_,module,exports){ -// 26.1.9 Reflect.has(target, propertyKey) -var $export = _dereq_(40); - -$export($export.S, 'Reflect', { - has: function has(target, propertyKey) { - return propertyKey in target; - } -}); - -},{"40":40}],218:[function(_dereq_,module,exports){ -// 26.1.10 Reflect.isExtensible(target) -var $export = _dereq_(40); -var anObject = _dereq_(16); -var $isExtensible = Object.isExtensible; - -$export($export.S, 'Reflect', { - isExtensible: function isExtensible(target) { - anObject(target); - return $isExtensible ? $isExtensible(target) : true; - } -}); - -},{"16":16,"40":40}],219:[function(_dereq_,module,exports){ -// 26.1.11 Reflect.ownKeys(target) -var $export = _dereq_(40); - -$export($export.S, 'Reflect', { ownKeys: _dereq_(87) }); - -},{"40":40,"87":87}],220:[function(_dereq_,module,exports){ -// 26.1.12 Reflect.preventExtensions(target) -var $export = _dereq_(40); -var anObject = _dereq_(16); -var $preventExtensions = Object.preventExtensions; - -$export($export.S, 'Reflect', { - preventExtensions: function preventExtensions(target) { - anObject(target); - try { - if ($preventExtensions) $preventExtensions(target); - return true; - } catch (e) { - return false; - } - } -}); - -},{"16":16,"40":40}],221:[function(_dereq_,module,exports){ -// 26.1.14 Reflect.setPrototypeOf(target, proto) -var $export = _dereq_(40); -var setProto = _dereq_(98); - -if (setProto) $export($export.S, 'Reflect', { - setPrototypeOf: function setPrototypeOf(target, proto) { - setProto.check(target, proto); - try { - setProto.set(target, proto); - return true; - } catch (e) { - return false; - } - } -}); - -},{"40":40,"98":98}],222:[function(_dereq_,module,exports){ -// 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) -var dP = _dereq_(75); -var gOPD = _dereq_(77); -var getPrototypeOf = _dereq_(81); -var has = _dereq_(47); -var $export = _dereq_(40); -var createDesc = _dereq_(92); -var anObject = _dereq_(16); -var isObject = _dereq_(57); - -function set(target, propertyKey, V /* , receiver */) { - var receiver = arguments.length < 4 ? target : arguments[3]; - var ownDesc = gOPD.f(anObject(target), propertyKey); - var existingDescriptor, proto; - if (!ownDesc) { - if (isObject(proto = getPrototypeOf(target))) { - return set(proto, propertyKey, V, receiver); - } - ownDesc = createDesc(0); - } - if (has(ownDesc, 'value')) { - if (ownDesc.writable === false || !isObject(receiver)) return false; - if (existingDescriptor = gOPD.f(receiver, propertyKey)) { - if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; - existingDescriptor.value = V; - dP.f(receiver, propertyKey, existingDescriptor); - } else dP.f(receiver, propertyKey, createDesc(0, V)); - return true; - } - return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); -} - -$export($export.S, 'Reflect', { set: set }); - -},{"16":16,"40":40,"47":47,"57":57,"75":75,"77":77,"81":81,"92":92}],223:[function(_dereq_,module,exports){ -var global = _dereq_(46); -var inheritIfRequired = _dereq_(51); -var dP = _dereq_(75).f; -var gOPN = _dereq_(79).f; -var isRegExp = _dereq_(58); -var $flags = _dereq_(44); -var $RegExp = global.RegExp; -var Base = $RegExp; -var proto = $RegExp.prototype; -var re1 = /a/g; -var re2 = /a/g; -// "new" creates a new object, old webkit buggy here -var CORRECT_NEW = new $RegExp(re1) !== re1; - -if (_dereq_(36) && (!CORRECT_NEW || _dereq_(42)(function () { - re2[_dereq_(128)('match')] = false; - // RegExp constructor can alter flags and IsRegExp works correct with @@match - return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; -}))) { - $RegExp = function RegExp(p, f) { - var tiRE = this instanceof $RegExp; - var piRE = isRegExp(p); - var fiU = f === undefined; - return !tiRE && piRE && p.constructor === $RegExp && fiU ? p - : inheritIfRequired(CORRECT_NEW - ? new Base(piRE && !fiU ? p.source : p, f) - : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) - , tiRE ? this : proto, $RegExp); - }; - var proxy = function (key) { - key in $RegExp || dP($RegExp, key, { - configurable: true, - get: function () { return Base[key]; }, - set: function (it) { Base[key] = it; } - }); - }; - for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); - proto.constructor = $RegExp; - $RegExp.prototype = proto; - _dereq_(94)(global, 'RegExp', $RegExp); -} - -_dereq_(99)('RegExp'); - -},{"128":128,"36":36,"42":42,"44":44,"46":46,"51":51,"58":58,"75":75,"79":79,"94":94,"99":99}],224:[function(_dereq_,module,exports){ -'use strict'; -var regexpExec = _dereq_(96); -_dereq_(40)({ - target: 'RegExp', - proto: true, - forced: regexpExec !== /./.exec -}, { - exec: regexpExec -}); - -},{"40":40,"96":96}],225:[function(_dereq_,module,exports){ -// 21.2.5.3 get RegExp.prototype.flags() -if (_dereq_(36) && /./g.flags != 'g') _dereq_(75).f(RegExp.prototype, 'flags', { - configurable: true, - get: _dereq_(44) -}); - -},{"36":36,"44":44,"75":75}],226:[function(_dereq_,module,exports){ -'use strict'; - -var anObject = _dereq_(16); -var toLength = _dereq_(117); -var advanceStringIndex = _dereq_(14); -var regExpExec = _dereq_(95); - -// @@match logic -_dereq_(43)('match', 1, function (defined, MATCH, $match, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.github.io/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = defined(this); - var fn = regexp == undefined ? undefined : regexp[MATCH]; - return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative($match, regexp, this); - if (res.done) return res.value; - var rx = anObject(regexp); - var S = String(this); - if (!rx.global) return regExpExec(rx, S); - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regExpExec(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; -}); - -},{"117":117,"14":14,"16":16,"43":43,"95":95}],227:[function(_dereq_,module,exports){ -'use strict'; - -var anObject = _dereq_(16); -var toObject = _dereq_(118); -var toLength = _dereq_(117); -var toInteger = _dereq_(115); -var advanceStringIndex = _dereq_(14); -var regExpExec = _dereq_(95); -var max = Math.max; -var min = Math.min; -var floor = Math.floor; -var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g; -var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g; - -var maybeToString = function (it) { - return it === undefined ? it : String(it); -}; - -// @@replace logic -_dereq_(43)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) { - return [ - // `String.prototype.replace` method - // https://tc39.github.io/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = defined(this); - var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; - return fn !== undefined - ? fn.call(searchValue, O, replaceValue) - : $replace.call(String(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - var res = maybeCallNative($replace, regexp, this, replaceValue); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regExpExec(rx, S); - if (result === null) break; - results.push(result); - if (!global) break; - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - } - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - var matched = String(result[0]); - var position = max(min(toInteger(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + S.slice(nextSourcePosition); - } - ]; - - // https://tc39.github.io/ecma262/#sec-getsubstitution - function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return $replace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return ch; - if (n > m) { - var f = floor(n / 10); - if (f === 0) return ch; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return ch; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); - } -}); - -},{"115":115,"117":117,"118":118,"14":14,"16":16,"43":43,"95":95}],228:[function(_dereq_,module,exports){ -'use strict'; - -var anObject = _dereq_(16); -var sameValue = _dereq_(97); -var regExpExec = _dereq_(95); - -// @@search logic -_dereq_(43)('search', 1, function (defined, SEARCH, $search, maybeCallNative) { - return [ - // `String.prototype.search` method - // https://tc39.github.io/ecma262/#sec-string.prototype.search - function search(regexp) { - var O = defined(this); - var fn = regexp == undefined ? undefined : regexp[SEARCH]; - return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); - }, - // `RegExp.prototype[@@search]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search - function (regexp) { - var res = maybeCallNative($search, regexp, this); - if (res.done) return res.value; - var rx = anObject(regexp); - var S = String(this); - var previousLastIndex = rx.lastIndex; - if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; - var result = regExpExec(rx, S); - if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; - return result === null ? -1 : result.index; - } - ]; -}); - -},{"16":16,"43":43,"95":95,"97":97}],229:[function(_dereq_,module,exports){ -'use strict'; - -var isRegExp = _dereq_(58); -var anObject = _dereq_(16); -var speciesConstructor = _dereq_(103); -var advanceStringIndex = _dereq_(14); -var toLength = _dereq_(117); -var callRegExpExec = _dereq_(95); -var regexpExec = _dereq_(96); -var $min = Math.min; -var $push = [].push; -var $SPLIT = 'split'; -var LENGTH = 'length'; -var LAST_INDEX = 'lastIndex'; - -// eslint-disable-next-line no-empty -var SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })(); - -// @@split logic -_dereq_(43)('split', 2, function (defined, SPLIT, $split, maybeCallNative) { - var internalSplit; - if ( - 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || - 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || - 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || - '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || - '.'[$SPLIT](/()()/)[LENGTH] > 1 || - ''[$SPLIT](/.?/)[LENGTH] - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(this); - if (separator === undefined && limit === 0) return []; - // If `separator` is not a regex, use native split - if (!isRegExp(separator)) return $split.call(string, separator, limit); - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - var splitLimit = limit === undefined ? 4294967295 : limit >>> 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy[LAST_INDEX]; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); - lastLength = match[0][LENGTH]; - lastLastIndex = lastIndex; - if (output[LENGTH] >= splitLimit) break; - } - if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop - } - if (lastLastIndex === string[LENGTH]) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; - }; - // Chakra, V8 - } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit); - }; - } else { - internalSplit = $split; - } - - return [ - // `String.prototype.split` method - // https://tc39.github.io/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = defined(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y ? 'y' : 'g'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? 0xffffffff : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - if ( - z === null || - (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; -}); - -},{"103":103,"117":117,"14":14,"16":16,"43":43,"58":58,"95":95,"96":96}],230:[function(_dereq_,module,exports){ -'use strict'; -_dereq_(225); -var anObject = _dereq_(16); -var $flags = _dereq_(44); -var DESCRIPTORS = _dereq_(36); -var TO_STRING = 'toString'; -var $toString = /./[TO_STRING]; - -var define = function (fn) { - _dereq_(94)(RegExp.prototype, TO_STRING, fn, true); -}; - -// 21.2.5.14 RegExp.prototype.toString() -if (_dereq_(42)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { - define(function toString() { - var R = anObject(this); - return '/'.concat(R.source, '/', - 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); - }); -// FF44- RegExp#toString has a wrong name -} else if ($toString.name != TO_STRING) { - define(function toString() { - return $toString.call(this); - }); -} - -},{"16":16,"225":225,"36":36,"42":42,"44":44,"94":94}],231:[function(_dereq_,module,exports){ -'use strict'; -var strong = _dereq_(27); -var validate = _dereq_(125); -var SET = 'Set'; - -// 23.2 Set Objects -module.exports = _dereq_(29)(SET, function (get) { - return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.2.3.1 Set.prototype.add(value) - add: function add(value) { - return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); - } -}, strong); - -},{"125":125,"27":27,"29":29}],232:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.2 String.prototype.anchor(name) -_dereq_(107)('anchor', function (createHTML) { - return function anchor(name) { - return createHTML(this, 'a', 'name', name); - }; -}); - -},{"107":107}],233:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.3 String.prototype.big() -_dereq_(107)('big', function (createHTML) { - return function big() { - return createHTML(this, 'big', '', ''); - }; -}); - -},{"107":107}],234:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.4 String.prototype.blink() -_dereq_(107)('blink', function (createHTML) { - return function blink() { - return createHTML(this, 'blink', '', ''); - }; -}); - -},{"107":107}],235:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.5 String.prototype.bold() -_dereq_(107)('bold', function (createHTML) { - return function bold() { - return createHTML(this, 'b', '', ''); - }; -}); - -},{"107":107}],236:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $at = _dereq_(105)(false); -$export($export.P, 'String', { - // 21.1.3.3 String.prototype.codePointAt(pos) - codePointAt: function codePointAt(pos) { - return $at(this, pos); - } -}); - -},{"105":105,"40":40}],237:[function(_dereq_,module,exports){ -// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) -'use strict'; -var $export = _dereq_(40); -var toLength = _dereq_(117); -var context = _dereq_(106); -var ENDS_WITH = 'endsWith'; -var $endsWith = ''[ENDS_WITH]; - -$export($export.P + $export.F * _dereq_(41)(ENDS_WITH), 'String', { - endsWith: function endsWith(searchString /* , endPosition = @length */) { - var that = context(this, searchString, ENDS_WITH); - var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); - var search = String(searchString); - return $endsWith - ? $endsWith.call(that, search, end) - : that.slice(end - search.length, end) === search; - } -}); - -},{"106":106,"117":117,"40":40,"41":41}],238:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.6 String.prototype.fixed() -_dereq_(107)('fixed', function (createHTML) { - return function fixed() { - return createHTML(this, 'tt', '', ''); - }; -}); - -},{"107":107}],239:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.7 String.prototype.fontcolor(color) -_dereq_(107)('fontcolor', function (createHTML) { - return function fontcolor(color) { - return createHTML(this, 'font', 'color', color); - }; -}); - -},{"107":107}],240:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.8 String.prototype.fontsize(size) -_dereq_(107)('fontsize', function (createHTML) { - return function fontsize(size) { - return createHTML(this, 'font', 'size', size); - }; -}); - -},{"107":107}],241:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var toAbsoluteIndex = _dereq_(113); -var fromCharCode = String.fromCharCode; -var $fromCodePoint = String.fromCodePoint; - -// length should be 1, old FF problem -$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { - // 21.1.2.2 String.fromCodePoint(...codePoints) - fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars - var res = []; - var aLen = arguments.length; - var i = 0; - var code; - while (aLen > i) { - code = +arguments[i++]; - if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); - res.push(code < 0x10000 - ? fromCharCode(code) - : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) - ); - } return res.join(''); - } -}); - -},{"113":113,"40":40}],242:[function(_dereq_,module,exports){ -// 21.1.3.7 String.prototype.includes(searchString, position = 0) -'use strict'; -var $export = _dereq_(40); -var context = _dereq_(106); -var INCLUDES = 'includes'; - -$export($export.P + $export.F * _dereq_(41)(INCLUDES), 'String', { - includes: function includes(searchString /* , position = 0 */) { - return !!~context(this, searchString, INCLUDES) - .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -},{"106":106,"40":40,"41":41}],243:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.9 String.prototype.italics() -_dereq_(107)('italics', function (createHTML) { - return function italics() { - return createHTML(this, 'i', '', ''); - }; -}); - -},{"107":107}],244:[function(_dereq_,module,exports){ -'use strict'; -var $at = _dereq_(105)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -_dereq_(61)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - -},{"105":105,"61":61}],245:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.10 String.prototype.link(url) -_dereq_(107)('link', function (createHTML) { - return function link(url) { - return createHTML(this, 'a', 'href', url); - }; -}); - -},{"107":107}],246:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var toIObject = _dereq_(116); -var toLength = _dereq_(117); - -$export($export.S, 'String', { - // 21.1.2.4 String.raw(callSite, ...substitutions) - raw: function raw(callSite) { - var tpl = toIObject(callSite.raw); - var len = toLength(tpl.length); - var aLen = arguments.length; - var res = []; - var i = 0; - while (len > i) { - res.push(String(tpl[i++])); - if (i < aLen) res.push(String(arguments[i])); - } return res.join(''); - } -}); - -},{"116":116,"117":117,"40":40}],247:[function(_dereq_,module,exports){ -var $export = _dereq_(40); - -$export($export.P, 'String', { - // 21.1.3.13 String.prototype.repeat(count) - repeat: _dereq_(109) -}); - -},{"109":109,"40":40}],248:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.11 String.prototype.small() -_dereq_(107)('small', function (createHTML) { - return function small() { - return createHTML(this, 'small', '', ''); - }; -}); - -},{"107":107}],249:[function(_dereq_,module,exports){ -// 21.1.3.18 String.prototype.startsWith(searchString [, position ]) -'use strict'; -var $export = _dereq_(40); -var toLength = _dereq_(117); -var context = _dereq_(106); -var STARTS_WITH = 'startsWith'; -var $startsWith = ''[STARTS_WITH]; - -$export($export.P + $export.F * _dereq_(41)(STARTS_WITH), 'String', { - startsWith: function startsWith(searchString /* , position = 0 */) { - var that = context(this, searchString, STARTS_WITH); - var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return $startsWith - ? $startsWith.call(that, search, index) - : that.slice(index, index + search.length) === search; - } -}); - -},{"106":106,"117":117,"40":40,"41":41}],250:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.12 String.prototype.strike() -_dereq_(107)('strike', function (createHTML) { - return function strike() { - return createHTML(this, 'strike', '', ''); - }; -}); - -},{"107":107}],251:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.13 String.prototype.sub() -_dereq_(107)('sub', function (createHTML) { - return function sub() { - return createHTML(this, 'sub', '', ''); - }; -}); - -},{"107":107}],252:[function(_dereq_,module,exports){ -'use strict'; -// B.2.3.14 String.prototype.sup() -_dereq_(107)('sup', function (createHTML) { - return function sup() { - return createHTML(this, 'sup', '', ''); - }; -}); - -},{"107":107}],253:[function(_dereq_,module,exports){ -'use strict'; -// 21.1.3.25 String.prototype.trim() -_dereq_(110)('trim', function ($trim) { - return function trim() { - return $trim(this, 3); - }; -}); - -},{"110":110}],254:[function(_dereq_,module,exports){ -'use strict'; -// ECMAScript 6 symbols shim -var global = _dereq_(46); -var has = _dereq_(47); -var DESCRIPTORS = _dereq_(36); -var $export = _dereq_(40); -var redefine = _dereq_(94); -var META = _dereq_(70).KEY; -var $fails = _dereq_(42); -var shared = _dereq_(102); -var setToStringTag = _dereq_(100); -var uid = _dereq_(123); -var wks = _dereq_(128); -var wksExt = _dereq_(127); -var wksDefine = _dereq_(126); -var enumKeys = _dereq_(39); -var isArray = _dereq_(55); -var anObject = _dereq_(16); -var isObject = _dereq_(57); -var toIObject = _dereq_(116); -var toPrimitive = _dereq_(119); -var createDesc = _dereq_(92); -var _create = _dereq_(74); -var gOPNExt = _dereq_(78); -var $GOPD = _dereq_(77); -var $DP = _dereq_(75); -var $keys = _dereq_(83); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - _dereq_(79).f = gOPNExt.f = $getOwnPropertyNames; - _dereq_(84).f = $propertyIsEnumerable; - _dereq_(80).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !_dereq_(65)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || _dereq_(48)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - -},{"100":100,"102":102,"116":116,"119":119,"123":123,"126":126,"127":127,"128":128,"16":16,"36":36,"39":39,"40":40,"42":42,"46":46,"47":47,"48":48,"55":55,"57":57,"65":65,"70":70,"74":74,"75":75,"77":77,"78":78,"79":79,"80":80,"83":83,"84":84,"92":92,"94":94}],255:[function(_dereq_,module,exports){ -'use strict'; -var $export = _dereq_(40); -var $typed = _dereq_(122); -var buffer = _dereq_(121); -var anObject = _dereq_(16); -var toAbsoluteIndex = _dereq_(113); -var toLength = _dereq_(117); -var isObject = _dereq_(57); -var ArrayBuffer = _dereq_(46).ArrayBuffer; -var speciesConstructor = _dereq_(103); -var $ArrayBuffer = buffer.ArrayBuffer; -var $DataView = buffer.DataView; -var $isView = $typed.ABV && ArrayBuffer.isView; -var $slice = $ArrayBuffer.prototype.slice; -var VIEW = $typed.VIEW; -var ARRAY_BUFFER = 'ArrayBuffer'; - -$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); - -$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { - // 24.1.3.1 ArrayBuffer.isView(arg) - isView: function isView(it) { - return $isView && $isView(it) || isObject(it) && VIEW in it; - } -}); - -$export($export.P + $export.U + $export.F * _dereq_(42)(function () { - return !new $ArrayBuffer(2).slice(1, undefined).byteLength; -}), ARRAY_BUFFER, { - // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) - slice: function slice(start, end) { - if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix - var len = anObject(this).byteLength; - var first = toAbsoluteIndex(start, len); - var fin = toAbsoluteIndex(end === undefined ? len : end, len); - var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); - var viewS = new $DataView(this); - var viewT = new $DataView(result); - var index = 0; - while (first < fin) { - viewT.setUint8(index++, viewS.getUint8(first++)); - } return result; - } -}); - -_dereq_(99)(ARRAY_BUFFER); - -},{"103":103,"113":113,"117":117,"121":121,"122":122,"16":16,"40":40,"42":42,"46":46,"57":57,"99":99}],256:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -$export($export.G + $export.W + $export.F * !_dereq_(122).ABV, { - DataView: _dereq_(121).DataView -}); - -},{"121":121,"122":122,"40":40}],257:[function(_dereq_,module,exports){ -_dereq_(120)('Float32', 4, function (init) { - return function Float32Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],258:[function(_dereq_,module,exports){ -_dereq_(120)('Float64', 8, function (init) { - return function Float64Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],259:[function(_dereq_,module,exports){ -_dereq_(120)('Int16', 2, function (init) { - return function Int16Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],260:[function(_dereq_,module,exports){ -_dereq_(120)('Int32', 4, function (init) { - return function Int32Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],261:[function(_dereq_,module,exports){ -_dereq_(120)('Int8', 1, function (init) { - return function Int8Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],262:[function(_dereq_,module,exports){ -_dereq_(120)('Uint16', 2, function (init) { - return function Uint16Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],263:[function(_dereq_,module,exports){ -_dereq_(120)('Uint32', 4, function (init) { - return function Uint32Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],264:[function(_dereq_,module,exports){ -_dereq_(120)('Uint8', 1, function (init) { - return function Uint8Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}); - -},{"120":120}],265:[function(_dereq_,module,exports){ -_dereq_(120)('Uint8', 1, function (init) { - return function Uint8ClampedArray(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; -}, true); - -},{"120":120}],266:[function(_dereq_,module,exports){ -'use strict'; -var each = _dereq_(20)(0); -var redefine = _dereq_(94); -var meta = _dereq_(70); -var assign = _dereq_(73); -var weak = _dereq_(28); -var isObject = _dereq_(57); -var fails = _dereq_(42); -var validate = _dereq_(125); -var WEAK_MAP = 'WeakMap'; -var getWeak = meta.getWeak; -var isExtensible = Object.isExtensible; -var uncaughtFrozenStore = weak.ufstore; -var tmp = {}; -var InternalMap; - -var wrapper = function (get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; - -var methods = { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); - } -}; - -// 23.3 WeakMap Objects -var $WeakMap = module.exports = _dereq_(29)(WEAK_MAP, wrapper, methods, weak, true, true); - -// IE11 WeakMap frozen keys fix -if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - // store frozen objects on internal weakmap shim - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - var result = this._f[key](a, b); - return key == 'set' ? this : result; - // store all the rest on native weakmap - } return method.call(this, a, b); - }); - }); -} - -},{"125":125,"20":20,"28":28,"29":29,"42":42,"57":57,"70":70,"73":73,"94":94}],267:[function(_dereq_,module,exports){ -'use strict'; -var weak = _dereq_(28); -var validate = _dereq_(125); -var WEAK_SET = 'WeakSet'; - -// 23.4 WeakSet Objects -_dereq_(29)(WEAK_SET, function (get) { - return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.4.3.1 WeakSet.prototype.add(value) - add: function add(value) { - return weak.def(validate(this, WEAK_SET), value, true); - } -}, weak, false, true); - -},{"125":125,"28":28,"29":29}],268:[function(_dereq_,module,exports){ -'use strict'; -// https://github.com/tc39/Array.prototype.includes -var $export = _dereq_(40); -var $includes = _dereq_(19)(true); - -$export($export.P, 'Array', { - includes: function includes(el /* , fromIndex = 0 */) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -_dereq_(13)('includes'); - -},{"13":13,"19":19,"40":40}],269:[function(_dereq_,module,exports){ -// https://github.com/tc39/proposal-object-values-entries -var $export = _dereq_(40); -var $entries = _dereq_(86)(true); - -$export($export.S, 'Object', { - entries: function entries(it) { - return $entries(it); - } -}); - -},{"40":40,"86":86}],270:[function(_dereq_,module,exports){ -// https://github.com/tc39/proposal-object-getownpropertydescriptors -var $export = _dereq_(40); -var ownKeys = _dereq_(87); -var toIObject = _dereq_(116); -var gOPD = _dereq_(77); -var createProperty = _dereq_(31); - -$export($export.S, 'Object', { - getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { - var O = toIObject(object); - var getDesc = gOPD.f; - var keys = ownKeys(O); - var result = {}; - var i = 0; - var key, desc; - while (keys.length > i) { - desc = getDesc(O, key = keys[i++]); - if (desc !== undefined) createProperty(result, key, desc); - } - return result; - } -}); - -},{"116":116,"31":31,"40":40,"77":77,"87":87}],271:[function(_dereq_,module,exports){ -// https://github.com/tc39/proposal-object-values-entries -var $export = _dereq_(40); -var $values = _dereq_(86)(false); - -$export($export.S, 'Object', { - values: function values(it) { - return $values(it); - } -}); - -},{"40":40,"86":86}],272:[function(_dereq_,module,exports){ -// https://github.com/tc39/proposal-promise-finally -'use strict'; -var $export = _dereq_(40); -var core = _dereq_(30); -var global = _dereq_(46); -var speciesConstructor = _dereq_(103); -var promiseResolve = _dereq_(91); - -$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then( - isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { return x; }); - } : onFinally, - isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { throw e; }); - } : onFinally - ); -} }); - -},{"103":103,"30":30,"40":40,"46":46,"91":91}],273:[function(_dereq_,module,exports){ -'use strict'; -// https://github.com/tc39/proposal-string-pad-start-end -var $export = _dereq_(40); -var $pad = _dereq_(108); -var userAgent = _dereq_(124); - -// https://github.com/zloirock/core-js/issues/280 -$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { - padEnd: function padEnd(maxLength /* , fillString = ' ' */) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); - } -}); - -},{"108":108,"124":124,"40":40}],274:[function(_dereq_,module,exports){ -'use strict'; -// https://github.com/tc39/proposal-string-pad-start-end -var $export = _dereq_(40); -var $pad = _dereq_(108); -var userAgent = _dereq_(124); - -// https://github.com/zloirock/core-js/issues/280 -$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { - padStart: function padStart(maxLength /* , fillString = ' ' */) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); - } -}); - -},{"108":108,"124":124,"40":40}],275:[function(_dereq_,module,exports){ -_dereq_(126)('asyncIterator'); - -},{"126":126}],276:[function(_dereq_,module,exports){ -var $iterators = _dereq_(140); -var getKeys = _dereq_(83); -var redefine = _dereq_(94); -var global = _dereq_(46); -var hide = _dereq_(48); -var Iterators = _dereq_(64); -var wks = _dereq_(128); -var ITERATOR = wks('iterator'); -var TO_STRING_TAG = wks('toStringTag'); -var ArrayValues = Iterators.Array; - -var DOMIterables = { - CSSRuleList: true, // TODO: Not spec compliant, should be false. - CSSStyleDeclaration: false, - CSSValueList: false, - ClientRectList: false, - DOMRectList: false, - DOMStringList: false, - DOMTokenList: true, - DataTransferItemList: false, - FileList: false, - HTMLAllCollection: false, - HTMLCollection: false, - HTMLFormElement: false, - HTMLSelectElement: false, - MediaList: true, // TODO: Not spec compliant, should be false. - MimeTypeArray: false, - NamedNodeMap: false, - NodeList: true, - PaintRequestList: false, - Plugin: false, - PluginArray: false, - SVGLengthList: false, - SVGNumberList: false, - SVGPathSegList: false, - SVGPointList: false, - SVGStringList: false, - SVGTransformList: false, - SourceBufferList: false, - StyleSheetList: true, // TODO: Not spec compliant, should be false. - TextTrackCueList: false, - TextTrackList: false, - TouchList: false -}; - -for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { - var NAME = collections[i]; - var explicit = DOMIterables[NAME]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - var key; - if (proto) { - if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); - if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = ArrayValues; - if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); - } -} - -},{"128":128,"140":140,"46":46,"48":48,"64":64,"83":83,"94":94}],277:[function(_dereq_,module,exports){ -var $export = _dereq_(40); -var $task = _dereq_(112); -$export($export.G + $export.B, { - setImmediate: $task.set, - clearImmediate: $task.clear -}); - -},{"112":112,"40":40}],278:[function(_dereq_,module,exports){ -// ie9- setTimeout & setInterval additional parameters fix -var global = _dereq_(46); -var $export = _dereq_(40); -var userAgent = _dereq_(124); -var slice = [].slice; -var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check -var wrap = function (set) { - return function (fn, time /* , ...args */) { - var boundArgs = arguments.length > 2; - var args = boundArgs ? slice.call(arguments, 2) : false; - return set(boundArgs ? function () { - // eslint-disable-next-line no-new-func - (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); - } : fn, time); - }; -}; -$export($export.G + $export.B + $export.F * MSIE, { - setTimeout: wrap(global.setTimeout), - setInterval: wrap(global.setInterval) -}); - -},{"124":124,"40":40,"46":46}],279:[function(_dereq_,module,exports){ -_dereq_(278); -_dereq_(277); -_dereq_(276); -module.exports = _dereq_(30); - -},{"276":276,"277":277,"278":278,"30":30}],280:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -!(function(global) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; // More compressible than void 0. - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - var inModule = typeof module === "object"; - var runtime = global.regeneratorRuntime; - if (runtime) { - if (inModule) { - // If regeneratorRuntime is defined globally and we're in a module, - // make the exports object identical to regeneratorRuntime. - module.exports = runtime; - } - // Don't bother evaluating the rest of this file if the runtime was - // already defined globally. - return; - } - - // Define the runtime globally (as expected by generated code) as either - // module.exports (if we're in a module) or a new, empty object. - runtime = global.regeneratorRuntime = inModule ? module.exports : {}; - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - runtime.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = - GeneratorFunction.displayName = "GeneratorFunction"; - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - prototype[method] = function(arg) { - return this._invoke(method, arg); - }; - }); - } - - runtime.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - runtime.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - runtime.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function(unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. - result.value = unwrapped; - resolve(result); - }, function(error) { - // If a rejected Promise was yielded, throw the rejection back - // into the async generator function so it can be handled there. - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - runtime.AsyncIterator = AsyncIterator; - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - runtime.async = function(innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList) - ); - - return runtime.isGeneratorFunction(outerFn) - ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator.return) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; - - // Resume execution at the desired location (see delegateYield). - context.next = delegate.nextLoc; - - // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - - } else { - // Re-yield the result returned by the delegate method. - return info; - } - - // The delegate iterator is finished, so forget it and continue with - // the outer generator. - context.delegate = null; - return ContinueSentinel; - } - - // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - defineIteratorMethods(Gp); - - Gp[toStringTagSymbol] = "Generator"; - - // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - Gp[iteratorSymbol] = function() { - return this; - }; - - Gp.toString = function() { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - runtime.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - // Return an iterator with no values. - return { next: doneResult }; - } - runtime.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - - this.method = "next"; - this.arg = undefined; - - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && - hasOwn.call(this, name) && - !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - - stop: function() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined; - } - - return !! caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, - - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined; - } - - return ContinueSentinel; - } - }; -})( - // In sloppy mode, unbound `this` refers to the global object, fallback to - // Function constructor if we're in global strict mode. That is sadly a form - // of indirect eval which violates Content Security Policy. - (function() { - return this || (typeof self === "object" && self); - })() || Function("return this")() -); - -},{}]},{},[1]); diff --git a/public/cdn/font-icon/font_2316098_umqusozousr.js b/public/cdn/font-icon/font_2316098_umqusozousr.js deleted file mode 100644 index b098acf..0000000 --- a/public/cdn/font-icon/font_2316098_umqusozousr.js +++ /dev/null @@ -1 +0,0 @@ -!function(c){var a,t,e,i,l,n,o='',d=(d=document.getElementsByTagName("script"))[d.length-1].getAttribute("data-injectcss");if(d&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function h(){l||(l=!0,e())}a=function(){var c,a,t,e;(e=document.createElement("div")).innerHTML=o,o=null,(t=e.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",c=t,(a=document.body).firstChild?(e=c,(t=a.firstChild).parentNode.insertBefore(e,t)):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),a()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(e=a,i=c.document,l=!1,(n=function(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(n,50)}h()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,h())})}(window); \ No newline at end of file diff --git a/public/color.less b/public/color.less deleted file mode 100644 index b5cd57b..0000000 --- a/public/color.less +++ /dev/null @@ -1,7720 +0,0 @@ -@primary-color: #069F99; -/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */ -/* stylelint-disable no-duplicate-selectors */ -/* stylelint-disable */ -.bezierEasingMixin() { - @functions: ~`(function() { - var NEWTON_ITERATIONS = 4; - var NEWTON_MIN_SLOPE = 0.001; - var SUBDIVISION_PRECISION = 0.0000001; - var SUBDIVISION_MAX_ITERATIONS = 10; - - var kSplineTableSize = 11; - var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); - - var float32ArraySupported = typeof Float32Array === 'function'; - - function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } - function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } - function C (aA1) { return 3.0 * aA1; } - - // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. - function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } - - // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. - function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } - - function binarySubdivide (aX, aA, aB, mX1, mX2) { - var currentX, currentT, i = 0; - do { - currentT = aA + (aB - aA) / 2.0; - currentX = calcBezier(currentT, mX1, mX2) - aX; - if (currentX > 0.0) { - aB = currentT; - } else { - aA = currentT; - } - } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); - return currentT; - } - - function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { - for (var i = 0; i < NEWTON_ITERATIONS; ++i) { - var currentSlope = getSlope(aGuessT, mX1, mX2); - if (currentSlope === 0.0) { - return aGuessT; - } - var currentX = calcBezier(aGuessT, mX1, mX2) - aX; - aGuessT -= currentX / currentSlope; - } - return aGuessT; - } - - var BezierEasing = function (mX1, mY1, mX2, mY2) { - if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { - throw new Error('bezier x values must be in [0, 1] range'); - } - - // Precompute samples table - var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); - if (mX1 !== mY1 || mX2 !== mY2) { - for (var i = 0; i < kSplineTableSize; ++i) { - sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); - } - } - - function getTForX (aX) { - var intervalStart = 0.0; - var currentSample = 1; - var lastSample = kSplineTableSize - 1; - - for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { - intervalStart += kSampleStepSize; - } - --currentSample; - - // Interpolate to provide an initial guess for t - var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); - var guessForT = intervalStart + dist * kSampleStepSize; - - var initialSlope = getSlope(guessForT, mX1, mX2); - if (initialSlope >= NEWTON_MIN_SLOPE) { - return newtonRaphsonIterate(aX, guessForT, mX1, mX2); - } else if (initialSlope === 0.0) { - return guessForT; - } else { - return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); - } - } - - return function BezierEasing (x) { - if (mX1 === mY1 && mX2 === mY2) { - return x; // linear - } - // Because JavaScript number are imprecise, we should guarantee the extremes are right. - if (x === 0) { - return 0; - } - if (x === 1) { - return 1; - } - return calcBezier(getTForX(x), mY1, mY2); - }; - }; - - this.colorEasing = BezierEasing(0.26, 0.09, 0.37, 0.18); - // less 3 requires a return - return ''; -})()`; -} -// It is hacky way to make this function will be compiled preferentially by less -// resolve error: `ReferenceError: colorPalette is not defined` -// https://github.com/ant-design/ant-motion/issues/44 -.bezierEasingMixin(); - -/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */ -.tinyColorMixin() { - @functions: ~`(function() { -// TinyColor v1.4.1 -// https://github.com/bgrins/TinyColor -// 2016-07-07, Brian Grinstead, MIT License -var trimLeft = /^\s+/, - trimRight = /\s+$/, - tinyCounter = 0, - mathRound = Math.round, - mathMin = Math.min, - mathMax = Math.max, - mathRandom = Math.random; - -function tinycolor (color, opts) { - - color = (color) ? color : ''; - opts = opts || { }; - - // If input is already a tinycolor, return itself - if (color instanceof tinycolor) { - return color; - } - // If we are called as a function, call using new instead - if (!(this instanceof tinycolor)) { - return new tinycolor(color, opts); - } - - var rgb = inputToRGB(color); - this._originalInput = color, - this._r = rgb.r, - this._g = rgb.g, - this._b = rgb.b, - this._a = rgb.a, - this._roundA = mathRound(100*this._a) / 100, - this._format = opts.format || rgb.format; - this._gradientType = opts.gradientType; - - // Don't let the range of [0,255] come back in [0,1]. - // Potentially lose a little bit of precision here, but will fix issues where - // .5 gets interpreted as half of the total, instead of half of 1 - // If it was supposed to be 128, this was already taken care of by inputToRgb - if (this._r < 1) { this._r = mathRound(this._r); } - if (this._g < 1) { this._g = mathRound(this._g); } - if (this._b < 1) { this._b = mathRound(this._b); } - - this._ok = rgb.ok; - this._tc_id = tinyCounter++; -} - -tinycolor.prototype = { - isDark: function() { - return this.getBrightness() < 128; - }, - isLight: function() { - return !this.isDark(); - }, - isValid: function() { - return this._ok; - }, - getOriginalInput: function() { - return this._originalInput; - }, - getFormat: function() { - return this._format; - }, - getAlpha: function() { - return this._a; - }, - getBrightness: function() { - //http://www.w3.org/TR/AERT#color-contrast - var rgb = this.toRgb(); - return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; - }, - getLuminance: function() { - //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef - var rgb = this.toRgb(); - var RsRGB, GsRGB, BsRGB, R, G, B; - RsRGB = rgb.r/255; - GsRGB = rgb.g/255; - BsRGB = rgb.b/255; - - if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);} - if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);} - if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);} - return (0.2126 * R) + (0.7152 * G) + (0.0722 * B); - }, - setAlpha: function(value) { - this._a = boundAlpha(value); - this._roundA = mathRound(100*this._a) / 100; - return this; - }, - toHsv: function() { - var hsv = rgbToHsv(this._r, this._g, this._b); - return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; - }, - toHsvString: function() { - var hsv = rgbToHsv(this._r, this._g, this._b); - var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); - return (this._a == 1) ? - "hsv(" + h + ", " + s + "%, " + v + "%)" : - "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")"; - }, - toHsl: function() { - var hsl = rgbToHsl(this._r, this._g, this._b); - return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; - }, - toHslString: function() { - var hsl = rgbToHsl(this._r, this._g, this._b); - var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); - return (this._a == 1) ? - "hsl(" + h + ", " + s + "%, " + l + "%)" : - "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")"; - }, - toHex: function(allow3Char) { - return rgbToHex(this._r, this._g, this._b, allow3Char); - }, - toHexString: function(allow3Char) { - return '#' + this.toHex(allow3Char); - }, - toHex8: function(allow4Char) { - return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); - }, - toHex8String: function(allow4Char) { - return '#' + this.toHex8(allow4Char); - }, - toRgb: function() { - return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; - }, - toRgbString: function() { - return (this._a == 1) ? - "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : - "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; - }, - toPercentageRgb: function() { - return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; - }, - toPercentageRgbString: function() { - return (this._a == 1) ? - "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : - "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; - }, - toName: function() { - if (this._a === 0) { - return "transparent"; - } - - if (this._a < 1) { - return false; - } - - return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; - }, - toFilter: function(secondColor) { - var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a); - var secondHex8String = hex8String; - var gradientType = this._gradientType ? "GradientType = 1, " : ""; - - if (secondColor) { - var s = tinycolor(secondColor); - secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a); - } - - return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; - }, - toString: function(format) { - var formatSet = !!format; - format = format || this._format; - - var formattedString = false; - var hasAlpha = this._a < 1 && this._a >= 0; - var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name"); - - if (needsAlphaFormat) { - // Special case for "transparent", all other non-alpha formats - // will return rgba when there is transparency. - if (format === "name" && this._a === 0) { - return this.toName(); - } - return this.toRgbString(); - } - if (format === "rgb") { - formattedString = this.toRgbString(); - } - if (format === "prgb") { - formattedString = this.toPercentageRgbString(); - } - if (format === "hex" || format === "hex6") { - formattedString = this.toHexString(); - } - if (format === "hex3") { - formattedString = this.toHexString(true); - } - if (format === "hex4") { - formattedString = this.toHex8String(true); - } - if (format === "hex8") { - formattedString = this.toHex8String(); - } - if (format === "name") { - formattedString = this.toName(); - } - if (format === "hsl") { - formattedString = this.toHslString(); - } - if (format === "hsv") { - formattedString = this.toHsvString(); - } - - return formattedString || this.toHexString(); - }, - clone: function() { - return tinycolor(this.toString()); - }, - - _applyModification: function(fn, args) { - var color = fn.apply(null, [this].concat([].slice.call(args))); - this._r = color._r; - this._g = color._g; - this._b = color._b; - this.setAlpha(color._a); - return this; - }, - lighten: function() { - return this._applyModification(lighten, arguments); - }, - brighten: function() { - return this._applyModification(brighten, arguments); - }, - darken: function() { - return this._applyModification(darken, arguments); - }, - desaturate: function() { - return this._applyModification(desaturate, arguments); - }, - saturate: function() { - return this._applyModification(saturate, arguments); - }, - greyscale: function() { - return this._applyModification(greyscale, arguments); - }, - spin: function() { - return this._applyModification(spin, arguments); - }, - - _applyCombination: function(fn, args) { - return fn.apply(null, [this].concat([].slice.call(args))); - }, - analogous: function() { - return this._applyCombination(analogous, arguments); - }, - complement: function() { - return this._applyCombination(complement, arguments); - }, - monochromatic: function() { - return this._applyCombination(monochromatic, arguments); - }, - splitcomplement: function() { - return this._applyCombination(splitcomplement, arguments); - }, - triad: function() { - return this._applyCombination(triad, arguments); - }, - tetrad: function() { - return this._applyCombination(tetrad, arguments); - } -}; - -// If input is an object, force 1 into "1.0" to handle ratios properly -// String input requires "1.0" as input, so 1 will be treated as 1 -tinycolor.fromRatio = function(color, opts) { - if (typeof color == "object") { - var newColor = {}; - for (var i in color) { - if (color.hasOwnProperty(i)) { - if (i === "a") { - newColor[i] = color[i]; - } - else { - newColor[i] = convertToPercentage(color[i]); - } - } - } - color = newColor; - } - - return tinycolor(color, opts); -}; - -// Given a string or object, convert that input to RGB -// Possible string inputs: -// -// "red" -// "#f00" or "f00" -// "#ff0000" or "ff0000" -// "#ff000000" or "ff000000" -// "rgb 255 0 0" or "rgb (255, 0, 0)" -// "rgb 1.0 0 0" or "rgb (1, 0, 0)" -// "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" -// "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" -// "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" -// "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" -// "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" -// -function inputToRGB(color) { - - var rgb = { r: 0, g: 0, b: 0 }; - var a = 1; - var s = null; - var v = null; - var l = null; - var ok = false; - var format = false; - - if (typeof color == "string") { - color = stringInputToObject(color); - } - - if (typeof color == "object") { - if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { - rgb = rgbToRgb(color.r, color.g, color.b); - ok = true; - format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; - } - else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { - s = convertToPercentage(color.s); - v = convertToPercentage(color.v); - rgb = hsvToRgb(color.h, s, v); - ok = true; - format = "hsv"; - } - else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { - s = convertToPercentage(color.s); - l = convertToPercentage(color.l); - rgb = hslToRgb(color.h, s, l); - ok = true; - format = "hsl"; - } - - if (color.hasOwnProperty("a")) { - a = color.a; - } - } - - a = boundAlpha(a); - - return { - ok: ok, - format: color.format || format, - r: mathMin(255, mathMax(rgb.r, 0)), - g: mathMin(255, mathMax(rgb.g, 0)), - b: mathMin(255, mathMax(rgb.b, 0)), - a: a - }; -} - -// Conversion Functions -// -------------------- - -// rgbToHsl, rgbToHsv, hslToRgb, hsvToRgb modified from: -// - -// rgbToRgb -// Handle bounds / percentage checking to conform to CSS color spec -// -// *Assumes:* r, g, b in [0, 255] or [0, 1] -// *Returns:* { r, g, b } in [0, 255] -function rgbToRgb(r, g, b){ - return { - r: bound01(r, 255) * 255, - g: bound01(g, 255) * 255, - b: bound01(b, 255) * 255 - }; -} - -// rgbToHsl -// Converts an RGB color value to HSL. -// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] -// *Returns:* { h, s, l } in [0,1] -function rgbToHsl(r, g, b) { - - r = bound01(r, 255); - g = bound01(g, 255); - b = bound01(b, 255); - - var max = mathMax(r, g, b), min = mathMin(r, g, b); - var h, s, l = (max + min) / 2; - - if(max == min) { - h = s = 0; // achromatic - } - else { - var d = max - min; - s = l > 0.5 ? d / (2 - max - min) : d / (max + min); - switch(max) { - case r: h = (g - b) / d + (g < b ? 6 : 0); break; - case g: h = (b - r) / d + 2; break; - case b: h = (r - g) / d + 4; break; - } - - h /= 6; - } - - return { h: h, s: s, l: l }; -} - -// hslToRgb -// Converts an HSL color value to RGB. -// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] -// *Returns:* { r, g, b } in the set [0, 255] -function hslToRgb(h, s, l) { - var r, g, b; - - h = bound01(h, 360); - s = bound01(s, 100); - l = bound01(l, 100); - - function hue2rgb(p, q, t) { - if(t < 0) t += 1; - if(t > 1) t -= 1; - if(t < 1/6) return p + (q - p) * 6 * t; - if(t < 1/2) return q; - if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; - return p; - } - - if(s === 0) { - r = g = b = l; // achromatic - } - else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1/3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1/3); - } - - return { r: r * 255, g: g * 255, b: b * 255 }; -} - -// rgbToHsv -// Converts an RGB color value to HSV -// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] -// *Returns:* { h, s, v } in [0,1] -function rgbToHsv(r, g, b) { - - r = bound01(r, 255); - g = bound01(g, 255); - b = bound01(b, 255); - - var max = mathMax(r, g, b), min = mathMin(r, g, b); - var h, s, v = max; - - var d = max - min; - s = max === 0 ? 0 : d / max; - - if(max == min) { - h = 0; // achromatic - } - else { - switch(max) { - case r: h = (g - b) / d + (g < b ? 6 : 0); break; - case g: h = (b - r) / d + 2; break; - case b: h = (r - g) / d + 4; break; - } - h /= 6; - } - return { h: h, s: s, v: v }; -} - -// hsvToRgb -// Converts an HSV color value to RGB. -// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] -// *Returns:* { r, g, b } in the set [0, 255] - function hsvToRgb(h, s, v) { - - h = bound01(h, 360) * 6; - s = bound01(s, 100); - v = bound01(v, 100); - - var i = Math.floor(h), - f = h - i, - p = v * (1 - s), - q = v * (1 - f * s), - t = v * (1 - (1 - f) * s), - mod = i % 6, - r = [v, q, p, p, t, v][mod], - g = [t, v, v, q, p, p][mod], - b = [p, p, t, v, v, q][mod]; - - return { r: r * 255, g: g * 255, b: b * 255 }; -} - -// rgbToHex -// Converts an RGB color to hex -// Assumes r, g, and b are contained in the set [0, 255] -// Returns a 3 or 6 character hex -function rgbToHex(r, g, b, allow3Char) { - - var hex = [ - pad2(mathRound(r).toString(16)), - pad2(mathRound(g).toString(16)), - pad2(mathRound(b).toString(16)) - ]; - - // Return a 3 character hex if possible - if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { - return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); - } - - return hex.join(""); -} - -// rgbaToHex -// Converts an RGBA color plus alpha transparency to hex -// Assumes r, g, b are contained in the set [0, 255] and -// a in [0, 1]. Returns a 4 or 8 character rgba hex -function rgbaToHex(r, g, b, a, allow4Char) { - - var hex = [ - pad2(mathRound(r).toString(16)), - pad2(mathRound(g).toString(16)), - pad2(mathRound(b).toString(16)), - pad2(convertDecimalToHex(a)) - ]; - - // Return a 4 character hex if possible - if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) { - return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); - } - - return hex.join(""); -} - -// rgbaToArgbHex -// Converts an RGBA color to an ARGB Hex8 string -// Rarely used, but required for "toFilter()" -function rgbaToArgbHex(r, g, b, a) { - - var hex = [ - pad2(convertDecimalToHex(a)), - pad2(mathRound(r).toString(16)), - pad2(mathRound(g).toString(16)), - pad2(mathRound(b).toString(16)) - ]; - - return hex.join(""); -} - -// equals -// Can be called with any tinycolor input -tinycolor.equals = function (color1, color2) { - if (!color1 || !color2) { return false; } - return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); -}; - -tinycolor.random = function() { - return tinycolor.fromRatio({ - r: mathRandom(), - g: mathRandom(), - b: mathRandom() - }); -}; - -// Modification Functions -// ---------------------- -// Thanks to less.js for some of the basics here -// - -function desaturate(color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.s -= amount / 100; - hsl.s = clamp01(hsl.s); - return tinycolor(hsl); -} - -function saturate(color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.s += amount / 100; - hsl.s = clamp01(hsl.s); - return tinycolor(hsl); -} - -function greyscale(color) { - return tinycolor(color).desaturate(100); -} - -function lighten (color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.l += amount / 100; - hsl.l = clamp01(hsl.l); - return tinycolor(hsl); -} - -function brighten(color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var rgb = tinycolor(color).toRgb(); - rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100)))); - rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100)))); - rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100)))); - return tinycolor(rgb); -} - -function darken (color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.l -= amount / 100; - hsl.l = clamp01(hsl.l); - return tinycolor(hsl); -} - -// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. -// Values outside of this range will be wrapped into this range. -function spin(color, amount) { - var hsl = tinycolor(color).toHsl(); - var hue = (hsl.h + amount) % 360; - hsl.h = hue < 0 ? 360 + hue : hue; - return tinycolor(hsl); -} - -// Combination Functions -// --------------------- -// Thanks to jQuery xColor for some of the ideas behind these -// - -function complement(color) { - var hsl = tinycolor(color).toHsl(); - hsl.h = (hsl.h + 180) % 360; - return tinycolor(hsl); -} - -function triad(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [ - tinycolor(color), - tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), - tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) - ]; -} - -function tetrad(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [ - tinycolor(color), - tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), - tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), - tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) - ]; -} - -function splitcomplement(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [ - tinycolor(color), - tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), - tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) - ]; -} - -function analogous(color, results, slices) { - results = results || 6; - slices = slices || 30; - - var hsl = tinycolor(color).toHsl(); - var part = 360 / slices; - var ret = [tinycolor(color)]; - - for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { - hsl.h = (hsl.h + part) % 360; - ret.push(tinycolor(hsl)); - } - return ret; -} - -function monochromatic(color, results) { - results = results || 6; - var hsv = tinycolor(color).toHsv(); - var h = hsv.h, s = hsv.s, v = hsv.v; - var ret = []; - var modification = 1 / results; - - while (results--) { - ret.push(tinycolor({ h: h, s: s, v: v})); - v = (v + modification) % 1; - } - - return ret; -} - -// Utility Functions -// --------------------- - -tinycolor.mix = function(color1, color2, amount) { - amount = (amount === 0) ? 0 : (amount || 50); - - var rgb1 = tinycolor(color1).toRgb(); - var rgb2 = tinycolor(color2).toRgb(); - - var p = amount / 100; - - var rgba = { - r: ((rgb2.r - rgb1.r) * p) + rgb1.r, - g: ((rgb2.g - rgb1.g) * p) + rgb1.g, - b: ((rgb2.b - rgb1.b) * p) + rgb1.b, - a: ((rgb2.a - rgb1.a) * p) + rgb1.a - }; - - return tinycolor(rgba); -}; - -// Readability Functions -// --------------------- -// false -// tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false -tinycolor.isReadable = function(color1, color2, wcag2) { - var readability = tinycolor.readability(color1, color2); - var wcag2Parms, out; - - out = false; - - wcag2Parms = validateWCAG2Parms(wcag2); - switch (wcag2Parms.level + wcag2Parms.size) { - case "AAsmall": - case "AAAlarge": - out = readability >= 4.5; - break; - case "AAlarge": - out = readability >= 3; - break; - case "AAAsmall": - out = readability >= 7; - break; - } - return out; - -}; - -// mostReadable -// Given a base color and a list of possible foreground or background -// colors for that base, returns the most readable color. -// Optionally returns Black or White if the most readable color is unreadable. -// *Example* -// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" -// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" -// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3" -// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff" -tinycolor.mostReadable = function(baseColor, colorList, args) { - var bestColor = null; - var bestScore = 0; - var readability; - var includeFallbackColors, level, size ; - args = args || {}; - includeFallbackColors = args.includeFallbackColors ; - level = args.level; - size = args.size; - - for (var i= 0; i < colorList.length ; i++) { - readability = tinycolor.readability(baseColor, colorList[i]); - if (readability > bestScore) { - bestScore = readability; - bestColor = tinycolor(colorList[i]); - } - } - - if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) { - return bestColor; - } - else { - args.includeFallbackColors=false; - return tinycolor.mostReadable(baseColor,["#fff", "#000"],args); - } -}; - -// Big List of Colors -// ------------------ -// -var names = tinycolor.names = { - aliceblue: "f0f8ff", - antiquewhite: "faebd7", - aqua: "0ff", - aquamarine: "7fffd4", - azure: "f0ffff", - beige: "f5f5dc", - bisque: "ffe4c4", - black: "000", - blanchedalmond: "ffebcd", - blue: "00f", - blueviolet: "8a2be2", - brown: "a52a2a", - burlywood: "deb887", - burntsienna: "ea7e5d", - cadetblue: "5f9ea0", - chartreuse: "7fff00", - chocolate: "d2691e", - coral: "ff7f50", - cornflowerblue: "6495ed", - cornsilk: "fff8dc", - crimson: "dc143c", - cyan: "0ff", - darkblue: "00008b", - darkcyan: "008b8b", - darkgoldenrod: "b8860b", - darkgray: "a9a9a9", - darkgreen: "006400", - darkgrey: "a9a9a9", - darkkhaki: "bdb76b", - darkmagenta: "8b008b", - darkolivegreen: "556b2f", - darkorange: "ff8c00", - darkorchid: "9932cc", - darkred: "8b0000", - darksalmon: "e9967a", - darkseagreen: "8fbc8f", - darkslateblue: "483d8b", - darkslategray: "2f4f4f", - darkslategrey: "2f4f4f", - darkturquoise: "00ced1", - darkviolet: "9400d3", - deeppink: "ff1493", - deepskyblue: "00bfff", - dimgray: "696969", - dimgrey: "696969", - dodgerblue: "1e90ff", - firebrick: "b22222", - floralwhite: "fffaf0", - forestgreen: "228b22", - fuchsia: "f0f", - gainsboro: "dcdcdc", - ghostwhite: "f8f8ff", - gold: "ffd700", - goldenrod: "daa520", - gray: "808080", - green: "008000", - greenyellow: "adff2f", - grey: "808080", - honeydew: "f0fff0", - hotpink: "ff69b4", - indianred: "cd5c5c", - indigo: "4b0082", - ivory: "fffff0", - khaki: "f0e68c", - lavender: "e6e6fa", - lavenderblush: "fff0f5", - lawngreen: "7cfc00", - lemonchiffon: "fffacd", - lightblue: "add8e6", - lightcoral: "f08080", - lightcyan: "e0ffff", - lightgoldenrodyellow: "fafad2", - lightgray: "d3d3d3", - lightgreen: "90ee90", - lightgrey: "d3d3d3", - lightpink: "ffb6c1", - lightsalmon: "ffa07a", - lightseagreen: "20b2aa", - lightskyblue: "87cefa", - lightslategray: "789", - lightslategrey: "789", - lightsteelblue: "b0c4de", - lightyellow: "ffffe0", - lime: "0f0", - limegreen: "32cd32", - linen: "faf0e6", - magenta: "f0f", - maroon: "800000", - mediumaquamarine: "66cdaa", - mediumblue: "0000cd", - mediumorchid: "ba55d3", - mediumpurple: "9370db", - mediumseagreen: "3cb371", - mediumslateblue: "7b68ee", - mediumspringgreen: "00fa9a", - mediumturquoise: "48d1cc", - mediumvioletred: "c71585", - midnightblue: "191970", - mintcream: "f5fffa", - mistyrose: "ffe4e1", - moccasin: "ffe4b5", - navajowhite: "ffdead", - navy: "000080", - oldlace: "fdf5e6", - olive: "808000", - olivedrab: "6b8e23", - orange: "ffa500", - orangered: "ff4500", - orchid: "da70d6", - palegoldenrod: "eee8aa", - palegreen: "98fb98", - paleturquoise: "afeeee", - palevioletred: "db7093", - papayawhip: "ffefd5", - peachpuff: "ffdab9", - peru: "cd853f", - pink: "ffc0cb", - plum: "dda0dd", - powderblue: "b0e0e6", - purple: "800080", - rebeccapurple: "663399", - red: "f00", - rosybrown: "bc8f8f", - royalblue: "4169e1", - saddlebrown: "8b4513", - salmon: "fa8072", - sandybrown: "f4a460", - seagreen: "2e8b57", - seashell: "fff5ee", - sienna: "a0522d", - silver: "c0c0c0", - skyblue: "87ceeb", - slateblue: "6a5acd", - slategray: "708090", - slategrey: "708090", - snow: "fffafa", - springgreen: "00ff7f", - steelblue: "4682b4", - tan: "d2b48c", - teal: "008080", - thistle: "d8bfd8", - tomato: "ff6347", - turquoise: "40e0d0", - violet: "ee82ee", - wheat: "f5deb3", - white: "fff", - whitesmoke: "f5f5f5", - yellow: "ff0", - yellowgreen: "9acd32" -}; - -// Make it easy to access colors via hexNames[hex] -var hexNames = tinycolor.hexNames = flip(names); - -// Utilities -// --------- - -// { 'name1': 'val1' } becomes { 'val1': 'name1' } -function flip(o) { - var flipped = { }; - for (var i in o) { - if (o.hasOwnProperty(i)) { - flipped[o[i]] = i; - } - } - return flipped; -} - -// Return a valid alpha value [0,1] with all invalid values being set to 1 -function boundAlpha(a) { - a = parseFloat(a); - - if (isNaN(a) || a < 0 || a > 1) { - a = 1; - } - - return a; -} - -// Take input from [0, n] and return it as [0, 1] -function bound01(n, max) { - if (isOnePointZero(n)) { n = "100%"; } - - var processPercent = isPercentage(n); - n = mathMin(max, mathMax(0, parseFloat(n))); - - // Automatically convert percentage into number - if (processPercent) { - n = parseInt(n * max, 10) / 100; - } - - // Handle floating point rounding errors - if ((Math.abs(n - max) < 0.000001)) { - return 1; - } - - // Convert into [0, 1] range if it isn't already - return (n % max) / parseFloat(max); -} - -// Force a number between 0 and 1 -function clamp01(val) { - return mathMin(1, mathMax(0, val)); -} - -// Parse a base-16 hex value into a base-10 integer -function parseIntFromHex(val) { - return parseInt(val, 16); -} - -// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 -// -function isOnePointZero(n) { - return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; -} - -// Check to see if string passed in is a percentage -function isPercentage(n) { - return typeof n === "string" && n.indexOf('%') != -1; -} - -// Force a hex value to have 2 characters -function pad2(c) { - return c.length == 1 ? '0' + c : '' + c; -} - -// Replace a decimal with it's percentage value -function convertToPercentage(n) { - if (n <= 1) { - n = (n * 100) + "%"; - } - - return n; -} - -// Converts a decimal to a hex value -function convertDecimalToHex(d) { - return Math.round(parseFloat(d) * 255).toString(16); -} -// Converts a hex value to a decimal -function convertHexToDecimal(h) { - return (parseIntFromHex(h) / 255); -} - -var matchers = (function() { - - // - var CSS_INTEGER = "[-\\+]?\\d+%?"; - - // - var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; - - // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. - var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; - - // Actual matching. - // Parentheses and commas are optional, but not required. - // Whitespace can take the place of commas or opening paren - var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; - var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; - - return { - CSS_UNIT: new RegExp(CSS_UNIT), - rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), - rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), - hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), - hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), - hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), - hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), - hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, - hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ - }; -})(); - -// isValidCSSUnit -// Take in a single string / number and check to see if it looks like a CSS unit -// (see matchers above for definition). -function isValidCSSUnit(color) { - return !!matchers.CSS_UNIT.exec(color); -} - -// stringInputToObject -// Permissive string parsing. Take in a number of formats, and output an object -// based on detected format. Returns { r, g, b } or { h, s, l } or { h, s, v} -function stringInputToObject(color) { - - color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase(); - var named = false; - if (names[color]) { - color = names[color]; - named = true; - } - else if (color == 'transparent') { - return { r: 0, g: 0, b: 0, a: 0, format: "name" }; - } - - // Try to match string input using regular expressions. - // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] - // Just return an object and let the conversion functions handle that. - // This way the result will be the same whether the tinycolor is initialized with string or object. - var match; - if ((match = matchers.rgb.exec(color))) { - return { r: match[1], g: match[2], b: match[3] }; - } - if ((match = matchers.rgba.exec(color))) { - return { r: match[1], g: match[2], b: match[3], a: match[4] }; - } - if ((match = matchers.hsl.exec(color))) { - return { h: match[1], s: match[2], l: match[3] }; - } - if ((match = matchers.hsla.exec(color))) { - return { h: match[1], s: match[2], l: match[3], a: match[4] }; - } - if ((match = matchers.hsv.exec(color))) { - return { h: match[1], s: match[2], v: match[3] }; - } - if ((match = matchers.hsva.exec(color))) { - return { h: match[1], s: match[2], v: match[3], a: match[4] }; - } - if ((match = matchers.hex8.exec(color))) { - return { - r: parseIntFromHex(match[1]), - g: parseIntFromHex(match[2]), - b: parseIntFromHex(match[3]), - a: convertHexToDecimal(match[4]), - format: named ? "name" : "hex8" - }; - } - if ((match = matchers.hex6.exec(color))) { - return { - r: parseIntFromHex(match[1]), - g: parseIntFromHex(match[2]), - b: parseIntFromHex(match[3]), - format: named ? "name" : "hex" - }; - } - if ((match = matchers.hex4.exec(color))) { - return { - r: parseIntFromHex(match[1] + '' + match[1]), - g: parseIntFromHex(match[2] + '' + match[2]), - b: parseIntFromHex(match[3] + '' + match[3]), - a: convertHexToDecimal(match[4] + '' + match[4]), - format: named ? "name" : "hex8" - }; - } - if ((match = matchers.hex3.exec(color))) { - return { - r: parseIntFromHex(match[1] + '' + match[1]), - g: parseIntFromHex(match[2] + '' + match[2]), - b: parseIntFromHex(match[3] + '' + match[3]), - format: named ? "name" : "hex" - }; - } - - return false; -} - -function validateWCAG2Parms(parms) { - // return valid WCAG2 parms for isReadable. - // If input parms are invalid, return {"level":"AA", "size":"small"} - var level, size; - parms = parms || {"level":"AA", "size":"small"}; - level = (parms.level || "AA").toUpperCase(); - size = (parms.size || "small").toLowerCase(); - if (level !== "AA" && level !== "AAA") { - level = "AA"; - } - if (size !== "small" && size !== "large") { - size = "small"; - } - return {"level":level, "size":size}; -} - -this.tinycolor = tinycolor; - -})()`; -} -// It is hacky way to make this function will be compiled preferentially by less -// resolve error: `ReferenceError: colorPalette is not defined` -// https://github.com/ant-design/ant-motion/issues/44 -.tinyColorMixin(); - -// We create a very complex algorithm which take the place of original tint/shade color system -// to make sure no one can understand it 👻 -// and create an entire color palette magicly by inputing just a single primary color. -// We are using bezier-curve easing function and some color manipulations like tint/shade/darken/spin -.colorPaletteMixin() { - @functions: ~`(function() { - var hueStep = 2; - var saturationStep = 16; - var saturationStep2 = 5; - var brightnessStep1 = 5; - var brightnessStep2 = 15; - var lightColorCount = 5; - var darkColorCount = 4; - - var getHue = function(hsv, i, isLight) { - var hue; - if (hsv.h >= 60 && hsv.h <= 240) { - hue = isLight ? hsv.h - hueStep * i : hsv.h + hueStep * i; - } else { - hue = isLight ? hsv.h + hueStep * i : hsv.h - hueStep * i; - } - if (hue < 0) { - hue += 360; - } else if (hue >= 360) { - hue -= 360; - } - return Math.round(hue); - }; - var getSaturation = function(hsv, i, isLight) { - var saturation; - if (isLight) { - saturation = Math.round(hsv.s * 100) - saturationStep * i; - } else if (i == darkColorCount) { - saturation = Math.round(hsv.s * 100) + saturationStep; - } else { - saturation = Math.round(hsv.s * 100) + saturationStep2 * i; - } - if (saturation > 100) { - saturation = 100; - } - if (isLight && i === lightColorCount && saturation > 10) { - saturation = 10; - } - if (saturation < 6) { - saturation = 6; - } - return Math.round(saturation); - }; - var getValue = function(hsv, i, isLight) { - if (isLight) { - return Math.round(hsv.v * 100) + brightnessStep1 * i; - } - return Math.round(hsv.v * 100) - brightnessStep2 * i; - }; - - this.colorPalette = function(color, index) { - var isLight = index <= 6; - var hsv = tinycolor(color).toHsv(); - var i = isLight ? lightColorCount + 1 - index : index - lightColorCount - 1; - return tinycolor({ - h: getHue(hsv, i, isLight), - s: getSaturation(hsv, i, isLight), - v: getValue(hsv, i, isLight), - }).toHexString(); - }; -})()`; -} -// It is hacky way to make this function will be compiled preferentially by less -// resolve error: `ReferenceError: colorPalette is not defined` -// https://github.com/ant-design/ant-motion/issues/44 -.colorPaletteMixin(); - -// color palettes -@blue-1: color(~`colorPalette("@{blue-6}", 1)`); -@blue-2: color(~`colorPalette("@{blue-6}", 2)`); -@blue-3: color(~`colorPalette("@{blue-6}", 3)`); -@blue-4: color(~`colorPalette("@{blue-6}", 4)`); -@blue-5: color(~`colorPalette("@{blue-6}", 5)`); -@blue-6: #1890ff; -@blue-7: color(~`colorPalette("@{blue-6}", 7)`); -@blue-8: color(~`colorPalette("@{blue-6}", 8)`); -@blue-9: color(~`colorPalette("@{blue-6}", 9)`); -@blue-10: color(~`colorPalette("@{blue-6}", 10)`); - -@purple-1: color(~`colorPalette("@{purple-6}", 1)`); -@purple-2: color(~`colorPalette("@{purple-6}", 2)`); -@purple-3: color(~`colorPalette("@{purple-6}", 3)`); -@purple-4: color(~`colorPalette("@{purple-6}", 4)`); -@purple-5: color(~`colorPalette("@{purple-6}", 5)`); -@purple-6: #722ed1; -@purple-7: color(~`colorPalette("@{purple-6}", 7)`); -@purple-8: color(~`colorPalette("@{purple-6}", 8)`); -@purple-9: color(~`colorPalette("@{purple-6}", 9)`); -@purple-10: color(~`colorPalette("@{purple-6}", 10)`); - -@cyan-1: color(~`colorPalette("@{cyan-6}", 1)`); -@cyan-2: color(~`colorPalette("@{cyan-6}", 2)`); -@cyan-3: color(~`colorPalette("@{cyan-6}", 3)`); -@cyan-4: color(~`colorPalette("@{cyan-6}", 4)`); -@cyan-5: color(~`colorPalette("@{cyan-6}", 5)`); -@cyan-6: #13c2c2; -@cyan-7: color(~`colorPalette("@{cyan-6}", 7)`); -@cyan-8: color(~`colorPalette("@{cyan-6}", 8)`); -@cyan-9: color(~`colorPalette("@{cyan-6}", 9)`); -@cyan-10: color(~`colorPalette("@{cyan-6}", 10)`); - -@green-1: color(~`colorPalette("@{green-6}", 1)`); -@green-2: color(~`colorPalette("@{green-6}", 2)`); -@green-3: color(~`colorPalette("@{green-6}", 3)`); -@green-4: color(~`colorPalette("@{green-6}", 4)`); -@green-5: color(~`colorPalette("@{green-6}", 5)`); -@green-6: #52c41a; -@green-7: color(~`colorPalette("@{green-6}", 7)`); -@green-8: color(~`colorPalette("@{green-6}", 8)`); -@green-9: color(~`colorPalette("@{green-6}", 9)`); -@green-10: color(~`colorPalette("@{green-6}", 10)`); - -@magenta-1: color(~`colorPalette("@{magenta-6}", 1)`); -@magenta-2: color(~`colorPalette("@{magenta-6}", 2)`); -@magenta-3: color(~`colorPalette("@{magenta-6}", 3)`); -@magenta-4: color(~`colorPalette("@{magenta-6}", 4)`); -@magenta-5: color(~`colorPalette("@{magenta-6}", 5)`); -@magenta-6: #eb2f96; -@magenta-7: color(~`colorPalette("@{magenta-6}", 7)`); -@magenta-8: color(~`colorPalette("@{magenta-6}", 8)`); -@magenta-9: color(~`colorPalette("@{magenta-6}", 9)`); -@magenta-10: color(~`colorPalette("@{magenta-6}", 10)`); - -// alias of magenta -@pink-1: color(~`colorPalette("@{pink-6}", 1)`); -@pink-2: color(~`colorPalette("@{pink-6}", 2)`); -@pink-3: color(~`colorPalette("@{pink-6}", 3)`); -@pink-4: color(~`colorPalette("@{pink-6}", 4)`); -@pink-5: color(~`colorPalette("@{pink-6}", 5)`); -@pink-6: #eb2f96; -@pink-7: color(~`colorPalette("@{pink-6}", 7)`); -@pink-8: color(~`colorPalette("@{pink-6}", 8)`); -@pink-9: color(~`colorPalette("@{pink-6}", 9)`); -@pink-10: color(~`colorPalette("@{pink-6}", 10)`); - -@red-1: color(~`colorPalette("@{red-6}", 1)`); -@red-2: color(~`colorPalette("@{red-6}", 2)`); -@red-3: color(~`colorPalette("@{red-6}", 3)`); -@red-4: color(~`colorPalette("@{red-6}", 4)`); -@red-5: color(~`colorPalette("@{red-6}", 5)`); -@red-6: #f5222d; -@red-7: color(~`colorPalette("@{red-6}", 7)`); -@red-8: color(~`colorPalette("@{red-6}", 8)`); -@red-9: color(~`colorPalette("@{red-6}", 9)`); -@red-10: color(~`colorPalette("@{red-6}", 10)`); - -@orange-1: color(~`colorPalette("@{orange-6}", 1)`); -@orange-2: color(~`colorPalette("@{orange-6}", 2)`); -@orange-3: color(~`colorPalette("@{orange-6}", 3)`); -@orange-4: color(~`colorPalette("@{orange-6}", 4)`); -@orange-5: color(~`colorPalette("@{orange-6}", 5)`); -@orange-6: #fa8c16; -@orange-7: color(~`colorPalette("@{orange-6}", 7)`); -@orange-8: color(~`colorPalette("@{orange-6}", 8)`); -@orange-9: color(~`colorPalette("@{orange-6}", 9)`); -@orange-10: color(~`colorPalette("@{orange-6}", 10)`); - -@yellow-1: color(~`colorPalette("@{yellow-6}", 1)`); -@yellow-2: color(~`colorPalette("@{yellow-6}", 2)`); -@yellow-3: color(~`colorPalette("@{yellow-6}", 3)`); -@yellow-4: color(~`colorPalette("@{yellow-6}", 4)`); -@yellow-5: color(~`colorPalette("@{yellow-6}", 5)`); -@yellow-6: #fadb14; -@yellow-7: color(~`colorPalette("@{yellow-6}", 7)`); -@yellow-8: color(~`colorPalette("@{yellow-6}", 8)`); -@yellow-9: color(~`colorPalette("@{yellow-6}", 9)`); -@yellow-10: color(~`colorPalette("@{yellow-6}", 10)`); - -@volcano-1: color(~`colorPalette("@{volcano-6}", 1)`); -@volcano-2: color(~`colorPalette("@{volcano-6}", 2)`); -@volcano-3: color(~`colorPalette("@{volcano-6}", 3)`); -@volcano-4: color(~`colorPalette("@{volcano-6}", 4)`); -@volcano-5: color(~`colorPalette("@{volcano-6}", 5)`); -@volcano-6: #fa541c; -@volcano-7: color(~`colorPalette("@{volcano-6}", 7)`); -@volcano-8: color(~`colorPalette("@{volcano-6}", 8)`); -@volcano-9: color(~`colorPalette("@{volcano-6}", 9)`); -@volcano-10: color(~`colorPalette("@{volcano-6}", 10)`); - -@geekblue-1: color(~`colorPalette("@{geekblue-6}", 1)`); -@geekblue-2: color(~`colorPalette("@{geekblue-6}", 2)`); -@geekblue-3: color(~`colorPalette("@{geekblue-6}", 3)`); -@geekblue-4: color(~`colorPalette("@{geekblue-6}", 4)`); -@geekblue-5: color(~`colorPalette("@{geekblue-6}", 5)`); -@geekblue-6: #2f54eb; -@geekblue-7: color(~`colorPalette("@{geekblue-6}", 7)`); -@geekblue-8: color(~`colorPalette("@{geekblue-6}", 8)`); -@geekblue-9: color(~`colorPalette("@{geekblue-6}", 9)`); -@geekblue-10: color(~`colorPalette("@{geekblue-6}", 10)`); - -@lime-1: color(~`colorPalette("@{lime-6}", 1)`); -@lime-2: color(~`colorPalette("@{lime-6}", 2)`); -@lime-3: color(~`colorPalette("@{lime-6}", 3)`); -@lime-4: color(~`colorPalette("@{lime-6}", 4)`); -@lime-5: color(~`colorPalette("@{lime-6}", 5)`); -@lime-6: #a0d911; -@lime-7: color(~`colorPalette("@{lime-6}", 7)`); -@lime-8: color(~`colorPalette("@{lime-6}", 8)`); -@lime-9: color(~`colorPalette("@{lime-6}", 9)`); -@lime-10: color(~`colorPalette("@{lime-6}", 10)`); - -@gold-1: color(~`colorPalette("@{gold-6}", 1)`); -@gold-2: color(~`colorPalette("@{gold-6}", 2)`); -@gold-3: color(~`colorPalette("@{gold-6}", 3)`); -@gold-4: color(~`colorPalette("@{gold-6}", 4)`); -@gold-5: color(~`colorPalette("@{gold-6}", 5)`); -@gold-6: #faad14; -@gold-7: color(~`colorPalette("@{gold-6}", 7)`); -@gold-8: color(~`colorPalette("@{gold-6}", 8)`); -@gold-9: color(~`colorPalette("@{gold-6}", 9)`); -@gold-10: color(~`colorPalette("@{gold-6}", 10)`); - -// The prefix to use on all css classes from ant. -@ant-prefix : ant; - -// -------- Colors ----------- - -@info-color : @blue-6; -@success-color : @green-6; -@processing-color : @blue-6; -@error-color : @red-6; -@highlight-color : @red-6; -@warning-color : @gold-6; -@normal-color : #d9d9d9; - -// Color used by default to control hover and active backgrounds and for -// alert info backgrounds. -@primary-1: color(~`colorPalette("@{primary-color}", 1)`); // replace tint(@primary-color, 90%) -@primary-2: color(~`colorPalette("@{primary-color}", 2)`); // replace tint(@primary-color, 80%) -@primary-3: color(~`colorPalette("@{primary-color}", 3)`); // unused -@primary-4: color(~`colorPalette("@{primary-color}", 4)`); // unused -@primary-5: color(~`colorPalette("@{primary-color}", 5)`); // color used to control the text color in many active and hover states, replace tint(@primary-color, 20%) -@primary-6: @primary-color; // color used to control the text color of active buttons, don't use, use @primary-color -@primary-7: color(~`colorPalette("@{primary-color}", 7)`); // replace shade(@primary-color, 5%) -@primary-8: color(~`colorPalette("@{primary-color}", 8)`); // unused -@primary-9: color(~`colorPalette("@{primary-color}", 9)`); // unused -@primary-10: color(~`colorPalette("@{primary-color}", 10)`); // unused - -// Base Scaffolding Variables -// --- - -// Background color for `` -@body-background : #fff; -// Base background color for most components -@component-background : #fff; -@font-family : "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, -"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; -@code-family : "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; -@heading-color : fade(#000, 85%); -@text-color : fade(#000, 65%); -@text-color-secondary : fade(#000, 45%); -@heading-color-dark : fade(#fff, 100%); -@text-color-dark : fade(#fff, 85%); -@text-color-secondary-dark: fade(#fff, 65%); -@font-size-base : 14px; -@font-size-lg : @font-size-base + 2px; -@font-size-sm : 12px; -@line-height-base : 1.5; -@border-radius-base : 4px; -@border-radius-sm : 2px; - -// vertical paddings -@padding-lg : 24px; // containers -@padding-md : 16px; // small containers and buttons -@padding-sm : 12px; // Form controls and items -@padding-xs : 8px; // small items - -// vertical padding for all form controls -@control-padding-horizontal: @padding-sm; -@control-padding-horizontal-sm: @padding-xs; - -// The background colors for active and hover states for things like -// list items or table cells. -@item-active-bg : @primary-1; -@item-hover-bg : @primary-1; - -// ICONFONT -@iconfont-css-prefix : anticon; - -// LINK -@link-color : @primary-color; -@link-hover-color : color(~`colorPalette("@{link-color}", 5)`); -@link-active-color : color(~`colorPalette("@{link-color}", 7)`); -@link-decoration : none; -@link-hover-decoration : none; - -// Animation -@ease-base-out : cubic-bezier(0.7, 0.3, 0.1, 1); -@ease-base-in : cubic-bezier(0.9, 0, 0.3, 0.7); -@ease-out : cubic-bezier(0.215, 0.61, 0.355, 1); -@ease-in : cubic-bezier(0.55, 0.055, 0.675, 0.19); -@ease-in-out : cubic-bezier(0.645, 0.045, 0.355, 1); -@ease-out-back : cubic-bezier(0.12, 0.4, 0.29, 1.46); -@ease-in-back : cubic-bezier(0.71, -0.46, 0.88, 0.6); -@ease-in-out-back : cubic-bezier(0.71, -0.46, 0.29, 1.46); -@ease-out-circ : cubic-bezier(0.08, 0.82, 0.17, 1); -@ease-in-circ : cubic-bezier(0.6, 0.04, 0.98, 0.34); -@ease-in-out-circ : cubic-bezier(0.78, 0.14, 0.15, 0.86); -@ease-out-quint : cubic-bezier(0.23, 1, 0.32, 1); -@ease-in-quint : cubic-bezier(0.755, 0.05, 0.855, 0.06); -@ease-in-out-quint : cubic-bezier(0.86, 0, 0.07, 1); - -// Border color -@border-color-base : hsv(0, 0, 85%); // base border outline a component -@border-color-split : hsv(0, 0, 91%); // split border inside a component -@border-width-base : 1px; // width of the border for a component -@border-style-base : solid; // style of a components border - -// Outline -@outline-blur-size : 0; -@outline-width : 2px; -@outline-color : @primary-color; - -@background-color-light : hsv(0, 0, 98%); // background of header and selected item -@background-color-base : hsv(0, 0, 96%); // Default grey background color - -// Disabled states -@disabled-color : fade(#000, 25%); -@disabled-bg : @background-color-base; -@disabled-color-dark : fade(#fff, 35%); - -// Shadow -@shadow-color : rgba(0, 0, 0, .15); -@box-shadow-base : @shadow-1-down; -@shadow-1-up : 0 -2px 8px @shadow-color; -@shadow-1-down : 0 2px 8px @shadow-color; -@shadow-1-left : -2px 0 8px @shadow-color; -@shadow-1-right : 2px 0 8px @shadow-color; -@shadow-2 : 0 4px 12px @shadow-color; - -// Buttons -@btn-font-weight : 400; -@btn-border-radius-base : @border-radius-base; -@btn-border-radius-sm : @border-radius-base; - -@btn-primary-color : #fff; -@btn-primary-bg : @primary-color; - -@btn-default-color : @text-color; -@btn-default-bg : #fff; -@btn-default-border : @border-color-base; - -@btn-danger-color : @error-color; -@btn-danger-bg : @background-color-base; -@btn-danger-border : @border-color-base; - -@btn-disable-color : @disabled-color; -@btn-disable-bg : @disabled-bg; -@btn-disable-border : @border-color-base; - -@btn-padding-base : 0 @padding-md - 1px; -@btn-font-size-lg : @font-size-lg; -@btn-font-size-sm : @font-size-base; -@btn-padding-lg : @btn-padding-base; -@btn-padding-sm : 0 @padding-xs - 1px; - -@btn-height-base : 32px; -@btn-height-lg : 40px; -@btn-height-sm : 24px; - -@btn-circle-size : @btn-height-base; -@btn-circle-size-lg : @btn-height-lg; -@btn-circle-size-sm : @btn-height-sm; - -@btn-group-border : @primary-5; - -// Checkbox -@checkbox-size : 16px; -@checkbox-color : @primary-color; -@checkbox-check-color : #fff; - -// Radio -@radio-size : 16px; -@radio-dot-color : @primary-color; - -// Radio buttons -@radio-button-bg : @btn-default-bg; -@radio-button-color : @btn-default-color; -@radio-button-hover-color : @primary-5; -@radio-button-active-color : @primary-7; - -// Media queries breakpoints -// Extra small screen / phone -@screen-xs : 480px; -@screen-xs-min : @screen-xs; - -// Small screen / tablet -@screen-sm : 576px; -@screen-sm-min : @screen-sm; - -// Medium screen / desktop -@screen-md : 768px; -@screen-md-min : @screen-md; - -// Large screen / wide desktop -@screen-lg : 992px; -@screen-lg-min : @screen-lg; - -// Extra large screen / full hd -@screen-xl : 1200px; -@screen-xl-min : @screen-xl; - -// Extra extra large screen / large descktop -@screen-xxl : 1600px; -@screen-xxl-min : @screen-xxl; - -// provide a maximum -@screen-xs-max : (@screen-sm-min - 1px); -@screen-sm-max : (@screen-md-min - 1px); -@screen-md-max : (@screen-lg-min - 1px); -@screen-lg-max : (@screen-xl-min - 1px); -@screen-xl-max : (@screen-xxl-min - 1px); - -// Grid system -@grid-columns : 24; -@grid-gutter-width : 0; - -// Layout -@layout-body-background : #f0f2f5; -@layout-header-background : #001529; -@layout-footer-background : @layout-body-background; -@layout-header-height : 64px; -@layout-header-padding : 0 50px; -@layout-footer-padding : 24px 50px; -@layout-sider-background : @layout-header-background; -@layout-trigger-height : 48px; -@layout-trigger-background : #002140; -@layout-trigger-color : #fff; -@layout-zero-trigger-width : 36px; -@layout-zero-trigger-height : 42px; -// Layout light theme -@layout-sider-background-light : #fff; -@layout-trigger-background-light: #fff; -@layout-trigger-color-light : @text-color; - -// z-index list -@zindex-affix : 10; -@zindex-back-top : 10; -@zindex-modal-mask : 1000; -@zindex-modal : 1000; -@zindex-notification : 1010; -@zindex-message : 1010; -@zindex-popover : 1030; -@zindex-picker : 1050; -@zindex-dropdown : 1050; -@zindex-tooltip : 1060; - -// Animation -@animation-duration-slow: .3s; // Modal -@animation-duration-base: .2s; -@animation-duration-fast: .1s; // Tooltip - -// Form -// --- -@label-required-color : @highlight-color; -@label-color : @heading-color; -@form-item-margin-bottom : 24px; -@form-item-trailing-colon : true; -@form-vertical-label-padding : 0 0 8px; -@form-vertical-label-margin : 0; - -// Input -// --- -@input-height-base : 32px; -@input-height-lg : 40px; -@input-height-sm : 24px; -@input-padding-horizontal : @control-padding-horizontal - 1px; -@input-padding-horizontal-base: @input-padding-horizontal; -@input-padding-horizontal-sm : @control-padding-horizontal-sm - 1px; -@input-padding-horizontal-lg : @input-padding-horizontal; -@input-padding-vertical-base : 4px; -@input-padding-vertical-sm : 1px; -@input-padding-vertical-lg : 6px; -@input-placeholder-color : hsv(0, 0, 75%); -@input-color : @text-color; -@input-border-color : @border-color-base; -@input-bg : #fff; -@input-addon-bg : @background-color-light; -@input-hover-border-color : @primary-color; -@input-disabled-bg : @disabled-bg; -@input-outline-offset : 0 0; - -// Tooltip -// --- -//* Tooltip max width -@tooltip-max-width: 250px; -//** Tooltip text color -@tooltip-color: #fff; -//** Tooltip background color -@tooltip-bg: rgba(0, 0, 0, .75); -//** Tooltip arrow width -@tooltip-arrow-width: 5px; -//** Tooltip distance with trigger -@tooltip-distance: @tooltip-arrow-width - 1px + 4px; -//** Tooltip arrow color -@tooltip-arrow-color: @tooltip-bg; - -// Popover -// --- -//** Popover body background color -@popover-bg: #fff; -//** Popover text color -@popover-color: @text-color; -//** Popover maximum width -@popover-min-width: 177px; -//** Popover arrow width -@popover-arrow-width: 6px; -//** Popover arrow color -@popover-arrow-color: @popover-bg; -//** Popover outer arrow width -//** Popover outer arrow color -@popover-arrow-outer-color: @popover-bg; -//** Popover distance with trigger -@popover-distance: @popover-arrow-width + 4px; - -// Modal -// -- -@modal-mask-bg: rgba(0, 0, 0, 0.65); - -// Progress -// -- -@progress-default-color: @processing-color; -@progress-remaining-color: @background-color-base; -@progress-text-color: @text-color; - -// Menu -// --- -@menu-inline-toplevel-item-height: 40px; -@menu-item-height: 40px; -@menu-collapsed-width: 80px; -@menu-bg: @component-background; -@menu-item-color: @text-color; -@menu-highlight-color: @primary-color; -@menu-item-active-bg: @item-active-bg; -@menu-item-active-border-width: 3px; -@menu-item-group-title-color: @text-color-secondary; -// dark theme -@menu-dark-color: @text-color-secondary-dark; -@menu-dark-bg: @layout-header-background; -@menu-dark-arrow-color: #fff; -@menu-dark-submenu-bg: #000c17; -@menu-dark-highlight-color: #fff; -@menu-dark-item-active-bg: @primary-color; - -// Spin -// --- -@spin-dot-size-sm: 14px; -@spin-dot-size: 20px; -@spin-dot-size-lg: 32px; - -// Table -// -- -@table-header-bg: @background-color-light; -@table-header-color: @heading-color; -@table-header-sort-bg: @background-color-base; -@table-body-sort-bg: rgba(0, 0, 0, .01); -@table-row-hover-bg: @primary-1; -@table-selected-row-bg: #fafafa; -@table-expanded-row-bg: #fbfbfb; -@table-padding-vertical: 16px; -@table-padding-horizontal: 16px; - -// Tag -// -- -@tag-default-bg: @background-color-light; -@tag-default-color: @text-color; -@tag-font-size: @font-size-sm; - -// TimePicker -// --- -@time-picker-panel-column-width: 56px; -@time-picker-panel-width: @time-picker-panel-column-width * 3; -@time-picker-selected-bg: @background-color-base; - -// Carousel -// --- -@carousel-dot-width: 16px; -@carousel-dot-height: 3px; -@carousel-dot-active-width: 24px; - -// Badge -// --- -@badge-height: 20px; -@badge-dot-size: 6px; -@badge-font-size: @font-size-sm; -@badge-font-weight: normal; -@badge-status-size: 6px; - -// Rate -// --- -@rate-star-color: @yellow-6; -@rate-star-bg: @border-color-split; - -// Card -// --- -@card-head-color: @heading-color; -@card-head-background: transparent; -@card-head-padding: 16px; -@card-inner-head-padding: 12px; -@card-padding-base: 24px; -@card-padding-wider: 32px; -@card-actions-background: @background-color-light; -@card-shadow: 0 2px 8px rgba(0, 0, 0, .09); - -// Tabs -// --- -@tabs-card-head-background: @background-color-light; -@tabs-card-height: 40px; -@tabs-card-active-color: @primary-color; -@tabs-title-font-size: @font-size-base; -@tabs-title-font-size-lg: @font-size-lg; -@tabs-title-font-size-sm: @font-size-base; -@tabs-ink-bar-color: @primary-color; -@tabs-bar-margin: 0 0 16px 0; -@tabs-horizontal-margin: 0 32px 0 0; -@tabs-horizontal-padding: 12px 16px; -@tabs-vertical-padding: 8px 24px; -@tabs-vertical-margin: 0 0 16px 0; -@tabs-scrolling-size: 32px; -@tabs-highlight-color: @primary-color; -@tabs-hover-color: @primary-5; -@tabs-active-color: @primary-7; - -// BackTop -// --- -@back-top-color: #fff; -@back-top-bg: @text-color-secondary; -@back-top-hover-bg: @text-color; - -// Avatar -// --- -@avatar-size-base: 32px; -@avatar-size-lg: 40px; -@avatar-size-sm: 24px; -@avatar-font-size-base: 18px; -@avatar-font-size-lg: 24px; -@avatar-font-size-sm: 14px; -@avatar-bg: #ccc; -@avatar-color: #fff; -@avatar-border-radius: @border-radius-base; - -// Switch -// --- -@switch-height: 22px; -@switch-sm-height: 16px; -@switch-sm-checked-margin-left: -(@switch-sm-height - 3px); -@switch-disabled-opacity: 0.4; -@switch-color: @primary-color; - -// Pagination -// --- -@pagination-item-size: 32px; -@pagination-item-size-sm: 24px; -@pagination-font-family: Arial; -@pagination-font-weight-active: 500; - -// Breadcrumb -// --- -@breadcrumb-base-color: @text-color-secondary; -@breadcrumb-last-item-color: @text-color; -@breadcrumb-font-size: @font-size-base; -@breadcrumb-icon-font-size: @font-size-base; -@breadcrumb-link-color: @text-color-secondary; -@breadcrumb-link-color-hover: @primary-5; -@breadcrumb-separator-color: @text-color-secondary; -@breadcrumb-separator-margin: 0 @padding-xs; - -// Slider -// --- -@slider-margin: 14px 6px 10px; -@slider-rail-background-color: @background-color-base; -@slider-rail-background-color-hover: #e1e1e1; -@slider-track-background-color: @primary-3; -@slider-track-background-color-hover: @primary-4; -@slider-handle-color: @primary-3; -@slider-handle-color-hover: @primary-4; -@slider-handle-color-focus: tint(@primary-color, 20%); -@slider-handle-color-focus-shadow: tint(@primary-color, 50%); -@slider-handle-color-tooltip-open: @primary-color; -@slider-dot-border-color: @border-color-split; -@slider-dot-border-color-active: tint(@primary-color, 50%); -@slider-disabled-color: @disabled-color; -@slider-disabled-background-color: @component-background; - -// Tree -// --- -@tree-title-height: 24px; -@tree-child-padding: 18px; -@tree-directory-selected-color: #fff; -@tree-directory-selected-bg: @primary-color; - -// Collapse -// --- -@collapse-header-padding: 12px 0 12px 40px; -@collapse-header-bg: @background-color-light; -@collapse-content-padding: @padding-md; -@collapse-content-bg: @component-background; - -// Skeleton -// --- -@skeleton-color: #f2f2f2; - -// Transfer -// --- -@transfer-disabled-bg: @disabled-bg; - -// Message -// --- -@message-notice-content-padding: 10px 16px; - -// Motion -// --- -@wave-animation-width: 6px; - -// Alert -// --- -@alert-success-border-color: ~`colorPalette("@{success-color}", 3)`; -@alert-success-bg-color: ~`colorPalette("@{success-color}", 1)`; -@alert-success-icon-color: @success-color; -@alert-info-border-color: ~`colorPalette("@{info-color}", 3)`; -@alert-info-bg-color: ~`colorPalette("@{info-color}", 1)`; -@alert-info-icon-color: @info-color; -@alert-warning-border-color: ~`colorPalette("@{warning-color}", 3)`; -@alert-warning-bg-color: ~`colorPalette("@{warning-color}", 1)`; -@alert-warning-icon-color: @warning-color; -@alert-error-border-color: ~`colorPalette("@{error-color}", 3)`; -@alert-error-bg-color: ~`colorPalette("@{error-color}", 1)`; -@alert-error-icon-color: @error-color; - -// List -// --- -@list-empty-text-padding: @padding-md; -@list-item-padding: @padding-sm 0; -@list-item-content-margin: 0 0 @padding-md 0; -@list-item-meta-margin-bottom: @padding-md; -@list-item-meta-avatar-margin-right: @padding-md; -@list-item-meta-title-margin-bottom: @padding-sm; - -// Menu -@menu-dark-item-selected-bg: @menu-dark-item-active-bg; - -// Tabs -@tab-bar-margin: @tabs-bar-margin; -@tab-horizontal-margin: @tabs-horizontal-margin; -@tab-vertical-margin: @tabs-vertical-margin; -@tab-horizontal-padding: @tabs-horizontal-padding; -@tab-vertical-padding: @tabs-vertical-padding; -@tab-scrolling-size: @tabs-scrolling-size; -@tab-highlight-color: @tabs-highlight-color; -@tab-hover-color: @tabs-hover-color; -@tab-active-color: @tabs-active-color; -@tabs-ink-bar-bg-color: @tabs-ink-bar-color; - -.listContent .extra { - color: rgba(0, 0, 0, 0.45); -} -.listContent .extra > em { - color: rgba(0, 0, 0, 0.25); -} -.avatarItem :global .ant-avatar { - border: 1px solid #fff; -} -.chartCard .avatar img { - border-radius: 100%; -} -.chartCard .meta { - color: rgba(0, 0, 0, 0.45); -} -.chartCard .total { - color: rgba(0, 0, 0, 0.85); -} -.chartCard .footer { - border-top: 1px solid #e8e8e8; -} -.field span:last-child { - color: rgba(0, 0, 0, 0.85); -} -.miniProgress .progressWrap { - background-color: #f5f5f5; -} -.miniProgress .progress { - border-radius: 1px 0 0 1px; - background-color: @primary-color; -} -.miniProgress .target span { - border-radius: 100px; -} -.pie .dot { - border-radius: 8px; -} -.pie .line { - background-color: #e8e8e8; -} -.pie .legendTitle { - color: rgba(0, 0, 0, 0.65); -} -.pie .percent { - color: rgba(0, 0, 0, 0.45); -} -.pie .total > h4 { - color: rgba(0, 0, 0, 0.45); -} -.pie .total > p { - color: rgba(0, 0, 0, 0.85); -} -.radar .legend .legendItem { - color: rgba(0, 0, 0, 0.45); -} -.radar .legend .legendItem h6 { - color: rgba(0, 0, 0, 0.85); -} -.radar .legend .legendItem:after { - background-color: #e8e8e8; -} -.radar .legend .dot { - border-radius: 6px; -} - -.timelineChart { - background: #fff; -} -.waterWave .text span { - color: rgba(0, 0, 0, 0.45); -} -.waterWave .text h4 { - color: rgba(0, 0, 0, 0.85); -} -.descriptionList .title { - color: rgba(0, 0, 0, 0.85); -} -.descriptionList .term { - color: rgba(0, 0, 0, 0.85); -} -.descriptionList .detail { - color: rgba(0, 0, 0, 0.65); -} -.descriptionList.small .title { - color: rgba(0, 0, 0, 0.65); -} -.linkGroup > a { - color: rgba(0, 0, 0, 0.65); -} -.linkGroup > a:hover { - color: @primary-color; -} -.lines .shadow { - color: transparent; -} -.exception .imgEle { - background-repeat: no-repeat; - background-position: 50% 50%; - background-size: contain; -} -.exception .content h1 { - color: #434e59; -} -.exception .content .desc { - color: rgba(0, 0, 0, 0.45); -} -.toolbar { - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03); - background: #fff; - border-top: 1px solid #e8e8e8; -} -.globalFooter .links a { - color: rgba(0, 0, 0, 0.45); -} -.globalFooter .links a:hover { - color: rgba(0, 0, 0, 0.65); -} -.globalFooter .copyright { - color: rgba(0, 0, 0, 0.45); -} -.layout .header { - background-color: @primary-color !important; -} -i.trigger:hover { - background: rgba(0, 0, 0, 0.025); -} -.right .action > i { - color: rgba(0, 0, 0, 0.65); -} -.right .action:hover { - background: rgba(0, 0, 0, 0.025); -} -:global(.right .action.ant-popover-open) { - background: rgba(0, 0, 0, 0.025); -} -.right .search:hover { - background: transparent; -} -.right .account .avatar { - color: @primary-color; - background: rgba(255, 255, 255, 0.85); -} -.dark .action { - color: rgba(255, 255, 255, 0.85); -} -.dark .action > i { - color: rgba(255, 255, 255, 0.85); -} -.dark .action:hover, -.dark .action:global(.ant-popover-open) { - background: @primary-color; -} -.dark .action :global(.ant-badge) { - color: rgba(255, 255, 255, 0.85); -} -.headerSearch .input { - background: transparent; - border-radius: 0; -} -.headerSearch .input :global(.ant-select-selection) { - background: transparent; -} -.headerSearch .input input { - border: 0; - box-shadow: none !important; -} -.headerSearch .input, -.headerSearch .input:hover, -.headerSearch .input:focus { - border-bottom: 1px solid #d9d9d9; -} -.login :global .ant-tabs .ant-tabs-bar { - border-bottom: 0; -} -.login .icon { - color: rgba(0, 0, 0, 0.2); -} -.login .icon:hover { - color: @primary-color; -} -.login .prefixIcon { - color: rgba(0, 0, 0, 0.25); -} -.list .item .avatar { - background: #fff; -} -.list .item:last-child { - border-bottom: 0; -} -.list .item:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.list .item .extra { - color: rgba(0, 0, 0, 0.45); -} -.notFound { - color: rgba(0, 0, 0, 0.45); -} -.clear { - color: rgba(0, 0, 0, 0.65); - border-radius: 0 0 4px 4px; - border-top: 1px solid #e8e8e8; -} -.clear:hover { - color: rgba(0, 0, 0, 0.85); -} -.numberInfo .suffix { - color: rgba(0, 0, 0, 0.65); -} -.numberInfo .numberInfoTitle { - color: rgba(0, 0, 0, 0.65); -} -.numberInfo .numberInfoSubTitle { - color: rgba(0, 0, 0, 0.45); -} -.numberInfo .numberInfoValue > span { - color: rgba(0, 0, 0, 0.85); -} -.numberInfo .numberInfoValue .subTotal { - color: rgba(0, 0, 0, 0.45); -} -.numberInfo .numberInfoValue .subTotal :global .anticon-caret-up { - color: #f5222d; -} -.numberInfo .numberInfoValue .subTotal :global .anticon-caret-down { - color: #52c41a; -} -.numberInfolight .numberInfoValue > span { - color: rgba(0, 0, 0, 0.65); -} -.pageHeader { - background: #fff; - border-bottom: 1px solid #e8e8e8; -} -.pageHeader .tabs :global .ant-tabs-bar { - border-bottom: 1px solid #e8e8e8; -} -.pageHeader .logo > img { - border-radius: 4px; -} -.pageHeader .title { - color: rgba(0, 0, 0, 0.85); -} -.result .icon > .success { - color: #52c41a; -} -.result .icon > .error { - color: #f5222d; -} -.result .title { - color: rgba(0, 0, 0, 0.85); -} -.result .description { - color: rgba(0, 0, 0, 0.45); -} -.result .extra { - background: #fafafa; - border-radius: 2px; -} -.blockChecbox .item { - border-radius: 4px; -} -.blockChecbox .selectIcon { - color: @primary-color; -} -.color_block { - border-radius: 4px; -} -.title { - color: rgba(0, 0, 0, 0.85); -} -.handle { - background: @primary-color; - border-radius: 4px 0 0 4px; -} -.setting-drawer-index-handle { - /* 暂时不知道放哪解决 */ - background: @primary-color !important; -} -.themeColor .title { - color: rgba(0, 0, 0, 0.65); -} -.themeColor .colorBlock { - border-radius: 2px; - color: #fff; -} -.logo h1 { - color: white; -} -.sider { - box-shadow: 2px 116px 6px rgba(0, 21, 41, 0.35); -} -.sider.light { - box-shadow: 2px 116px 8px 0 rgba(29, 35, 41, 0.05); - background-color: white; -} -.sider.light .logo { - background-color: @primary-color !important; - box-shadow: 1px 1px 0 0 #e8e8e8; -} -.sider.light .logo h1 { - color: white; -} -.sider.light :global(.ant-menu-light) { - border-right-color: transparent; -} -:global .drawer .drawer-content { - background: #001529; -} -.standardFormRow { - border-bottom: 1px dashed #e8e8e8; -} -.standardFormRow :global .ant-form-item-label label { - color: rgba(0, 0, 0, 0.65); -} -.standardFormRow .label { - color: rgba(0, 0, 0, 0.85); -} -.standardFormRowLast { - border: none; -} - -.head { - box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); -} -.head.light { - background-color: #fff; -} -.logo h1 { - color: #fff; -} -.light h1 { - color: #002140; -} -.trendItem .up { - color: #f5222d; -} -.trendItem .down { - color: #52c41a; -} -.trendItem.trendItemGrey .up, -.trendItem.trendItemGrey .down { - color: rgba(0, 0, 0, 0.65); -} -.trendItem.reverseColor .up { - color: #52c41a; -} -.trendItem.reverseColor .down { - color: #f5222d; -} -.container { - background: #f0f2f5; -} -.title { - color: rgba(0, 0, 0, 0.85); -} -.desc { - color: rgba(0, 0, 0, 0.45); -} -a.listItemMetaTitle { - color: rgba(0, 0, 0, 0.85); -} -.baseView .right .avatar_title { - color: rgba(0, 0, 0, 0.85); -} -.main { - //update-begin---author:liusq Date:20210108 for:[JT-409]编译主题色,然后退出登录后的首页是这样子------------ - //background-color: #fff; - //update-end---author:liusq Date:20210108 for:[JT-409]编译主题色,然后退出登录后的首页是这样子------------ -} -.main .leftmenu { - border-right: 1px solid #e8e8e8; -} -.main .leftmenu :global .ant-menu-inline { - border: none; -} -.main .right .title { - color: rgba(0, 0, 0, 0.85); -} -.main :global .ant-list-split .ant-list-item:last-child { - border-bottom: 1px solid #e8e8e8; -} -:global .ant-list-item-meta .taobao { - color: #ff4000; - border-radius: 4px; -} -:global .ant-list-item-meta .dingding { - background-color: #2eabff; - color: #fff; - border-radius: 4px; -} -:global .ant-list-item-meta .alipay { - color: #2eabff; - border-radius: 4px; -} -:global font.strong { - color: #52c41a; -} -:global font.medium { - color: #faad14; -} -:global font.weak { - color: #f5222d; -} - - - - -.trigger { - background: 'red'; -} -.desc { - color: rgba(0, 0, 0, 0.45); -} -.desc h3 { - color: rgba(0, 0, 0, 0.45); -} -.desc h4 { - color: rgba(0, 0, 0, 0.45); -} -.information .label { - color: rgba(0, 0, 0, 0.85); -} -.errorIcon { - color: #f5222d; -} -.errorListItem { - border-bottom: 1px solid #e8e8e8; -} -.errorListItem:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.errorListItem:last-child { - border: 0; -} -.errorListItem .errorIcon { - color: #f5222d; -} -.errorListItem .errorField { - color: rgba(0, 0, 0, 0.45); -} -.optional { - color: rgba(0, 0, 0, 0.45); -} -a.listItemMetaTitle { - color: rgba(0, 0, 0, 0.85); -} -.noData { - color: rgba(0, 0, 0, 0.25); -} -.heading { - color: rgba(0, 0, 0, 0.85); -} -.textSecondary { - color: rgba(0, 0, 0, 0.45); -} -.title { - color: rgba(0, 0, 0, 0.85); -} -.main .icon { - color: rgba(0, 0, 0, 0.2); -} -.main .icon:hover { - color: @primary-color; -} -.success { - color: #52c41a; -} -.warning { - color: #faad14; -} -.error { - color: #f5222d; -} -.progress-pass > .progress :global .ant-progress-bg { - background-color: #faad14; -} -html { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; -} -h1, -h2, -h3, -h4, -h5, -h6 { - color: rgba(0, 0, 0, 0.85); -} -abbr[title], -abbr[data-original-title] { - border-bottom: 0; -} -a { - color: @primary-color; - background-color: transparent; -} -a:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -a:active { - color: color(~`colorPalette("@{primary-color}", 7)`); -} -a[disabled] { - color: rgba(0, 0, 0, 0.25); -} -img { - border-style: none; -} -table { - border-collapse: collapse; -} -caption { - color: rgba(0, 0, 0, 0.45); -} -input, -button, -select, -optgroup, -textarea { - color: inherit; -} -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; -} -fieldset { - border: 0; -} -legend { - color: inherit; -} -mark { - background-color: #feffe6; -} -::selection { - background: @primary-color; - color: #fff; -} -[ant-click-animating-without-extra-node]:after, -.ant-click-animating-node { - border-radius: inherit; - border: 0 solid @primary-color; -} -.ant-alert { - color: rgba(0, 0, 0, 0.65); - border-radius: 4px; -} -.ant-alert-success { - border: 1px solid #b7eb8f; - background-color: #f6ffed; -} -.ant-alert-success .ant-alert-icon { - color: #52c41a; -} -.ant-alert-info { - border: 1px solid color(~`colorPalette("@{primary-color}", 3)`); - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-alert-info .ant-alert-icon { - color: @primary-color; -} -.ant-alert-warning { - border: 1px solid #ffe58f; - background-color: #fffbe6; -} -.ant-alert-warning .ant-alert-icon { - color: #faad14; -} -.ant-alert-error { - border: 1px solid #ffa39e; - background-color: #fff1f0; -} -.ant-alert-error .ant-alert-icon { - color: #f5222d; -} -.ant-alert-close-icon .anticon-close { - color: rgba(0, 0, 0, 0.45); -} -.ant-alert-close-icon .anticon-close:hover { - color: #404040; -} -.ant-alert-with-description { - border-radius: 4px; - color: rgba(0, 0, 0, 0.65); -} -.ant-alert-with-description .ant-alert-message { - color: rgba(0, 0, 0, 0.85); -} -.ant-alert-banner { - border-radius: 0; - border: 0; -} -.ant-anchor { - color: rgba(0, 0, 0, 0.65); -} -.ant-anchor-wrapper { - background-color: #fff; -} -.ant-anchor-ink:before { - background-color: #e8e8e8; -} -.ant-anchor-ink-ball { - border-radius: 8px; - border: 2px solid @primary-color; - background-color: #fff; -} -.ant-anchor-link-title { - color: rgba(0, 0, 0, 0.65); -} -.ant-anchor-link-active > .ant-anchor-link-title { - color: @primary-color; -} -.ant-select-auto-complete { - color: rgba(0, 0, 0, 0.65); -} -.ant-select-auto-complete.ant-select .ant-select-selection { - border: 0; - box-shadow: none; -} -.ant-select-auto-complete.ant-select .ant-input { - background: transparent; - border-width: 1px; -} -.ant-select-auto-complete.ant-select .ant-input:focus, -.ant-select-auto-complete.ant-select .ant-input:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-avatar { - color: rgba(0, 0, 0, 0.65); - background: #ccc; - color: #fff; - border-radius: 50%; -} -.ant-avatar-image { - background: transparent; -} -.ant-avatar-lg { - border-radius: 50%; -} -.ant-avatar-sm { - border-radius: 50%; -} -.ant-avatar-square { - border-radius: 4px; -} -.ant-back-top { - color: rgba(0, 0, 0, 0.65); -} -.ant-back-top-content { - border-radius: 20px; - background-color: rgba(0, 0, 0, 0.45); - color: #fff; -} -.ant-back-top-content:hover { - background-color: rgba(0, 0, 0, 0.65); -} -.ant-back-top-icon { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAABGdBTUEAALGPC/xhBQAAAbtJREFUWAntmMtKw0AUhhMvS5cuxILgQlRUpIggIoKIIoigG1eC+AA+jo+i6FIXBfeuXIgoeKVeitVWJX5HWhhDksnUpp3FDPyZk3Nm5nycmZKkXhAEOXSA3lG7muTeRzmfy6HneUvIhnYkQK+Q9NhAA0Opg0vBEhjBKHiyb8iGMyQMOYuK41BcBSypAL+MYXSKjtFAW7EAGEO3qN4uMQbbAkXiSfRQJ1H6a+yhlkKRcAoVFYiweYNjtCVQJJpBz2GCiPt7fBOZQpFgDpUikse5HgnkM4Fi4QX0Fpc5wf9EbLqpUCy4jMoJSXWhFwbMNgWKhVbRhy5jirhs9fy/oFhgHVVTJEs7RLZ8sSEoJm6iz7SZDMbJ+/OKERQTttCXQRLToRUmrKWCYuA2+jbN0MB4OQobYShfdTCgn/sL1K36M7TLrN3n+758aPy2rrpR6+/od5E8tf/A1uLS9aId5T7J3CNYihkQ4D9PiMdMC7mp4rjB9kjFjZp8BlnVHJBuO1yFXIV0FdDF3RlyFdJVQBdv5AxVdIsq8apiZ2PyYO1EVykesGfZEESsCkweyR8MUW+V8uJ1gkYipmpdP1pm2aJVPEGzAAAAAElFTkSuQmCC) 100%/100% no-repeat; -} -.ant-badge { - color: rgba(0, 0, 0, 0.65); - color: unset; -} -.ant-badge-count { - border-radius: 10px; - background: #f5222d; - color: #fff; - box-shadow: 0 0 0 1px #fff; -} -.ant-badge-count a, -.ant-badge-count a:hover { - color: #fff; -} -.ant-badge-dot { - border-radius: 100%; - background: #f5222d; - box-shadow: 0 0 0 1px #fff; -} -.ant-badge-status-dot { - border-radius: 50%; -} -.ant-badge-status-success { - background-color: #52c41a; -} -.ant-badge-status-processing { - background-color: @primary-color; -} -.ant-badge-status-processing:after { - border-radius: 50%; - border: 1px solid @primary-color; -} -.ant-badge-status-default { - background-color: #d9d9d9; -} -.ant-badge-status-error { - background-color: #f5222d; -} -.ant-badge-status-warning { - background-color: #faad14; -} -.ant-badge-status-text { - color: rgba(0, 0, 0, 0.65); -} -.ant-breadcrumb { - color: rgba(0, 0, 0, 0.65); - color: rgba(0, 0, 0, 0.45); -} -.ant-breadcrumb a { - color: rgba(0, 0, 0, 0.45); -} -.ant-breadcrumb a:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-breadcrumb > span:last-child { - color: rgba(0, 0, 0, 0.65); -} -.ant-breadcrumb-separator { - color: rgba(0, 0, 0, 0.45); -} -.ant-btn { - background-image: none; - border: 1px solid transparent; - border-radius: 4px; - box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - border-color: #d9d9d9; -} -.ant-btn:not([disabled]):active { - box-shadow: none; -} -.ant-btn-lg { - border-radius: 4px; -} -.ant-btn-sm { - border-radius: 4px; -} -.ant-btn > a:only-child { - color: currentColor; -} -.ant-btn > a:only-child:after { - background: transparent; -} -.ant-btn:hover, -.ant-btn:focus { - color: color(~`colorPalette("@{primary-color}", 5)`); - background-color: #fff; - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn:hover > a:only-child, -.ant-btn:focus > a:only-child { - color: currentColor; -} -.ant-btn:hover > a:only-child:after, -.ant-btn:focus > a:only-child:after { - background: transparent; -} -.ant-btn:active, -.ant-btn.active { - color: color(~`colorPalette("@{primary-color}", 7)`); - background-color: #fff; - border-color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-btn:active > a:only-child, -.ant-btn.active > a:only-child { - color: currentColor; -} -.ant-btn:active > a:only-child:after, -.ant-btn.active > a:only-child:after { - background: transparent; -} -.ant-btn.disabled, -.ant-btn[disabled], -.ant-btn.disabled:hover, -.ant-btn[disabled]:hover, -.ant-btn.disabled:focus, -.ant-btn[disabled]:focus, -.ant-btn.disabled:active, -.ant-btn[disabled]:active, -.ant-btn.disabled.active, -.ant-btn[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-btn.disabled > a:only-child, -.ant-btn[disabled] > a:only-child, -.ant-btn.disabled:hover > a:only-child, -.ant-btn[disabled]:hover > a:only-child, -.ant-btn.disabled:focus > a:only-child, -.ant-btn[disabled]:focus > a:only-child, -.ant-btn.disabled:active > a:only-child, -.ant-btn[disabled]:active > a:only-child, -.ant-btn.disabled.active > a:only-child, -.ant-btn[disabled].active > a:only-child { - color: currentColor; -} -.ant-btn.disabled > a:only-child:after, -.ant-btn[disabled] > a:only-child:after, -.ant-btn.disabled:hover > a:only-child:after, -.ant-btn[disabled]:hover > a:only-child:after, -.ant-btn.disabled:focus > a:only-child:after, -.ant-btn[disabled]:focus > a:only-child:after, -.ant-btn.disabled:active > a:only-child:after, -.ant-btn[disabled]:active > a:only-child:after, -.ant-btn.disabled.active > a:only-child:after, -.ant-btn[disabled].active > a:only-child:after { - background: transparent; -} -.ant-btn:hover, -.ant-btn:focus, -.ant-btn:active, -.ant-btn.active { - background: #fff; -} -.ant-btn-primary { - color: #fff; - background-color: @primary-color; - border-color: @primary-color; - box-shadow: 0 2px 0 rgba(0, 0, 0, 0.035); -} -.ant-btn-primary > a:only-child { - color: currentColor; -} -.ant-btn-primary > a:only-child:after { - background: transparent; -} -.ant-btn-primary:hover, -.ant-btn-primary:focus { - color: #fff; - background-color: color(~`colorPalette("@{primary-color}", 5)`); - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn-primary:hover > a:only-child, -.ant-btn-primary:focus > a:only-child { - color: currentColor; -} -.ant-btn-primary:hover > a:only-child:after, -.ant-btn-primary:focus > a:only-child:after { - background: transparent; -} -.ant-btn-primary:active, -.ant-btn-primary.active { - color: #fff; - background-color: color(~`colorPalette("@{primary-color}", 7)`); - border-color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-btn-primary:active > a:only-child, -.ant-btn-primary.active > a:only-child { - color: currentColor; -} -.ant-btn-primary:active > a:only-child:after, -.ant-btn-primary.active > a:only-child:after { - background: transparent; -} -.ant-btn-primary.disabled, -.ant-btn-primary[disabled], -.ant-btn-primary.disabled:hover, -.ant-btn-primary[disabled]:hover, -.ant-btn-primary.disabled:focus, -.ant-btn-primary[disabled]:focus, -.ant-btn-primary.disabled:active, -.ant-btn-primary[disabled]:active, -.ant-btn-primary.disabled.active, -.ant-btn-primary[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-btn-primary.disabled > a:only-child, -.ant-btn-primary[disabled] > a:only-child, -.ant-btn-primary.disabled:hover > a:only-child, -.ant-btn-primary[disabled]:hover > a:only-child, -.ant-btn-primary.disabled:focus > a:only-child, -.ant-btn-primary[disabled]:focus > a:only-child, -.ant-btn-primary.disabled:active > a:only-child, -.ant-btn-primary[disabled]:active > a:only-child, -.ant-btn-primary.disabled.active > a:only-child, -.ant-btn-primary[disabled].active > a:only-child { - color: currentColor; -} -.ant-btn-primary.disabled > a:only-child:after, -.ant-btn-primary[disabled] > a:only-child:after, -.ant-btn-primary.disabled:hover > a:only-child:after, -.ant-btn-primary[disabled]:hover > a:only-child:after, -.ant-btn-primary.disabled:focus > a:only-child:after, -.ant-btn-primary[disabled]:focus > a:only-child:after, -.ant-btn-primary.disabled:active > a:only-child:after, -.ant-btn-primary[disabled]:active > a:only-child:after, -.ant-btn-primary.disabled.active > a:only-child:after, -.ant-btn-primary[disabled].active > a:only-child:after { - background: transparent; -} -.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) { - border-right-color: color(~`colorPalette("@{primary-color}", 5)`); - border-left-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled { - border-color: #d9d9d9; -} -.ant-btn-group .ant-btn-primary:first-child:not(:last-child) { - border-right-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] { - border-right-color: #d9d9d9; -} -.ant-btn-group .ant-btn-primary:last-child:not(:first-child), -.ant-btn-group .ant-btn-primary + .ant-btn-primary { - border-left-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled], -.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] { - border-left-color: #d9d9d9; -} -.ant-btn-ghost { - color: rgba(0, 0, 0, 0.65); - background-color: transparent; - border-color: #d9d9d9; -} -.ant-btn-ghost > a:only-child { - color: currentColor; -} -.ant-btn-ghost > a:only-child:after { - background: transparent; -} -.ant-btn-ghost:hover, -.ant-btn-ghost:focus { - color: color(~`colorPalette("@{primary-color}", 5)`); - background-color: transparent; - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn-ghost:hover > a:only-child, -.ant-btn-ghost:focus > a:only-child { - color: currentColor; -} -.ant-btn-ghost:hover > a:only-child:after, -.ant-btn-ghost:focus > a:only-child:after { - background: transparent; -} -.ant-btn-ghost:active, -.ant-btn-ghost.active { - color: color(~`colorPalette("@{primary-color}", 7)`); - background-color: transparent; - border-color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-btn-ghost:active > a:only-child, -.ant-btn-ghost.active > a:only-child { - color: currentColor; -} -.ant-btn-ghost:active > a:only-child:after, -.ant-btn-ghost.active > a:only-child:after { - background: transparent; -} -.ant-btn-ghost.disabled, -.ant-btn-ghost[disabled], -.ant-btn-ghost.disabled:hover, -.ant-btn-ghost[disabled]:hover, -.ant-btn-ghost.disabled:focus, -.ant-btn-ghost[disabled]:focus, -.ant-btn-ghost.disabled:active, -.ant-btn-ghost[disabled]:active, -.ant-btn-ghost.disabled.active, -.ant-btn-ghost[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-btn-ghost.disabled > a:only-child, -.ant-btn-ghost[disabled] > a:only-child, -.ant-btn-ghost.disabled:hover > a:only-child, -.ant-btn-ghost[disabled]:hover > a:only-child, -.ant-btn-ghost.disabled:focus > a:only-child, -.ant-btn-ghost[disabled]:focus > a:only-child, -.ant-btn-ghost.disabled:active > a:only-child, -.ant-btn-ghost[disabled]:active > a:only-child, -.ant-btn-ghost.disabled.active > a:only-child, -.ant-btn-ghost[disabled].active > a:only-child { - color: currentColor; -} -.ant-btn-ghost.disabled > a:only-child:after, -.ant-btn-ghost[disabled] > a:only-child:after, -.ant-btn-ghost.disabled:hover > a:only-child:after, -.ant-btn-ghost[disabled]:hover > a:only-child:after, -.ant-btn-ghost.disabled:focus > a:only-child:after, -.ant-btn-ghost[disabled]:focus > a:only-child:after, -.ant-btn-ghost.disabled:active > a:only-child:after, -.ant-btn-ghost[disabled]:active > a:only-child:after, -.ant-btn-ghost.disabled.active > a:only-child:after, -.ant-btn-ghost[disabled].active > a:only-child:after { - background: transparent; -} -.ant-btn-dashed { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - border-color: #d9d9d9; - border-style: dashed; -} -.ant-btn-dashed > a:only-child { - color: currentColor; -} -.ant-btn-dashed > a:only-child:after { - background: transparent; -} -.ant-btn-dashed:hover, -.ant-btn-dashed:focus { - color: color(~`colorPalette("@{primary-color}", 5)`); - background-color: #fff; - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn-dashed:hover > a:only-child, -.ant-btn-dashed:focus > a:only-child { - color: currentColor; -} -.ant-btn-dashed:hover > a:only-child:after, -.ant-btn-dashed:focus > a:only-child:after { - background: transparent; -} -.ant-btn-dashed:active, -.ant-btn-dashed.active { - color: color(~`colorPalette("@{primary-color}", 7)`); - background-color: #fff; - border-color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-btn-dashed:active > a:only-child, -.ant-btn-dashed.active > a:only-child { - color: currentColor; -} -.ant-btn-dashed:active > a:only-child:after, -.ant-btn-dashed.active > a:only-child:after { - background: transparent; -} -.ant-btn-dashed.disabled, -.ant-btn-dashed[disabled], -.ant-btn-dashed.disabled:hover, -.ant-btn-dashed[disabled]:hover, -.ant-btn-dashed.disabled:focus, -.ant-btn-dashed[disabled]:focus, -.ant-btn-dashed.disabled:active, -.ant-btn-dashed[disabled]:active, -.ant-btn-dashed.disabled.active, -.ant-btn-dashed[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-btn-dashed.disabled > a:only-child, -.ant-btn-dashed[disabled] > a:only-child, -.ant-btn-dashed.disabled:hover > a:only-child, -.ant-btn-dashed[disabled]:hover > a:only-child, -.ant-btn-dashed.disabled:focus > a:only-child, -.ant-btn-dashed[disabled]:focus > a:only-child, -.ant-btn-dashed.disabled:active > a:only-child, -.ant-btn-dashed[disabled]:active > a:only-child, -.ant-btn-dashed.disabled.active > a:only-child, -.ant-btn-dashed[disabled].active > a:only-child { - color: currentColor; -} -.ant-btn-dashed.disabled > a:only-child:after, -.ant-btn-dashed[disabled] > a:only-child:after, -.ant-btn-dashed.disabled:hover > a:only-child:after, -.ant-btn-dashed[disabled]:hover > a:only-child:after, -.ant-btn-dashed.disabled:focus > a:only-child:after, -.ant-btn-dashed[disabled]:focus > a:only-child:after, -.ant-btn-dashed.disabled:active > a:only-child:after, -.ant-btn-dashed[disabled]:active > a:only-child:after, -.ant-btn-dashed.disabled.active > a:only-child:after, -.ant-btn-dashed[disabled].active > a:only-child:after { - background: transparent; -} -.ant-btn-danger { - color: #f5222d; - background-color: #f5f5f5; - border-color: #d9d9d9; -} -.ant-btn-danger > a:only-child { - color: currentColor; -} -.ant-btn-danger > a:only-child:after { - background: transparent; -} -.ant-btn-danger:hover { - color: #fff; - background-color: #ff4d4f; - border-color: #ff4d4f; -} -.ant-btn-danger:hover > a:only-child { - color: currentColor; -} -.ant-btn-danger:hover > a:only-child:after { - background: transparent; -} -.ant-btn-danger:focus { - color: #ff4d4f; - background-color: #fff; - border-color: #ff4d4f; -} -.ant-btn-danger:focus > a:only-child { - color: currentColor; -} -.ant-btn-danger:focus > a:only-child:after { - background: transparent; -} -.ant-btn-danger:active, -.ant-btn-danger.active { - color: #fff; - background-color: #cf1322; - border-color: #cf1322; -} -.ant-btn-danger:active > a:only-child, -.ant-btn-danger.active > a:only-child { - color: currentColor; -} -.ant-btn-danger:active > a:only-child:after, -.ant-btn-danger.active > a:only-child:after { - background: transparent; -} -.ant-btn-danger.disabled, -.ant-btn-danger[disabled], -.ant-btn-danger.disabled:hover, -.ant-btn-danger[disabled]:hover, -.ant-btn-danger.disabled:focus, -.ant-btn-danger[disabled]:focus, -.ant-btn-danger.disabled:active, -.ant-btn-danger[disabled]:active, -.ant-btn-danger.disabled.active, -.ant-btn-danger[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-btn-danger.disabled > a:only-child, -.ant-btn-danger[disabled] > a:only-child, -.ant-btn-danger.disabled:hover > a:only-child, -.ant-btn-danger[disabled]:hover > a:only-child, -.ant-btn-danger.disabled:focus > a:only-child, -.ant-btn-danger[disabled]:focus > a:only-child, -.ant-btn-danger.disabled:active > a:only-child, -.ant-btn-danger[disabled]:active > a:only-child, -.ant-btn-danger.disabled.active > a:only-child, -.ant-btn-danger[disabled].active > a:only-child { - color: currentColor; -} -.ant-btn-danger.disabled > a:only-child:after, -.ant-btn-danger[disabled] > a:only-child:after, -.ant-btn-danger.disabled:hover > a:only-child:after, -.ant-btn-danger[disabled]:hover > a:only-child:after, -.ant-btn-danger.disabled:focus > a:only-child:after, -.ant-btn-danger[disabled]:focus > a:only-child:after, -.ant-btn-danger.disabled:active > a:only-child:after, -.ant-btn-danger[disabled]:active > a:only-child:after, -.ant-btn-danger.disabled.active > a:only-child:after, -.ant-btn-danger[disabled].active > a:only-child:after { - background: transparent; -} -.ant-btn-circle, -.ant-btn-circle-outline { - border-radius: 50%; -} -.ant-btn-circle.ant-btn-lg, -.ant-btn-circle-outline.ant-btn-lg { - border-radius: 50%; -} -.ant-btn-circle.ant-btn-sm, -.ant-btn-circle-outline.ant-btn-sm { - border-radius: 50%; -} -.ant-btn:before { - background: #fff; - border-radius: inherit; -} -.ant-btn-group-lg > .ant-btn, -.ant-btn-group-lg > span > .ant-btn { - border-radius: 0; -} -.ant-btn-group-sm > .ant-btn, -.ant-btn-group-sm > span > .ant-btn { - border-radius: 0; -} -.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) { - border-left-color: transparent; -} -.ant-btn-group .ant-btn { - border-radius: 0; -} -.ant-btn-group > .ant-btn:only-child { - border-radius: 4px; -} -.ant-btn-group > span:only-child > .ant-btn { - border-radius: 4px; -} -.ant-btn-group > .ant-btn:first-child:not(:last-child), -.ant-btn-group > span:first-child:not(:last-child) > .ant-btn { - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} -.ant-btn-group > .ant-btn:last-child:not(:first-child), -.ant-btn-group > span:last-child:not(:first-child) > .ant-btn { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; -} -.ant-btn-group-sm > .ant-btn:only-child { - border-radius: 4px; -} -.ant-btn-group-sm > span:only-child > .ant-btn { - border-radius: 4px; -} -.ant-btn-group-sm > .ant-btn:first-child:not(:last-child), -.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn { - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} -.ant-btn-group-sm > .ant-btn:last-child:not(:first-child), -.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; -} -.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn { - border-radius: 0; -} -.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.ant-btn-background-ghost { - background: transparent !important; - border-color: #fff; - color: #fff; -} -.ant-btn-background-ghost.ant-btn-primary { - color: @primary-color; - background-color: transparent; - border-color: @primary-color; -} -.ant-btn-background-ghost.ant-btn-primary > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-primary > a:only-child:after { - background: transparent; -} -.ant-btn-background-ghost.ant-btn-primary:hover, -.ant-btn-background-ghost.ant-btn-primary:focus { - color: color(~`colorPalette("@{primary-color}", 5)`); - background-color: transparent; - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child, -.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child:after { - background: transparent; -} -.ant-btn-background-ghost.ant-btn-primary:active, -.ant-btn-background-ghost.ant-btn-primary.active { - color: color(~`colorPalette("@{primary-color}", 7)`); - background-color: transparent; - border-color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-btn-background-ghost.ant-btn-primary:active > a:only-child, -.ant-btn-background-ghost.ant-btn-primary.active > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-primary:active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary.active > a:only-child:after { - background: transparent; -} -.ant-btn-background-ghost.ant-btn-primary.disabled, -.ant-btn-background-ghost.ant-btn-primary[disabled], -.ant-btn-background-ghost.ant-btn-primary.disabled:hover, -.ant-btn-background-ghost.ant-btn-primary[disabled]:hover, -.ant-btn-background-ghost.ant-btn-primary.disabled:focus, -.ant-btn-background-ghost.ant-btn-primary[disabled]:focus, -.ant-btn-background-ghost.ant-btn-primary.disabled:active, -.ant-btn-background-ghost.ant-btn-primary[disabled]:active, -.ant-btn-background-ghost.ant-btn-primary.disabled.active, -.ant-btn-background-ghost.ant-btn-primary[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-btn-background-ghost.ant-btn-primary.disabled > a:only-child, -.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child, -.ant-btn-background-ghost.ant-btn-primary.disabled:hover > a:only-child, -.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child, -.ant-btn-background-ghost.ant-btn-primary.disabled:focus > a:only-child, -.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child, -.ant-btn-background-ghost.ant-btn-primary.disabled:active > a:only-child, -.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child, -.ant-btn-background-ghost.ant-btn-primary.disabled.active > a:only-child, -.ant-btn-background-ghost.ant-btn-primary[disabled].active > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-primary.disabled > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary.disabled:hover > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary.disabled:focus > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary.disabled:active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary.disabled.active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-primary[disabled].active > a:only-child:after { - background: transparent; -} -.ant-btn-background-ghost.ant-btn-danger { - color: #f5222d; - background-color: transparent; - border-color: #f5222d; -} -.ant-btn-background-ghost.ant-btn-danger > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-danger > a:only-child:after { - background: transparent; -} -.ant-btn-background-ghost.ant-btn-danger:hover, -.ant-btn-background-ghost.ant-btn-danger:focus { - color: #ff4d4f; - background-color: transparent; - border-color: #ff4d4f; -} -.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child, -.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child:after { - background: transparent; -} -.ant-btn-background-ghost.ant-btn-danger:active, -.ant-btn-background-ghost.ant-btn-danger.active { - color: #cf1322; - background-color: transparent; - border-color: #cf1322; -} -.ant-btn-background-ghost.ant-btn-danger:active > a:only-child, -.ant-btn-background-ghost.ant-btn-danger.active > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-danger:active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger.active > a:only-child:after { - background: transparent; -} -.ant-btn-background-ghost.ant-btn-danger.disabled, -.ant-btn-background-ghost.ant-btn-danger[disabled], -.ant-btn-background-ghost.ant-btn-danger.disabled:hover, -.ant-btn-background-ghost.ant-btn-danger[disabled]:hover, -.ant-btn-background-ghost.ant-btn-danger.disabled:focus, -.ant-btn-background-ghost.ant-btn-danger[disabled]:focus, -.ant-btn-background-ghost.ant-btn-danger.disabled:active, -.ant-btn-background-ghost.ant-btn-danger[disabled]:active, -.ant-btn-background-ghost.ant-btn-danger.disabled.active, -.ant-btn-background-ghost.ant-btn-danger[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-btn-background-ghost.ant-btn-danger.disabled > a:only-child, -.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child, -.ant-btn-background-ghost.ant-btn-danger.disabled:hover > a:only-child, -.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child, -.ant-btn-background-ghost.ant-btn-danger.disabled:focus > a:only-child, -.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child, -.ant-btn-background-ghost.ant-btn-danger.disabled:active > a:only-child, -.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child, -.ant-btn-background-ghost.ant-btn-danger.disabled.active > a:only-child, -.ant-btn-background-ghost.ant-btn-danger[disabled].active > a:only-child { - color: currentColor; -} -.ant-btn-background-ghost.ant-btn-danger.disabled > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger.disabled:hover > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger.disabled:focus > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger.disabled:active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger.disabled.active > a:only-child:after, -.ant-btn-background-ghost.ant-btn-danger[disabled].active > a:only-child:after { - background: transparent; -} -.christmas.ant-btn-primary:before { - background: url(data:image/png;base64,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) no-repeat 50% 0; - background-size: 64px; -} -.christmas.ant-btn-primary.ant-btn-lg:before { - background-size: 72px; -} -.christmas.ant-btn-primary.ant-btn-sm:before { - background-size: 56px; -} -.ant-fullcalendar { - color: rgba(0, 0, 0, 0.65); - border-top: 1px solid #d9d9d9; -} -.ant-fullcalendar table { - border-collapse: collapse; - background-color: transparent; -} -.ant-fullcalendar table, -.ant-fullcalendar th, -.ant-fullcalendar td { - border: 0; -} -.ant-fullcalendar-calendar-table { - border-spacing: 0; -} -.ant-fullcalendar-value { - color: rgba(0, 0, 0, 0.65); - border-radius: 2px; - background: transparent; -} -.ant-fullcalendar-value:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-fullcalendar-value:active { - background: @primary-color; - color: #fff; -} -.ant-fullcalendar-today .ant-fullcalendar-value, -.ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value { - box-shadow: 0 0 0 1px @primary-color inset; -} -.ant-fullcalendar-selected-day .ant-fullcalendar-value, -.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value { - background: @primary-color; - color: #fff; -} -.ant-fullcalendar-disabled-cell-first-of-row .ant-fullcalendar-value { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.ant-fullcalendar-disabled-cell-last-of-row .ant-fullcalendar-value { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.ant-fullcalendar-last-month-cell .ant-fullcalendar-value, -.ant-fullcalendar-next-month-btn-day .ant-fullcalendar-value { - color: rgba(0, 0, 0, 0.25); -} -.ant-fullcalendar-month-panel-table { - border-collapse: separate; -} -.ant-fullcalendar-fullscreen { - border-top: 0; -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-month, -.ant-fullcalendar-fullscreen .ant-fullcalendar-date { - color: rgba(0, 0, 0, 0.65); - border-top: 2px solid #e8e8e8; -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-month:hover, -.ant-fullcalendar-fullscreen .ant-fullcalendar-date:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-month:active, -.ant-fullcalendar-fullscreen .ant-fullcalendar-date:active { - background: color(~`colorPalette("@{primary-color}", 2)`); -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-value { - background: transparent; -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value { - color: rgba(0, 0, 0, 0.65); -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month, -.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date { - border-top-color: @primary-color; - background: transparent; -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value, -.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value { - box-shadow: none; -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month, -.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value, -.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value { - color: @primary-color; -} -.ant-fullcalendar-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date, -.ant-fullcalendar-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date { - color: rgba(0, 0, 0, 0.25); -} -.ant-fullcalendar-disabled-cell:not(.ant-fullcalendar-today) .ant-fullcalendar-date, -.ant-fullcalendar-disabled-cell:not(.ant-fullcalendar-today) .ant-fullcalendar-date:hover { - background: transparent; -} -.ant-fullcalendar-disabled-cell .ant-fullcalendar-value { - color: rgba(0, 0, 0, 0.25); - border-radius: 0; -} -.ant-card { - color: rgba(0, 0, 0, 0.65); - background: #fff; - border-radius: 2px; -} -.ant-card-hoverable:hover { - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09); - border-color: rgba(0, 0, 0, 0.09); -} -.ant-card-bordered { - border: 1px solid #e8e8e8; -} -.ant-card-head { - background: transparent; - border-bottom: 1px solid #e8e8e8; - border-radius: 2px 2px 0 0; - color: rgba(0, 0, 0, 0.85); -} -.ant-card-head .ant-tabs { - color: rgba(0, 0, 0, 0.65); -} -.ant-card-head .ant-tabs-bar { - border-bottom: 1px solid #e8e8e8; -} -.ant-card-extra { - color: rgba(0, 0, 0, 0.65); -} -.ant-card-grid { - border-radius: 0; - border: 0; - box-shadow: 1px 0 0 0 #e8e8e8, 0 1px 0 0 #e8e8e8, 1px 1px 0 0 #e8e8e8, 1px 0 0 0 #e8e8e8 inset, 0 1px 0 0 #e8e8e8 inset; -} -.ant-card-grid:hover { - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-card-cover img { - border-radius: 2px 2px 0 0; -} -.ant-card-actions { - border-top: 1px solid #e8e8e8; - background: #fafafa; -} -.ant-card-actions > li { - color: rgba(0, 0, 0, 0.45); -} -.ant-card-actions > li > span:hover { - color: @primary-color; -} -.ant-card-actions > li > span a { - color: rgba(0, 0, 0, 0.45); -} -.ant-card-actions > li > span a:hover { - color: @primary-color; -} -.ant-card-actions > li:not(:last-child) { - border-right: 1px solid #e8e8e8; -} -.ant-card-type-inner .ant-card-head { - background: #fafafa; -} -.ant-card-meta-title { - color: rgba(0, 0, 0, 0.85); -} -.ant-card-meta-description { - color: rgba(0, 0, 0, 0.45); -} -.ant-card-loading-block { - border-radius: 2px; - background: linear-gradient(90deg, rgba(207, 216, 220, 0.2), rgba(207, 216, 220, 0.4), rgba(207, 216, 220, 0.2)); - background-size: 600% 600%; -} -.ant-carousel { - color: rgba(0, 0, 0, 0.65); -} -.ant-carousel .slick-slider { - -webkit-tap-highlight-color: transparent; -} -.ant-carousel .slick-vertical .slick-slide { - border: 1px solid transparent; -} -.ant-carousel .slick-prev, -.ant-carousel .slick-next { - background: transparent; - color: transparent; - border: 0; -} -.ant-carousel .slick-prev:hover, -.ant-carousel .slick-next:hover, -.ant-carousel .slick-prev:focus, -.ant-carousel .slick-next:focus { - background: transparent; - color: transparent; -} -.ant-carousel .slick-dots li button { - border: 0; - background: #fff; - border-radius: 1px; - color: transparent; -} -.ant-carousel .slick-dots li.slick-active button { - background: #fff; -} -.ant-cascader { - color: rgba(0, 0, 0, 0.65); -} -.ant-cascader-input.ant-input { - background-color: transparent !important; -} -.ant-cascader-picker { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - border-radius: 4px; -} -.ant-cascader-picker-with-value .ant-cascader-picker-label { - color: transparent; -} -.ant-cascader-picker-disabled { - background: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-cascader-picker:focus .ant-cascader-input { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-cascader-picker-show-search.ant-cascader-picker-focused { - color: rgba(0, 0, 0, 0.25); -} -.ant-cascader-picker-clear { - background: #fff; - color: rgba(0, 0, 0, 0.25); -} -.ant-cascader-picker-clear:hover { - color: rgba(0, 0, 0, 0.45); -} -.ant-cascader-picker-arrow { - color: rgba(0, 0, 0, 0.25); -} -.ant-cascader-menus { - background: #fff; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-cascader-menu { - border-right: 1px solid #e8e8e8; -} -.ant-cascader-menu:first-child { - border-radius: 4px 0 0 4px; -} -.ant-cascader-menu:last-child { - border-right-color: transparent; - border-radius: 0 4px 4px 0; -} -.ant-cascader-menu:only-child { - border-radius: 4px; -} -.ant-cascader-menu-item:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-cascader-menu-item-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-cascader-menu-item-disabled:hover { - background: transparent; -} -.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled), -.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover { - background: #f5f5f5; -} -.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon, -.ant-cascader-menu-item-expand .ant-cascader-menu-item-loading-icon { - color: rgba(0, 0, 0, 0.45); -} -.ant-cascader-menu-item .ant-cascader-menu-item-keyword { - color: #f5222d; -} -.ant-checkbox { - color: rgba(0, 0, 0, 0.65); -} -.ant-checkbox-wrapper:hover .ant-checkbox-inner, -.ant-checkbox:hover .ant-checkbox-inner, -.ant-checkbox-input:focus + .ant-checkbox-inner { - border-color: @primary-color; -} -.ant-checkbox-checked:after { - border-radius: 2px; - border: 1px solid @primary-color; -} -.ant-checkbox-inner { - border: 1px solid #d9d9d9; - border-radius: 2px; - background-color: #fff; -} -.ant-checkbox-inner:after { - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.ant-checkbox-indeterminate .ant-checkbox-inner:after { - border: 0; - background-color: @primary-color; -} -.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after { - border-color: rgba(0, 0, 0, 0.25); -} -.ant-checkbox-checked .ant-checkbox-inner:after { - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.ant-checkbox-checked .ant-checkbox-inner { - background-color: @primary-color; - border-color: @primary-color; -} -.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after { - border-color: rgba(0, 0, 0, 0.25); -} -.ant-checkbox-disabled .ant-checkbox-inner { - border-color: #d9d9d9 !important; - background-color: #f5f5f5; -} -.ant-checkbox-disabled .ant-checkbox-inner:after { - border-color: #f5f5f5; -} -.ant-checkbox-disabled + span { - color: rgba(0, 0, 0, 0.25); -} -.ant-checkbox-wrapper { - color: rgba(0, 0, 0, 0.65); -} -.ant-checkbox-group { - color: rgba(0, 0, 0, 0.65); -} -.ant-collapse { - color: rgba(0, 0, 0, 0.65); - background-color: #fafafa; - border-radius: 4px; - border: 1px solid #d9d9d9; - border-bottom: 0; -} -.ant-collapse > .ant-collapse-item { - border-bottom: 1px solid #d9d9d9; -} -.ant-collapse > .ant-collapse-item:last-child, -.ant-collapse > .ant-collapse-item:last-child > .ant-collapse-header { - border-radius: 0 0 4px 4px; -} -.ant-collapse > .ant-collapse-item > .ant-collapse-header { - color: rgba(0, 0, 0, 0.85); -} -.ant-collapse-content { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - border-top: 1px solid #d9d9d9; -} -.ant-collapse-item:last-child > .ant-collapse-content { - border-radius: 0 0 4px 4px; -} -.ant-collapse-borderless { - background-color: #fff; - border: 0; -} -.ant-collapse-borderless > .ant-collapse-item { - border-bottom: 1px solid #d9d9d9; -} -.ant-collapse-borderless > .ant-collapse-item:last-child, -.ant-collapse-borderless > .ant-collapse-item:last-child .ant-collapse-header { - border-radius: 0; -} -.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content { - background-color: transparent; - border-top: 0; -} -.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header, -.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar-picker-container { - color: rgba(0, 0, 0, 0.65); -} -.ant-calendar-picker { - color: rgba(0, 0, 0, 0.65); -} -.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled) { - border-color: @primary-color; -} -.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled) { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-calendar-picker-clear { - color: rgba(0, 0, 0, 0.25); - background: #fff; -} -.ant-calendar-picker-clear:hover { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar-picker-icon { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar { - border: 1px solid #fff; - background-color: #fff; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - background-clip: padding-box; -} -.ant-calendar-input-wrap { - border-bottom: 1px solid #e8e8e8; -} -.ant-calendar-input { - border: 0; - color: rgba(0, 0, 0, 0.65); - background: #fff; -} -.ant-calendar-input::-moz-placeholder { - color: #bfbfbf; -} -.ant-calendar-input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-calendar-input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-calendar-header { - border-bottom: 1px solid #e8e8e8; -} -.ant-calendar-header a:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-calendar-header .ant-calendar-century-select, -.ant-calendar-header .ant-calendar-decade-select, -.ant-calendar-header .ant-calendar-year-select, -.ant-calendar-header .ant-calendar-month-select { - color: rgba(0, 0, 0, 0.85); -} -.ant-calendar-header .ant-calendar-prev-century-btn, -.ant-calendar-header .ant-calendar-next-century-btn, -.ant-calendar-header .ant-calendar-prev-decade-btn, -.ant-calendar-header .ant-calendar-next-decade-btn, -.ant-calendar-header .ant-calendar-prev-month-btn, -.ant-calendar-header .ant-calendar-next-month-btn, -.ant-calendar-header .ant-calendar-prev-year-btn, -.ant-calendar-header .ant-calendar-next-year-btn { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar table { - border-collapse: collapse; - background-color: transparent; -} -.ant-calendar table, -.ant-calendar th, -.ant-calendar td { - border: 0; -} -.ant-calendar-calendar-table { - border-spacing: 0; -} -.ant-calendar-date { - color: rgba(0, 0, 0, 0.65); - border-radius: 2px; - border: 1px solid transparent; - background: transparent; -} -.ant-calendar-date:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-calendar-date:active { - color: #fff; - background: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-calendar-today .ant-calendar-date { - border-color: @primary-color; - color: @primary-color; -} -.ant-calendar-last-month-cell .ant-calendar-date, -.ant-calendar-next-month-btn-day .ant-calendar-date { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar-selected-day .ant-calendar-date { - background: #d1e9ff; -} -.ant-calendar-selected-date .ant-calendar-date, -.ant-calendar-selected-start-date .ant-calendar-date, -.ant-calendar-selected-end-date .ant-calendar-date { - background: @primary-color; - color: #fff; - border: 1px solid transparent; -} -.ant-calendar-selected-date .ant-calendar-date:hover, -.ant-calendar-selected-start-date .ant-calendar-date:hover, -.ant-calendar-selected-end-date .ant-calendar-date:hover { - background: @primary-color; -} -.ant-calendar-disabled-cell .ant-calendar-date { - color: #bcbcbc; - background: #f5f5f5; - border-radius: 0; - border: 1px solid transparent; -} -.ant-calendar-disabled-cell .ant-calendar-date:hover { - background: #f5f5f5; -} -.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date:before { - border: 1px solid #bcbcbc; - border-radius: 2px; -} -.ant-calendar-disabled-cell-first-of-row .ant-calendar-date { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.ant-calendar-disabled-cell-last-of-row .ant-calendar-date { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.ant-calendar-footer { - border-top: 1px solid #e8e8e8; -} -.ant-calendar-footer:empty { - border-top: 0; -} -.ant-calendar .ant-calendar-today-btn-disabled, -.ant-calendar .ant-calendar-clear-btn-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar .ant-calendar-clear-btn:after { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar .ant-calendar-clear-btn:hover:after { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar .ant-calendar-ok-btn { - background-image: none; - border: 1px solid transparent; - box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); - color: #fff; - background-color: @primary-color; - border-color: @primary-color; - box-shadow: 0 2px 0 rgba(0, 0, 0, 0.035); - border-radius: 4px; -} -.ant-calendar .ant-calendar-ok-btn:not([disabled]):active { - box-shadow: none; -} -.ant-calendar .ant-calendar-ok-btn-lg { - border-radius: 4px; -} -.ant-calendar .ant-calendar-ok-btn-sm { - border-radius: 4px; -} -.ant-calendar .ant-calendar-ok-btn > a:only-child { - color: currentColor; -} -.ant-calendar .ant-calendar-ok-btn > a:only-child:after { - background: transparent; -} -.ant-calendar .ant-calendar-ok-btn:hover, -.ant-calendar .ant-calendar-ok-btn:focus { - color: #fff; - background-color: color(~`colorPalette("@{primary-color}", 5)`); - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-calendar .ant-calendar-ok-btn:hover > a:only-child, -.ant-calendar .ant-calendar-ok-btn:focus > a:only-child { - color: currentColor; -} -.ant-calendar .ant-calendar-ok-btn:hover > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn:focus > a:only-child:after { - background: transparent; -} -.ant-calendar .ant-calendar-ok-btn:active, -.ant-calendar .ant-calendar-ok-btn.active { - color: #fff; - background-color: color(~`colorPalette("@{primary-color}", 7)`); - border-color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-calendar .ant-calendar-ok-btn:active > a:only-child, -.ant-calendar .ant-calendar-ok-btn.active > a:only-child { - color: currentColor; -} -.ant-calendar .ant-calendar-ok-btn:active > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn.active > a:only-child:after { - background: transparent; -} -.ant-calendar .ant-calendar-ok-btn.disabled, -.ant-calendar .ant-calendar-ok-btn[disabled], -.ant-calendar .ant-calendar-ok-btn.disabled:hover, -.ant-calendar .ant-calendar-ok-btn[disabled]:hover, -.ant-calendar .ant-calendar-ok-btn.disabled:focus, -.ant-calendar .ant-calendar-ok-btn[disabled]:focus, -.ant-calendar .ant-calendar-ok-btn.disabled:active, -.ant-calendar .ant-calendar-ok-btn[disabled]:active, -.ant-calendar .ant-calendar-ok-btn.disabled.active, -.ant-calendar .ant-calendar-ok-btn[disabled].active { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-calendar .ant-calendar-ok-btn.disabled > a:only-child, -.ant-calendar .ant-calendar-ok-btn[disabled] > a:only-child, -.ant-calendar .ant-calendar-ok-btn.disabled:hover > a:only-child, -.ant-calendar .ant-calendar-ok-btn[disabled]:hover > a:only-child, -.ant-calendar .ant-calendar-ok-btn.disabled:focus > a:only-child, -.ant-calendar .ant-calendar-ok-btn[disabled]:focus > a:only-child, -.ant-calendar .ant-calendar-ok-btn.disabled:active > a:only-child, -.ant-calendar .ant-calendar-ok-btn[disabled]:active > a:only-child, -.ant-calendar .ant-calendar-ok-btn.disabled.active > a:only-child, -.ant-calendar .ant-calendar-ok-btn[disabled].active > a:only-child { - color: currentColor; -} -.ant-calendar .ant-calendar-ok-btn.disabled > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn[disabled] > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn.disabled:hover > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn[disabled]:hover > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn.disabled:focus > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn[disabled]:focus > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn.disabled:active > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn[disabled]:active > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn.disabled.active > a:only-child:after, -.ant-calendar .ant-calendar-ok-btn[disabled].active > a:only-child:after { - background: transparent; -} -.ant-calendar .ant-calendar-ok-btn-disabled { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; -} -.ant-calendar .ant-calendar-ok-btn-disabled > a:only-child { - color: currentColor; -} -.ant-calendar .ant-calendar-ok-btn-disabled > a:only-child:after { - background: transparent; -} -.ant-calendar .ant-calendar-ok-btn-disabled:hover { - color: rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - border-color: #d9d9d9; -} -.ant-calendar .ant-calendar-ok-btn-disabled:hover > a:only-child { - color: currentColor; -} -.ant-calendar .ant-calendar-ok-btn-disabled:hover > a:only-child:after { - background: transparent; -} -.ant-calendar-range-picker-input { - background-color: transparent; - border: 0; -} -.ant-calendar-range-picker-input::-moz-placeholder { - color: #bfbfbf; -} -.ant-calendar-range-picker-input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-calendar-range-picker-input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-calendar-range-picker-separator { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar-range-left .ant-calendar-time-picker-inner { - border-right: 1px solid #e8e8e8; -} -.ant-calendar-range-right .ant-calendar-time-picker-inner { - border-left: 1px solid #e8e8e8; -} -.ant-calendar-range-middle { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar-range .ant-calendar-input, -.ant-calendar-range .ant-calendar-time-picker-input { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; - border: 0; - box-shadow: none; -} -.ant-calendar-range .ant-calendar-input::-moz-placeholder, -.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder { - color: #bfbfbf; -} -.ant-calendar-range .ant-calendar-input:-ms-input-placeholder, -.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder, -.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-calendar-range .ant-calendar-input:hover, -.ant-calendar-range .ant-calendar-time-picker-input:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-calendar-range .ant-calendar-input:focus, -.ant-calendar-range .ant-calendar-time-picker-input:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-calendar-range .ant-calendar-input-disabled, -.ant-calendar-range .ant-calendar-time-picker-input-disabled { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar-range .ant-calendar-input-disabled:hover, -.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-calendar-range .ant-calendar-input:focus, -.ant-calendar-range .ant-calendar-time-picker-input:focus { - box-shadow: none; -} -.ant-calendar-range .ant-calendar-in-range-cell { - border-radius: 0; -} -.ant-calendar-range .ant-calendar-in-range-cell:before { - background: color(~`colorPalette("@{primary-color}", 1)`); - border-radius: 0; - border: 0; -} -.ant-calendar-range .ant-calendar-header, -.ant-calendar-range .ant-calendar-month-panel-header, -.ant-calendar-range .ant-calendar-year-panel-header { - border-bottom: 0; -} -.ant-calendar-range .ant-calendar-body, -.ant-calendar-range .ant-calendar-month-panel-body, -.ant-calendar-range .ant-calendar-year-panel-body { - border-top: 1px solid #e8e8e8; -} -.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-inner { - background: none; -} -.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox { - background-color: #fff; - border-top: 1px solid #e8e8e8; -} -.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body { - border-top-color: transparent; -} -.ant-calendar-time-picker { - background-color: #fff; -} -.ant-calendar-time-picker-inner { - background-color: #fff; - background-clip: padding-box; -} -.ant-calendar-time-picker-select { - border-right: 1px solid #e8e8e8; -} -.ant-calendar-time-picker-select:first-child { - border-left: 0; -} -.ant-calendar-time-picker-select:last-child { - border-right: 0; -} -.ant-calendar-time-picker-select li:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -li.ant-calendar-time-picker-select-option-selected { - background: #f5f5f5; -} -li.ant-calendar-time-picker-select-option-disabled { - color: rgba(0, 0, 0, 0.25); -} -li.ant-calendar-time-picker-select-option-disabled:hover { - background: transparent; -} -.ant-calendar-time .ant-calendar-day-select { - color: rgba(0, 0, 0, 0.85); -} -.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar-month-panel { - border-radius: 4px; - background: #fff; -} -.ant-calendar-month-panel-header { - border-bottom: 1px solid #e8e8e8; -} -.ant-calendar-month-panel-header a:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select, -.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select, -.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select, -.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select { - color: rgba(0, 0, 0, 0.85); -} -.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn, -.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn, -.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn, -.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn, -.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn, -.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn, -.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn, -.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar-month-panel-table { - border-collapse: separate; -} -.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month { - background: @primary-color; - color: #fff; -} -.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover { - background: @primary-color; - color: #fff; -} -.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month, -.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover { - color: #bcbcbc; - background: #f5f5f5; -} -.ant-calendar-month-panel-month { - color: rgba(0, 0, 0, 0.65); - background: transparent; - border-radius: 2px; -} -.ant-calendar-month-panel-month:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-calendar-year-panel { - border-radius: 4px; - background: #fff; -} -.ant-calendar-year-panel-header { - border-bottom: 1px solid #e8e8e8; -} -.ant-calendar-year-panel-header a:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select, -.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select, -.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select, -.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select { - color: rgba(0, 0, 0, 0.85); -} -.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn, -.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn, -.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn, -.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn, -.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn, -.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn, -.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn, -.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar-year-panel-table { - border-collapse: separate; -} -.ant-calendar-year-panel-year { - color: rgba(0, 0, 0, 0.65); - background: transparent; - border-radius: 2px; -} -.ant-calendar-year-panel-year:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year { - background: @primary-color; - color: #fff; -} -.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover { - background: @primary-color; - color: #fff; -} -.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year, -.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar-decade-panel { - background: #fff; - border-radius: 4px; -} -.ant-calendar-decade-panel-header { - border-bottom: 1px solid #e8e8e8; -} -.ant-calendar-decade-panel-header a:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select { - color: rgba(0, 0, 0, 0.85); -} -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn, -.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn { - color: rgba(0, 0, 0, 0.45); -} -.ant-calendar-decade-panel-table { - border-collapse: separate; -} -.ant-calendar-decade-panel-decade { - color: rgba(0, 0, 0, 0.65); - background: transparent; - border-radius: 2px; -} -.ant-calendar-decade-panel-decade:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade { - background: @primary-color; - color: #fff; -} -.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover { - background: @primary-color; - color: #fff; -} -.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade, -.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade { - color: rgba(0, 0, 0, 0.25); -} -.ant-calendar-week-number .ant-calendar-body tr:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week { - background: color(~`colorPalette("@{primary-color}", 2)`); -} -.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date, -.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date { - background: transparent; - color: rgba(0, 0, 0, 0.65); -} -.ant-divider { - color: rgba(0, 0, 0, 0.65); - background: #e8e8e8; -} -.ant-divider-horizontal.ant-divider-with-text, -.ant-divider-horizontal.ant-divider-with-text-left, -.ant-divider-horizontal.ant-divider-with-text-right { - background: transparent; - color: rgba(0, 0, 0, 0.85); -} -.ant-divider-horizontal.ant-divider-with-text:before, -.ant-divider-horizontal.ant-divider-with-text-left:before, -.ant-divider-horizontal.ant-divider-with-text-right:before, -.ant-divider-horizontal.ant-divider-with-text:after, -.ant-divider-horizontal.ant-divider-with-text-left:after, -.ant-divider-horizontal.ant-divider-with-text-right:after { - border-top: 1px solid #e8e8e8; -} -.ant-divider-dashed { - background: none; - border-top: 1px dashed #e8e8e8; -} -.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed, -.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed, -.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed { - border-top: 0; -} -.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:before, -.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:before, -.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:before, -.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:after, -.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:after, -.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:after { - border-style: dashed none none; -} -.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper { - box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); -} -.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper { - box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15); -} -.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper { - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper { - box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15); -} -.ant-drawer-title { - color: rgba(0, 0, 0, 0.85); -} -.ant-drawer-content { - background-color: #fff; - border: 0; - background-clip: padding-box; -} -.ant-drawer-close { - border: 0; - background: transparent; - color: rgba(0, 0, 0, 0.45); -} -.ant-drawer-close:focus, -.ant-drawer-close:hover { - color: #444; -} -.ant-drawer-header { - border-radius: 4px 4px 0 0; - background: #fff; - color: rgba(0, 0, 0, 0.65); - border-bottom: 1px solid #e8e8e8; -} -.ant-drawer-mask { - background-color: rgba(0, 0, 0, 0.65); -} -.ant-drawer-open-content { - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); -} -.ant-dropdown { - color: rgba(0, 0, 0, 0.65); -} -.ant-dropdown-menu { - background-color: #fff; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - background-clip: padding-box; -} -.ant-dropdown-menu-item-group-title { - color: rgba(0, 0, 0, 0.45); -} -.ant-dropdown-menu-item, -.ant-dropdown-menu-submenu-title { - color: rgba(0, 0, 0, 0.65); -} -.ant-dropdown-menu-item > a, -.ant-dropdown-menu-submenu-title > a { - color: rgba(0, 0, 0, 0.65); -} -.ant-dropdown-menu-item-selected, -.ant-dropdown-menu-submenu-title-selected, -.ant-dropdown-menu-item-selected > a, -.ant-dropdown-menu-submenu-title-selected > a { - color: @primary-color; - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-dropdown-menu-item:hover, -.ant-dropdown-menu-submenu-title:hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-dropdown-menu-item-disabled, -.ant-dropdown-menu-submenu-title-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-dropdown-menu-item-disabled:hover, -.ant-dropdown-menu-submenu-title-disabled:hover { - color: rgba(0, 0, 0, 0.25); - background-color: #fff; -} -.ant-dropdown-menu-item-divider, -.ant-dropdown-menu-submenu-title-divider { - background-color: #e8e8e8; -} -.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon, -.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon { - color: rgba(0, 0, 0, 0.45); -} -.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title, -.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon { - color: rgba(0, 0, 0, 0.25); -} -.ant-dropdown-menu-dark, -.ant-dropdown-menu-dark .ant-dropdown-menu { - background: #001529; -} -.ant-dropdown-menu-dark .ant-dropdown-menu-item, -.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title, -.ant-dropdown-menu-dark .ant-dropdown-menu-item > a { - color: rgba(255, 255, 255, 0.65); -} -.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after, -.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after, -.ant-dropdown-menu-dark .ant-dropdown-menu-item > a .ant-dropdown-menu-submenu-arrow:after { - color: rgba(255, 255, 255, 0.65); -} -.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover, -.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover, -.ant-dropdown-menu-dark .ant-dropdown-menu-item > a:hover { - color: #fff; - background: transparent; -} -.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected, -.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover, -.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected > a { - background: @primary-color; - color: #fff; -} -.ant-form { - color: rgba(0, 0, 0, 0.65); -} -.ant-form legend { - color: rgba(0, 0, 0, 0.45); - border: 0; - border-bottom: 1px solid #d9d9d9; -} -.ant-form output { - color: rgba(0, 0, 0, 0.65); -} -.ant-form-item-required:before { - color: #f5222d; -} -.ant-form-item { - color: rgba(0, 0, 0, 0.65); -} -.ant-form-item-label label { - color: rgba(0, 0, 0, 0.85); -} -.ant-form-explain, -.ant-form-extra { - color: rgba(0, 0, 0, 0.45); -} -form .ant-upload { - background: transparent; -} -.ant-input-group-wrap .ant-select-selection { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.ant-input-group-wrap .ant-select-selection:hover { - border-color: #d9d9d9; -} -.ant-input-group-wrap .ant-select-selection--single { - background-color: #eee; -} -.ant-input-group-wrap .ant-select-open .ant-select-selection { - border-color: #d9d9d9; - box-shadow: none; -} -.has-success.has-feedback .ant-form-item-children-icon { - color: #52c41a; -} -.has-warning .ant-form-explain, -.has-warning .ant-form-split { - color: #faad14; -} -.has-warning .ant-input, -.has-warning .ant-input:hover { - border-color: #faad14; -} -.has-warning .ant-input:focus { - border-color: #ffc53d; - box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); - border-right-width: 1px !important; -} -.has-warning .ant-input:not([disabled]):hover { - border-color: #faad14; -} -.has-warning .ant-calendar-picker-open .ant-calendar-picker-input { - border-color: #ffc53d; - box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); - border-right-width: 1px !important; -} -.has-warning .ant-input-prefix { - color: #faad14; -} -.has-warning .ant-input-group-addon { - color: #faad14; - border-color: #faad14; - background-color: #fff; -} -.has-warning .has-feedback { - color: #faad14; -} -.has-warning.has-feedback .ant-form-item-children-icon { - color: #faad14; -} -.has-warning .ant-select-selection { - border-color: #faad14; -} -.has-warning .ant-select-open .ant-select-selection, -.has-warning .ant-select-focused .ant-select-selection { - border-color: #ffc53d; - box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); - border-right-width: 1px !important; -} -.has-warning .ant-calendar-picker-icon:after, -.has-warning .ant-time-picker-icon:after, -.has-warning .ant-picker-icon:after, -.has-warning .ant-select-arrow, -.has-warning .ant-cascader-picker-arrow { - color: #faad14; -} -.has-warning .ant-input-number, -.has-warning .ant-time-picker-input { - border-color: #faad14; -} -.has-warning .ant-input-number-focused, -.has-warning .ant-time-picker-input-focused, -.has-warning .ant-input-number:focus, -.has-warning .ant-time-picker-input:focus { - border-color: #ffc53d; - box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); - border-right-width: 1px !important; -} -.has-warning .ant-input-number:not([disabled]):hover, -.has-warning .ant-time-picker-input:not([disabled]):hover { - border-color: #faad14; -} -.has-warning .ant-cascader-picker:focus .ant-cascader-input { - border-color: #ffc53d; - box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); - border-right-width: 1px !important; -} -.has-error .ant-form-explain, -.has-error .ant-form-split { - color: #f5222d; -} -.has-error .ant-input, -.has-error .ant-input:hover { - border-color: #f5222d; -} -.has-error .ant-input:focus { - border-color: #ff4d4f; - box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); - border-right-width: 1px !important; -} -.has-error .ant-input:not([disabled]):hover { - border-color: #f5222d; -} -.has-error .ant-calendar-picker-open .ant-calendar-picker-input { - border-color: #ff4d4f; - box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); - border-right-width: 1px !important; -} -.has-error .ant-input-prefix { - color: #f5222d; -} -.has-error .ant-input-group-addon { - color: #f5222d; - border-color: #f5222d; - background-color: #fff; -} -.has-error .has-feedback { - color: #f5222d; -} -.has-error.has-feedback .ant-form-item-children-icon { - color: #f5222d; -} -.has-error .ant-select-selection { - border-color: #f5222d; -} -.has-error .ant-select-open .ant-select-selection, -.has-error .ant-select-focused .ant-select-selection { - border-color: #ff4d4f; - box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); - border-right-width: 1px !important; -} -.has-error .ant-select.ant-select-auto-complete .ant-input:focus { - border-color: #f5222d; -} -.has-error .ant-input-group-addon .ant-select-selection { - border-color: transparent; - box-shadow: none; -} -.has-error .ant-calendar-picker-icon:after, -.has-error .ant-time-picker-icon:after, -.has-error .ant-picker-icon:after, -.has-error .ant-select-arrow, -.has-error .ant-cascader-picker-arrow { - color: #f5222d; -} -.has-error .ant-input-number, -.has-error .ant-time-picker-input { - border-color: #f5222d; -} -.has-error .ant-input-number-focused, -.has-error .ant-time-picker-input-focused, -.has-error .ant-input-number:focus, -.has-error .ant-time-picker-input:focus { - border-color: #ff4d4f; - box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); - border-right-width: 1px !important; -} -.has-error .ant-input-number:not([disabled]):hover, -.has-error .ant-time-picker-input:not([disabled]):hover { - border-color: #f5222d; -} -.has-error .ant-mention-wrapper .ant-mention-editor, -.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover { - border-color: #f5222d; -} -.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor, -.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus { - border-color: #ff4d4f; - box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); - border-right-width: 1px !important; -} -.has-error .ant-cascader-picker:focus .ant-cascader-input { - border-color: #ff4d4f; - box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); - border-right-width: 1px !important; -} -.is-validating.has-feedback .ant-form-item-children-icon { - color: @primary-color; -} -.ant-input-number { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-input-number::-moz-placeholder { - color: #bfbfbf; -} -.ant-input-number:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-input-number::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-input-number:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-input-number:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-input-number-disabled { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-input-number-disabled:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-input-number-handler { - color: rgba(0, 0, 0, 0.45); -} -.ant-input-number-handler:active { - background: #f4f4f4; -} -.ant-input-number-handler:hover .ant-input-number-handler-up-inner, -.ant-input-number-handler:hover .ant-input-number-handler-down-inner { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-input-number-handler-up-inner, -.ant-input-number-handler-down-inner { - color: rgba(0, 0, 0, 0.45); -} -.ant-input-number:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-input-number-focused { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-input-number-disabled { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-input-number-disabled:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-input-number-input { - background-color: transparent; - border: 0; - border-radius: 4px; -} -.ant-input-number-input::-moz-placeholder { - color: #bfbfbf; -} -.ant-input-number-input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-input-number-input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-input-number-handler-wrap { - border-left: 1px solid #d9d9d9; - background: #fff; - border-radius: 0 4px 4px 0; -} -.ant-input-number-handler-down { - border-top: 1px solid #d9d9d9; -} -.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner, -.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner { - color: rgba(0, 0, 0, 0.25); -} -.ant-input { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-input::-moz-placeholder { - color: #bfbfbf; -} -.ant-input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-input:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-input:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-input-disabled { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-input-disabled:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-input-group { - color: rgba(0, 0, 0, 0.65); - border-collapse: separate; - border-spacing: 0; -} -.ant-input-group-addon:not(:first-child):not(:last-child), -.ant-input-group-wrap:not(:first-child):not(:last-child), -.ant-input-group > .ant-input:not(:first-child):not(:last-child) { - border-radius: 0; -} -.ant-input-group .ant-input:focus { - border-right-width: 1px; -} -.ant-input-group .ant-input:hover { - border-right-width: 1px; -} -.ant-input-group-addon { - color: rgba(0, 0, 0, 0.65); - background-color: #fafafa; - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-input-group-addon .ant-select .ant-select-selection { - background-color: inherit; - border: 1px solid transparent; - box-shadow: none; -} -.ant-input-group-addon .ant-select-open .ant-select-selection, -.ant-input-group-addon .ant-select-focused .ant-select-selection { - color: @primary-color; -} -.ant-input-group > .ant-input:first-child, -.ant-input-group-addon:first-child { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.ant-input-group > .ant-input:first-child .ant-select .ant-select-selection, -.ant-input-group-addon:first-child .ant-select .ant-select-selection { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.ant-input-group-addon:first-child { - border-right: 0; -} -.ant-input-group-addon:last-child { - border-left: 0; -} -.ant-input-group > .ant-input:last-child, -.ant-input-group-addon:last-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.ant-input-group > .ant-input:last-child .ant-select .ant-select-selection, -.ant-input-group-addon:last-child .ant-select .ant-select-selection { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child), -.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child), -.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) { - border-right-width: 1px; - border-right-color: transparent; -} -.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover, -.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover, -.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus, -.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus, -.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-input-group.ant-input-group-compact > * { - border-radius: 0; - border-right-width: 0; -} -.ant-input-group.ant-input-group-compact > span:not(:last-child) > .ant-input { - border-right-width: 0; -} -.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor, -.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input { - border-radius: 0; - border-right-width: 1px; - border-right-color: transparent; -} -.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:hover, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:hover, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover, -.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:focus, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus, -.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-input-group.ant-input-group-compact > *:first-child, -.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selection, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker:first-child .ant-input, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:first-child .ant-mention-editor, -.ant-input-group.ant-input-group-compact > .ant-time-picker:first-child .ant-time-picker-input { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.ant-input-group.ant-input-group-compact > *:last-child, -.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor, -.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-right-width: 1px; - border-right-color: #d9d9d9; -} -.ant-input-group.ant-input-group-compact > *:last-child:hover, -.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection:hover, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input:hover, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input:hover, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input:hover, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input:hover, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor:hover, -.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-input-group.ant-input-group-compact > *:last-child:focus, -.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection:focus, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input:focus, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input:focus, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input:focus, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input:focus, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor:focus, -.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-input-group.ant-input-group-compact > *:last-child:focus .ant-cascader-input, -.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection:focus .ant-cascader-input, -.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input:focus .ant-cascader-input, -.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input:focus .ant-cascader-input, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input:focus .ant-cascader-input, -.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input:focus .ant-cascader-input, -.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor:focus .ant-cascader-input, -.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input:focus .ant-cascader-input { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-input-affix-wrapper { - color: rgba(0, 0, 0, 0.65); -} -.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled) { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-input-affix-wrapper .ant-input-prefix, -.ant-input-affix-wrapper .ant-input-suffix { - color: rgba(0, 0, 0, 0.65); -} -.ant-input-search-icon { - color: rgba(0, 0, 0, 0.45); -} -.ant-input-search-icon:hover { - color: #333; -} -.ant-input-search > .ant-input-suffix > .ant-input-search-button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.ant-layout { - background: #f0f2f5; -} -.ant-layout-header { - background: #001529; -} -.ant-layout-footer { - background: #f0f2f5; - color: rgba(0, 0, 0, 0.65); -} -.ant-layout-sider { - background: #001529; -} -.ant-layout-sider-trigger { - color: #fff; - background: #002140; -} -.ant-layout-sider-zero-width-trigger { - background: #001529; - color: #fff; - border-radius: 0 4px 4px 0; -} -.ant-layout-sider-zero-width-trigger:hover { - background: #192c3e; -} -.ant-layout-sider-light { - background: #fff; -} -.ant-layout-sider-light .ant-layout-sider-trigger { - color: rgba(0, 0, 0, 0.65); - background: #fff; -} -.ant-layout-sider-light .ant-layout-sider-zero-width-trigger { - color: rgba(0, 0, 0, 0.65); - background: #fff; -} -.ant-list { - color: rgba(0, 0, 0, 0.65); -} -.ant-list-empty-text { - color: rgba(0, 0, 0, 0.45); -} -.ant-list-item-meta-title { - color: rgba(0, 0, 0, 0.65); -} -.ant-list-item-meta-title > a { - color: rgba(0, 0, 0, 0.65); -} -.ant-list-item-meta-title > a:hover { - color: @primary-color; -} -.ant-list-item-meta-description { - color: rgba(0, 0, 0, 0.45); -} -.ant-list-item-action > li { - color: rgba(0, 0, 0, 0.45); -} -.ant-list-item-action-split { - background-color: #e8e8e8; -} -.ant-list-empty { - color: rgba(0, 0, 0, 0.45); -} -.ant-list-split .ant-list-item { - border-bottom: 1px solid #e8e8e8; -} -.ant-list-split .ant-list-item:last-child { - border-bottom: none; -} -.ant-list-split .ant-list-header { - border-bottom: 1px solid #e8e8e8; -} -.ant-list-something-after-last-item .ant-spin-container > .ant-list-item:last-child { - border-bottom: 1px solid #e8e8e8; -} -.ant-list-vertical .ant-list-item-meta-title { - color: rgba(0, 0, 0, 0.85); -} -.ant-list-vertical .ant-list-item-content { - color: rgba(0, 0, 0, 0.65); -} -.ant-list-grid .ant-list-item { - border-bottom: none; -} -.ant-list-bordered { - border-radius: 4px; - border: 1px solid #d9d9d9; -} -.ant-list-bordered .ant-list-item { - border-bottom: 1px solid #e8e8e8; -} -.ant-mention-wrapper { - color: rgba(0, 0, 0, 0.65); -} -.ant-mention-wrapper .ant-mention-editor { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-mention-wrapper .ant-mention-editor::-moz-placeholder { - color: #bfbfbf; -} -.ant-mention-wrapper .ant-mention-editor:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-mention-wrapper .ant-mention-editor::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-mention-wrapper .ant-mention-editor:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-mention-wrapper .ant-mention-editor:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-mention-wrapper .ant-mention-editor-disabled { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-mention-wrapper .ant-mention-editor-disabled:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-mention-wrapper.disabled .ant-mention-editor { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-mention-wrapper.disabled .ant-mention-editor:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-mention-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner { - color: #bfbfbf; -} -.ant-mention-dropdown { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - border-radius: 4px; -} -.ant-mention-dropdown-notfound.ant-mention-dropdown-item { - color: rgba(0, 0, 0, 0.25); -} -.ant-mention-dropdown-notfound.ant-mention-dropdown-item .anticon-loading { - color: @primary-color; -} -.ant-mention-dropdown-item { - color: rgba(0, 0, 0, 0.65); -} -.ant-mention-dropdown-item:hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-mention-dropdown-item.focus, -.ant-mention-dropdown-item-active { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-mention-dropdown-item-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-mention-dropdown-item-disabled:hover { - color: rgba(0, 0, 0, 0.25); - background-color: #fff; -} -.ant-mention-dropdown-item-selected, -.ant-mention-dropdown-item-selected:hover { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.65); -} -.ant-mention-dropdown-item-divider { - background-color: #e8e8e8; -} -.ant-menu { - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - color: rgba(0, 0, 0, 0.65); - background: #fff; -} -.ant-menu-item-group-title { - color: rgba(0, 0, 0, 0.45); -} -.ant-menu-item:active, -.ant-menu-submenu-title:active { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-menu-item > a { - color: rgba(0, 0, 0, 0.65); -} -.ant-menu-item > a:hover { - color: @primary-color; -} -.ant-menu-item > a:before { - background-color: transparent; -} -.ant-menu-item-divider { - background-color: #e8e8e8; -} -.ant-menu-item:hover, -.ant-menu-item-active, -.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, -.ant-menu-submenu-active, -.ant-menu-submenu-title:hover { - color: @primary-color; -} -.ant-menu-horizontal > .ant-menu-item:hover, -.ant-menu-horizontal > .ant-menu-item-active, -.ant-menu-horizontal > .ant-menu-submenu .ant-menu-submenu-title:hover { - background-color: transparent; -} -.ant-menu-item-selected { - color: @primary-color; -} -.ant-menu-item-selected > a, -.ant-menu-item-selected > a:hover { - color: @primary-color; -} -.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-menu-inline, -.ant-menu-vertical, -.ant-menu-vertical-left { - border-right: 1px solid #e8e8e8; -} -.ant-menu-vertical-right { - border-left: 1px solid #e8e8e8; -} -.ant-menu-vertical.ant-menu-sub, -.ant-menu-vertical-left.ant-menu-sub, -.ant-menu-vertical-right.ant-menu-sub { - border-right: 0; -} -.ant-menu-vertical.ant-menu-sub .ant-menu-item, -.ant-menu-vertical-left.ant-menu-sub .ant-menu-item, -.ant-menu-vertical-right.ant-menu-sub .ant-menu-item { - border-right: 0; -} -.ant-menu-vertical.ant-menu-sub .ant-menu-item:after, -.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after, -.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after { - border-right: 0; -} -.ant-menu > .ant-menu-item-divider { - background-color: #e8e8e8; -} -.ant-menu-submenu-popup { - border-radius: 4px; -} -.ant-menu-submenu > .ant-menu { - background-color: #fff; - border-radius: 4px; -} -.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, -.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, -.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, -.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, -.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow:after, -.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow:after, -.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow:after, -.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow:after { - background: #fff; - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65)); - border-radius: 2px; -} -.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, -.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, -.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, -.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, -.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before, -.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before, -.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before, -.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before { - background: linear-gradient(to right, @primary-color, @primary-color); -} -.ant-menu-vertical .ant-menu-submenu-selected, -.ant-menu-vertical-left .ant-menu-submenu-selected, -.ant-menu-vertical-right .ant-menu-submenu-selected { - color: @primary-color; -} -.ant-menu-vertical .ant-menu-submenu-selected > a, -.ant-menu-vertical-left .ant-menu-submenu-selected > a, -.ant-menu-vertical-right .ant-menu-submenu-selected > a { - color: @primary-color; -} -.ant-menu-horizontal { - border: 0; - border-bottom: 1px solid #e8e8e8; - box-shadow: none; -} -.ant-menu-horizontal > .ant-menu-item, -.ant-menu-horizontal > .ant-menu-submenu { - border-bottom: 2px solid transparent; -} -.ant-menu-horizontal > .ant-menu-item:hover, -.ant-menu-horizontal > .ant-menu-submenu:hover, -.ant-menu-horizontal > .ant-menu-item-active, -.ant-menu-horizontal > .ant-menu-submenu-active, -.ant-menu-horizontal > .ant-menu-item-open, -.ant-menu-horizontal > .ant-menu-submenu-open, -.ant-menu-horizontal > .ant-menu-item-selected, -.ant-menu-horizontal > .ant-menu-submenu-selected { - border-bottom: 2px solid @primary-color; - color: @primary-color; -} -.ant-menu-horizontal > .ant-menu-item > a { - color: rgba(0, 0, 0, 0.65); -} -.ant-menu-horizontal > .ant-menu-item > a:hover { - color: @primary-color; -} -.ant-menu-horizontal > .ant-menu-item-selected > a { - color: @primary-color; -} -.ant-menu-vertical .ant-menu-item:after, -.ant-menu-vertical-left .ant-menu-item:after, -.ant-menu-vertical-right .ant-menu-item:after, -.ant-menu-inline .ant-menu-item:after { - border-right: 3px solid @primary-color; -} -.ant-menu-inline-collapsed-tooltip a { - color: rgba(255, 255, 255, 0.85); -} -.ant-menu-root.ant-menu-vertical, -.ant-menu-root.ant-menu-vertical-left, -.ant-menu-root.ant-menu-vertical-right, -.ant-menu-root.ant-menu-inline { - box-shadow: none; -} -.ant-menu-sub.ant-menu-inline { - border: 0; - box-shadow: none; - border-radius: 0; -} -.ant-menu-item-disabled, -.ant-menu-submenu-disabled { - color: rgba(0, 0, 0, 0.25) !important; - background: none; - border-color: transparent !important; -} -.ant-menu-item-disabled > a, -.ant-menu-submenu-disabled > a { - color: rgba(0, 0, 0, 0.25) !important; -} -.ant-menu-item-disabled > .ant-menu-submenu-title, -.ant-menu-submenu-disabled > .ant-menu-submenu-title { - color: rgba(0, 0, 0, 0.25) !important; -} -.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after { - background: rgba(0, 0, 0, 0.25) !important; -} -.ant-menu-dark, -.ant-menu-dark .ant-menu-sub { - color: rgba(255, 255, 255, 0.65); - background: #001529; -} -.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before { - background: #fff; -} -.ant-menu-dark.ant-menu-submenu-popup { - background: transparent; -} -.ant-menu-dark .ant-menu-inline.ant-menu-sub { - background: #000c17; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45) inset; -} -.ant-menu-dark.ant-menu-horizontal { - border-bottom: 0; -} -.ant-menu-dark.ant-menu-horizontal > .ant-menu-item, -.ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu { - border-color: #001529; - border-bottom: 0; -} -.ant-menu-dark .ant-menu-item, -.ant-menu-dark .ant-menu-item-group-title, -.ant-menu-dark .ant-menu-item > a { - color: rgba(255, 255, 255, 0.65); -} -.ant-menu-dark.ant-menu-inline, -.ant-menu-dark.ant-menu-vertical, -.ant-menu-dark.ant-menu-vertical-left, -.ant-menu-dark.ant-menu-vertical-right { - border-right: 0; -} -.ant-menu-dark.ant-menu-inline .ant-menu-item, -.ant-menu-dark.ant-menu-vertical .ant-menu-item, -.ant-menu-dark.ant-menu-vertical-left .ant-menu-item, -.ant-menu-dark.ant-menu-vertical-right .ant-menu-item { - border-right: 0; -} -.ant-menu-dark.ant-menu-inline .ant-menu-item:after, -.ant-menu-dark.ant-menu-vertical .ant-menu-item:after, -.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after, -.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after { - border-right: 0; -} -.ant-menu-dark .ant-menu-item:hover, -.ant-menu-dark .ant-menu-item-active, -.ant-menu-dark .ant-menu-submenu-active, -.ant-menu-dark .ant-menu-submenu-open, -.ant-menu-dark .ant-menu-submenu-selected, -.ant-menu-dark .ant-menu-submenu-title:hover { - background-color: transparent; - color: #fff; -} -.ant-menu-dark .ant-menu-item:hover > a, -.ant-menu-dark .ant-menu-item-active > a, -.ant-menu-dark .ant-menu-submenu-active > a, -.ant-menu-dark .ant-menu-submenu-open > a, -.ant-menu-dark .ant-menu-submenu-selected > a, -.ant-menu-dark .ant-menu-submenu-title:hover > a { - color: #fff; -} -.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before { - background: #fff; -} -.ant-menu-dark .ant-menu-item-selected { - border-right: 0; - color: #fff; -} -.ant-menu-dark .ant-menu-item-selected:after { - border-right: 0; -} -.ant-menu-dark .ant-menu-item-selected > a, -.ant-menu-dark .ant-menu-item-selected > a:hover { - color: #fff; -} -.ant-menu.ant-menu-dark .ant-menu-item-selected, -.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected { - background-color: @primary-color; -} -.ant-menu-dark .ant-menu-item-disabled, -.ant-menu-dark .ant-menu-submenu-disabled, -.ant-menu-dark .ant-menu-item-disabled > a, -.ant-menu-dark .ant-menu-submenu-disabled > a { - color: rgba(255, 255, 255, 0.35) !important; -} -.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title, -.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title { - color: rgba(255, 255, 255, 0.35) !important; -} -.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, -.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, -.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after { - background: rgba(255, 255, 255, 0.35) !important; -} -.ant-message { - color: rgba(0, 0, 0, 0.65); -} -.ant-message-notice-content { - border-radius: 4px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - background: #fff; -} -.ant-message-success .anticon { - color: #52c41a; -} -.ant-message-error .anticon { - color: #f5222d; -} -.ant-message-warning .anticon { - color: #faad14; -} -.ant-message-info .anticon, -.ant-message-loading .anticon { - color: @primary-color; -} -.ant-modal { - color: rgba(0, 0, 0, 0.65); -} -.ant-modal-title { - color: rgba(0, 0, 0, 0.85); -} -.ant-modal-content { - background-color: #fff; - border: 0; - border-radius: 4px; - background-clip: padding-box; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); -} -.ant-modal-close { - border: 0; - background: transparent; - color: rgba(0, 0, 0, 0.45); -} -.ant-modal-close:focus, -.ant-modal-close:hover { - color: #444; -} -.ant-modal-header { - border-radius: 4px 4px 0 0; - background: #fff; - color: rgba(0, 0, 0, 0.65); - border-bottom: 1px solid #e8e8e8; -} -.ant-modal-footer { - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -.ant-modal-mask { - background-color: rgba(0, 0, 0, 0.65); -} -.ant-confirm-body .ant-confirm-title { - color: rgba(0, 0, 0, 0.85); -} -.ant-confirm-body .ant-confirm-content { - color: rgba(0, 0, 0, 0.65); -} -.ant-confirm-error .ant-confirm-body > .anticon { - color: #f5222d; -} -.ant-confirm-warning .ant-confirm-body > .anticon, -.ant-confirm-confirm .ant-confirm-body > .anticon { - color: #faad14; -} -.ant-confirm-info .ant-confirm-body > .anticon { - color: @primary-color; -} -.ant-confirm-success .ant-confirm-body > .anticon { - color: #52c41a; -} -.ant-notification { - color: rgba(0, 0, 0, 0.65); -} -.ant-notification-notice { - border-radius: 4px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - background: #fff; -} -.ant-notification-notice-message { - color: rgba(0, 0, 0, 0.85); -} -.ant-notification-notice-message-single-line-auto-margin { - background-color: transparent; -} -.ant-notification-notice-icon-success { - color: #52c41a; -} -.ant-notification-notice-icon-info { - color: @primary-color; -} -.ant-notification-notice-icon-warning { - color: #faad14; -} -.ant-notification-notice-icon-error { - color: #f5222d; -} -.ant-notification-notice-close { - color: rgba(0, 0, 0, 0.45); -} -.ant-notification-notice-close:hover { - color: rgba(0, 0, 0, 0.67); -} -.ant-pagination { - color: rgba(0, 0, 0, 0.65); -} -.ant-pagination-item { - border-radius: 4px; - border: 1px solid #d9d9d9; - background-color: #fff; -} -.ant-pagination-item a { - color: rgba(0, 0, 0, 0.65); -} -.ant-pagination-item:focus, -.ant-pagination-item:hover { - border-color: @primary-color; -} -.ant-pagination-item:focus a, -.ant-pagination-item:hover a { - color: @primary-color; -} -.ant-pagination-item-active { - border-color: @primary-color; -} -.ant-pagination-item-active a { - color: @primary-color; -} -.ant-pagination-item-active:focus, -.ant-pagination-item-active:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-pagination-item-active:focus a, -.ant-pagination-item-active:hover a { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon, -.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon { - color: @primary-color; -} -.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis, -.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis { - color: rgba(0, 0, 0, 0.25); -} -.ant-pagination-prev, -.ant-pagination-next, -.ant-pagination-jump-prev, -.ant-pagination-jump-next { - color: rgba(0, 0, 0, 0.65); - border-radius: 4px; -} -.ant-pagination-prev a, -.ant-pagination-next a { - color: rgba(0, 0, 0, 0.65); -} -.ant-pagination-prev:hover a, -.ant-pagination-next:hover a { - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-pagination-prev .ant-pagination-item-link, -.ant-pagination-next .ant-pagination-item-link { - border: 1px solid #d9d9d9; - background-color: #fff; - border-radius: 4px; -} -.ant-pagination-prev:focus .ant-pagination-item-link, -.ant-pagination-next:focus .ant-pagination-item-link, -.ant-pagination-prev:hover .ant-pagination-item-link, -.ant-pagination-next:hover .ant-pagination-item-link { - border-color: @primary-color; - color: @primary-color; -} -.ant-pagination-disabled a, -.ant-pagination-disabled:hover a, -.ant-pagination-disabled:focus a, -.ant-pagination-disabled .ant-pagination-item-link, -.ant-pagination-disabled:hover .ant-pagination-item-link, -.ant-pagination-disabled:focus .ant-pagination-item-link { - border-color: #d9d9d9; - color: rgba(0, 0, 0, 0.25); -} -.ant-pagination-options-quick-jumper input { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-pagination-options-quick-jumper input::-moz-placeholder { - color: #bfbfbf; -} -.ant-pagination-options-quick-jumper input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-pagination-options-quick-jumper input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-pagination-options-quick-jumper input:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-pagination-options-quick-jumper input:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-pagination-options-quick-jumper input-disabled { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-pagination-options-quick-jumper input-disabled:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link, -.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link { - border: 0; -} -.ant-pagination-simple .ant-pagination-simple-pager input { - background-color: #fff; - border-radius: 4px; - border: 1px solid #d9d9d9; -} -.ant-pagination-simple .ant-pagination-simple-pager input:hover { - border-color: @primary-color; -} -.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active) { - background: transparent; - border-color: transparent; -} -.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link, -.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link { - border-color: transparent; - background: transparent; -} -.ant-popover { - color: rgba(0, 0, 0, 0.65); -} -.ant-popover:after { - background: rgba(255, 255, 255, 0.01); -} -.ant-popover-inner { - background-color: #fff; - background-clip: padding-box; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-popover-title { - border-bottom: 1px solid #e8e8e8; - color: rgba(0, 0, 0, 0.85); -} -.ant-popover-inner-content { - color: rgba(0, 0, 0, 0.65); -} -.ant-popover-message { - color: rgba(0, 0, 0, 0.65); -} -.ant-popover-message > .anticon { - color: #faad14; -} -.ant-popover-arrow { - background: #fff; - border-color: transparent; - border-style: solid; -} -.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow { - box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07); -} -.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow { - box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07); -} -.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow { - box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06); -} -.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow, -.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow { - box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07); -} -.ant-progress { - color: rgba(0, 0, 0, 0.65); -} -.ant-progress-inner { - background-color: #f5f5f5; - border-radius: 100px; -} -.ant-progress-success-bg, -.ant-progress-bg { - background-color: @primary-color; -} -.ant-progress-success-bg { - background-color: #52c41a; -} -.ant-progress-text { - color: rgba(0, 0, 0, 0.45); -} -.ant-progress-status-active .ant-progress-bg:before { - background: #fff; - border-radius: 10px; -} -.ant-progress-status-exception .ant-progress-bg { - background-color: #f5222d; -} -.ant-progress-status-exception .ant-progress-text { - color: #f5222d; -} -.ant-progress-status-success .ant-progress-bg { - background-color: #52c41a; -} -.ant-progress-status-success .ant-progress-text { - color: #52c41a; -} -.ant-progress-circle .ant-progress-inner { - background-color: transparent; -} -.ant-progress-circle .ant-progress-text { - color: rgba(0, 0, 0, 0.65); -} -.ant-progress-circle.ant-progress-status-exception .ant-progress-text { - color: #f5222d; -} -.ant-progress-circle.ant-progress-status-success .ant-progress-text { - color: #52c41a; -} -.ant-radio-group { - color: rgba(0, 0, 0, 0.65); -} -.ant-radio-wrapper { - color: rgba(0, 0, 0, 0.65); -} -.ant-radio { - color: rgba(0, 0, 0, 0.65); -} -.ant-radio-wrapper:hover .ant-radio .ant-radio-inner, -.ant-radio:hover .ant-radio-inner, -.ant-radio-focused .ant-radio-inner { - border-color: @primary-color; -} -.ant-radio-checked:after { - border-radius: 50%; - border: 1px solid @primary-color; -} -.ant-radio-inner { - border-width: 1px; - border-style: solid; - border-radius: 100px; - border-color: #d9d9d9; - background-color: #fff; -} -.ant-radio-inner:after { - border-radius: 8px; - border-top: 0; - border-left: 0; - background-color: @primary-color; -} -.ant-radio-checked .ant-radio-inner { - border-color: @primary-color; -} -.ant-radio-disabled .ant-radio-inner { - border-color: #d9d9d9 !important; - background-color: #f5f5f5; -} -.ant-radio-disabled .ant-radio-inner:after { - background-color: #ccc; -} -.ant-radio-disabled + span { - color: rgba(0, 0, 0, 0.25); -} -.ant-radio-button-wrapper { - color: rgba(0, 0, 0, 0.65); - border: 1px solid #d9d9d9; - border-left: 0; - border-top-width: 1.02px; - background: #fff; -} -.ant-radio-button-wrapper a { - color: rgba(0, 0, 0, 0.65); -} -.ant-radio-button-wrapper:not(:first-child)::before { - background-color: #d9d9d9; -} -.ant-radio-button-wrapper:first-child { - border-radius: 4px 0 0 4px; - border-left: 1px solid #d9d9d9; -} -.ant-radio-button-wrapper:last-child { - border-radius: 0 4px 4px 0; -} -.ant-radio-button-wrapper:first-child:last-child { - border-radius: 4px; -} -.ant-radio-button-wrapper:hover, -.ant-radio-button-wrapper-focused { - color: @primary-color; -} -.ant-radio-button-wrapper-checked { - background: #fff; - border-color: @primary-color; - color: @primary-color; - box-shadow: -1px 0 0 0 @primary-color; -} -.ant-radio-button-wrapper-checked::before { - background-color: @primary-color !important; -} -.ant-radio-button-wrapper-checked:first-child { - border-color: @primary-color; - box-shadow: none !important; -} -.ant-radio-button-wrapper-checked:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: -1px 0 0 0 color(~`colorPalette("@{primary-color}", 5)`); - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-radio-button-wrapper-checked:active { - border-color: color(~`colorPalette("@{primary-color}", 7)`); - box-shadow: -1px 0 0 0 color(~`colorPalette("@{primary-color}", 7)`); - color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) { - background: @primary-color; - border-color: @primary-color; - color: #fff; -} -.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - background: color(~`colorPalette("@{primary-color}", 5)`); - color: #fff; -} -.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active { - border-color: color(~`colorPalette("@{primary-color}", 7)`); - background: color(~`colorPalette("@{primary-color}", 7)`); - color: #fff; -} -.ant-radio-button-wrapper-disabled { - border-color: #d9d9d9; - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-radio-button-wrapper-disabled:first-child, -.ant-radio-button-wrapper-disabled:hover { - border-color: #d9d9d9; - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-radio-button-wrapper-disabled:first-child { - border-left-color: #d9d9d9; -} -.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked { - color: #fff; - background-color: #e6e6e6; - border-color: #d9d9d9; - box-shadow: none; -} -.ant-rate { - color: rgba(0, 0, 0, 0.65); - color: #fadb14; -} -.ant-rate-star { - color: inherit; -} -.ant-rate-star-first, -.ant-rate-star-second { - color: #e8e8e8; -} -.ant-rate-star-half .ant-rate-star-first, -.ant-rate-star-full .ant-rate-star-second { - color: inherit; -} -.ant-select { - color: rgba(0, 0, 0, 0.65); -} -.ant-select > ul > li > a { - background-color: #fff; -} -.ant-select-arrow { - color: rgba(0, 0, 0, 0.25); -} -.ant-select-selection { - background-color: #fff; - border-radius: 4px; - border: 1px solid #d9d9d9; - border-top-width: 1.02px; -} -.ant-select-selection:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-select-focused .ant-select-selection, -.ant-select-selection:focus, -.ant-select-selection:active { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-select-selection__clear { - background: #fff; - color: rgba(0, 0, 0, 0.25); -} -.ant-select-selection__clear:hover { - color: rgba(0, 0, 0, 0.45); -} -.ant-select-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-select-disabled .ant-select-selection { - background: #f5f5f5; -} -.ant-select-disabled .ant-select-selection:hover, -.ant-select-disabled .ant-select-selection:focus, -.ant-select-disabled .ant-select-selection:active { - border-color: #d9d9d9; - box-shadow: none; -} -.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice { - background: #f5f5f5; - color: #aaa; -} -.ant-select-disabled .ant-select-selection__choice__remove { - color: rgba(0, 0, 0, 0.25); -} -.ant-select-disabled .ant-select-selection__choice__remove:hover { - color: rgba(0, 0, 0, 0.25); -} -.ant-select-selection__placeholder, -.ant-select-search__field__placeholder { - color: #bfbfbf; -} -.ant-select-search--inline .ant-select-search__field { - border-width: 0; - background: transparent; - border-radius: 4px; -} -.ant-select-selection--multiple .ant-select-selection__choice { - color: rgba(0, 0, 0, 0.65); - background-color: #fafafa; - border: 1px solid #e8e8e8; - border-radius: 2px; -} -.ant-select-selection--multiple .ant-select-selection__choice__remove { - color: rgba(0, 0, 0, 0.45); -} -.ant-select-selection--multiple .ant-select-selection__choice__remove:hover { - color: #404040; -} -.ant-select-open .ant-select-selection { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-select-combobox .ant-select-search__field { - box-shadow: none; -} -.ant-select-dropdown { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - border-radius: 4px; -} -.ant-select-dropdown-menu-item-group-title { - color: rgba(0, 0, 0, 0.45); -} -.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child), -.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child { - border-radius: 0; -} -.ant-select-dropdown-menu-item { - color: rgba(0, 0, 0, 0.65); -} -.ant-select-dropdown-menu-item:hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-select-dropdown-menu-item:first-child { - border-radius: 4px 4px 0 0; -} -.ant-select-dropdown-menu-item:last-child { - border-radius: 0 0 4px 4px; -} -.ant-select-dropdown-menu-item-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-select-dropdown-menu-item-disabled:hover { - color: rgba(0, 0, 0, 0.25); - background-color: #fff; -} -.ant-select-dropdown-menu-item-selected, -.ant-select-dropdown-menu-item-selected:hover { - background-color: #fafafa; - color: rgba(0, 0, 0, 0.65); -} -.ant-select-dropdown-menu-item-active { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-select-dropdown-menu-item-divider { - background-color: #e8e8e8; -} -.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item .ant-select-selected-icon { - color: transparent; -} -.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon { - color: #ddd; -} -.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon, -.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon { - color: @primary-color; -} -.ant-skeleton-header .ant-skeleton-avatar { - background: #f2f2f2; -} -.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle { - border-radius: 50%; -} -.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle { - border-radius: 50%; -} -.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle { - border-radius: 50%; -} -.ant-skeleton-content .ant-skeleton-title { - background: #f2f2f2; -} -.ant-skeleton-content .ant-skeleton-paragraph > li { - background: #f2f2f2; -} -.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title, -.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li { - background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); - background-size: 400% 100%; -} -.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar { - background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); - background-size: 400% 100%; -} -.ant-slider { - color: rgba(0, 0, 0, 0.65); -} -.ant-slider-rail { - border-radius: 2px; - background-color: #f5f5f5; -} -.ant-slider-track { - border-radius: 4px; - background-color: color(~`colorPalette("@{primary-color}", 3)`); -} -.ant-slider-handle { - border-radius: 50%; - border: solid 2px color(~`colorPalette("@{primary-color}", 3)`); - background-color: #fff; -} -.ant-slider-handle:focus { - border-color: #46a6ff; - box-shadow: 0 0 0 5px #8cc8ff; -} -.ant-slider-handle.ant-tooltip-open { - border-color: @primary-color; -} -.ant-slider:hover .ant-slider-rail { - background-color: #e1e1e1; -} -.ant-slider:hover .ant-slider-track { - background-color: color(~`colorPalette("@{primary-color}", 4)`); -} -.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open) { - border-color: color(~`colorPalette("@{primary-color}", 4)`); -} -.ant-slider-mark-text { - color: rgba(0, 0, 0, 0.45); -} -.ant-slider-mark-text-active { - color: rgba(0, 0, 0, 0.65); -} -.ant-slider-step { - background: transparent; -} -.ant-slider-dot { - border: 2px solid #e8e8e8; - background-color: #fff; - border-radius: 50%; -} -.ant-slider-dot-active { - border-color: #8cc8ff; -} -.ant-slider-disabled .ant-slider-track { - background-color: rgba(0, 0, 0, 0.25) !important; -} -.ant-slider-disabled .ant-slider-handle, -.ant-slider-disabled .ant-slider-dot { - border-color: rgba(0, 0, 0, 0.25) !important; - background-color: #fff; - box-shadow: none; -} -.ant-spin { - color: rgba(0, 0, 0, 0.65); - color: @primary-color; -} -.ant-spin-blur:after { - background: #fff; -} -.ant-spin-tip { - color: rgba(0, 0, 0, 0.45); -} -.ant-spin-dot i { - border-radius: 100%; - background-color: @primary-color; -} -.ant-steps { - color: rgba(0, 0, 0, 0.65); -} -.ant-steps-item-icon { - border: 1px solid rgba(0, 0, 0, 0.25); - border-radius: 32px; -} -.ant-steps-item-icon > .ant-steps-icon { - color: @primary-color; -} -.ant-steps-item-tail:after { - background: #e8e8e8; - border-radius: 1px; -} -.ant-steps-item-title { - color: rgba(0, 0, 0, 0.65); -} -.ant-steps-item-title:after { - background: #e8e8e8; -} -.ant-steps-item-description { - color: rgba(0, 0, 0, 0.45); -} -.ant-steps-item-wait .ant-steps-item-icon { - border-color: rgba(0, 0, 0, 0.25); - background-color: #fff; -} -.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon { - color: rgba(0, 0, 0, 0.25); -} -.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { - background: rgba(0, 0, 0, 0.25); -} -.ant-steps-item-wait > .ant-steps-item-content > .ant-steps-item-title { - color: rgba(0, 0, 0, 0.45); -} -.ant-steps-item-wait > .ant-steps-item-content > .ant-steps-item-title:after { - background-color: #e8e8e8; -} -.ant-steps-item-wait > .ant-steps-item-content > .ant-steps-item-description { - color: rgba(0, 0, 0, 0.45); -} -.ant-steps-item-wait > .ant-steps-item-tail:after { - background-color: #e8e8e8; -} -.ant-steps-item-process .ant-steps-item-icon { - border-color: @primary-color; - background-color: #fff; -} -.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon { - color: @primary-color; -} -.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { - background: @primary-color; -} -.ant-steps-item-process > .ant-steps-item-content > .ant-steps-item-title { - color: rgba(0, 0, 0, 0.85); -} -.ant-steps-item-process > .ant-steps-item-content > .ant-steps-item-title:after { - background-color: #e8e8e8; -} -.ant-steps-item-process > .ant-steps-item-content > .ant-steps-item-description { - color: rgba(0, 0, 0, 0.65); -} -.ant-steps-item-process > .ant-steps-item-tail:after { - background-color: #e8e8e8; -} -.ant-steps-item-process .ant-steps-item-icon { - background: @primary-color; -} -.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon { - color: #fff; -} -.ant-steps-item-finish .ant-steps-item-icon { - border-color: @primary-color; - background-color: #fff; -} -.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon { - color: @primary-color; -} -.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { - background: @primary-color; -} -.ant-steps-item-finish > .ant-steps-item-content > .ant-steps-item-title { - color: rgba(0, 0, 0, 0.65); -} -.ant-steps-item-finish > .ant-steps-item-content > .ant-steps-item-title:after { - background-color: @primary-color; -} -.ant-steps-item-finish > .ant-steps-item-content > .ant-steps-item-description { - color: rgba(0, 0, 0, 0.45); -} -.ant-steps-item-finish > .ant-steps-item-tail:after { - background-color: @primary-color; -} -.ant-steps-item-error .ant-steps-item-icon { - border-color: #f5222d; - background-color: #fff; -} -.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon { - color: #f5222d; -} -.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { - background: #f5222d; -} -.ant-steps-item-error > .ant-steps-item-content > .ant-steps-item-title { - color: #f5222d; -} -.ant-steps-item-error > .ant-steps-item-content > .ant-steps-item-title:after { - background-color: #e8e8e8; -} -.ant-steps-item-error > .ant-steps-item-content > .ant-steps-item-description { - color: #f5222d; -} -.ant-steps-item-error > .ant-steps-item-tail:after { - background-color: #e8e8e8; -} -.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after { - background: #f5222d; -} -.ant-steps-item-custom .ant-steps-item-icon { - background: none; - border: 0; -} -.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon { - color: @primary-color; -} -.ant-steps-small .ant-steps-item-icon { - border-radius: 24px; -} -.ant-steps-small .ant-steps-item-description { - color: rgba(0, 0, 0, 0.45); -} -.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon { - border-radius: 0; - border: 0; - background: none; -} -.ant-steps-dot .ant-steps-item-icon { - border: 0; - background: transparent; -} -.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot { - border-radius: 100px; -} -.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after { - background: rgba(0, 0, 0, 0.001); -} -.ant-switch { - color: rgba(0, 0, 0, 0.65); - border-radius: 100px; - border: 1px solid transparent; - background-color: rgba(0, 0, 0, 0.25); -} -.ant-switch-inner { - color: #fff; -} -.ant-switch-loading-icon, -.ant-switch:after { - border-radius: 18px; - background-color: #fff; -} -.ant-switch:after { - box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2); -} -.ant-switch-loading-icon { - background: transparent; -} -.ant-switch-loading .ant-switch-loading-icon { - color: rgba(0, 0, 0, 0.65); -} -.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon { - color: @primary-color; -} -.ant-switch:focus { - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); -} -.ant-switch:focus:hover { - box-shadow: none; -} -.ant-switch-checked { - background-color: @primary-color; -} -.ant-table { - color: rgba(0, 0, 0, 0.65); -} -.ant-table table { - border-collapse: collapse; - border-radius: 4px 4px 0 0; -} -.ant-table-thead > tr > th { - background: #fafafa; - color: rgba(0, 0, 0, 0.85); - border-bottom: 1px solid #e8e8e8; -} -.ant-table-thead > tr > th .anticon-filter, -.ant-table-thead > tr > th .ant-table-filter-icon { - color: #bfbfbf; -} -.ant-table-thead > tr > th .ant-table-filter-selected.anticon-filter { - color: @primary-color; -} -.ant-table-thead > tr > th .ant-table-column-sorter { - color: #bfbfbf; -} -.ant-table-thead > tr > th .ant-table-column-sorter-up.on, -.ant-table-thead > tr > th .ant-table-column-sorter-down.on { - color: @primary-color; -} -.ant-table-thead > tr > th.ant-table-column-has-actions:hover { - background: #f5f5f5; -} -.ant-table-thead > tr > th.ant-table-column-has-actions:hover .anticon-filter, -.ant-table-thead > tr > th.ant-table-column-has-actions:hover .ant-table-filter-icon { - background: #f5f5f5; -} -.ant-table-thead > tr > th.ant-table-column-has-actions:hover .anticon-filter:hover, -.ant-table-thead > tr > th.ant-table-column-has-actions:hover .ant-table-filter-icon:hover { - color: rgba(0, 0, 0, 0.45); - background: #ebebeb; -} -.ant-table-thead > tr > th.ant-table-column-has-actions:hover .anticon-filter:active, -.ant-table-thead > tr > th.ant-table-column-has-actions:hover .ant-table-filter-icon:active { - color: rgba(0, 0, 0, 0.65); -} -.ant-table-thead > tr > th.ant-table-column-has-actions .anticon-filter.ant-table-filter-open, -.ant-table-thead > tr > th.ant-table-column-has-actions .ant-table-filter-icon.ant-table-filter-open { - color: rgba(0, 0, 0, 0.45); - background: #ebebeb; -} -.ant-table-thead > tr > th.ant-table-column-has-actions:active .ant-table-column-sorter-up:not(.on), -.ant-table-thead > tr > th.ant-table-column-has-actions:active .ant-table-column-sorter-down:not(.on) { - color: rgba(0, 0, 0, 0.45); -} -.ant-table-thead > tr > th .ant-table-column-sorters:before { - background: transparent; -} -.ant-table-thead > tr > th .ant-table-column-sorters:hover:before { - background: rgba(0, 0, 0, 0.04); -} -.ant-table-thead > tr:first-child > th:first-child { - border-top-left-radius: 4px; -} -.ant-table-thead > tr:first-child > th:last-child { - border-top-right-radius: 4px; -} -.ant-table-thead > tr:not(:last-child) > th[colspan] { - border-bottom: 0; -} -.ant-table-tbody > tr > td { - border-bottom: 1px solid #e8e8e8; -} -.ant-table-thead > tr.ant-table-row-hover > td, -.ant-table-tbody > tr.ant-table-row-hover > td, -.ant-table-thead > tr:hover > td, -.ant-table-tbody > tr:hover > td { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-table-thead > tr:hover { - background: none; -} -.ant-table-footer { - background: #fafafa; - border-radius: 0 0 4px 4px; - border-top: 1px solid #e8e8e8; -} -.ant-table-footer:before { - background: #fafafa; -} -.ant-table.ant-table-bordered .ant-table-footer { - border: 1px solid #e8e8e8; -} -.ant-table-title { - border-radius: 4px 4px 0 0; -} -.ant-table.ant-table-bordered .ant-table-title { - border: 1px solid #e8e8e8; -} -.ant-table-title + .ant-table-content { - border-radius: 4px 4px 0 0; -} -.ant-table-bordered .ant-table-title + .ant-table-content, -.ant-table-bordered .ant-table-title + .ant-table-content table, -.ant-table-bordered .ant-table-title + .ant-table-content .ant-table-thead > tr:first-child > th { - border-radius: 0; -} -.ant-table-without-column-header .ant-table-title + .ant-table-content, -.ant-table-without-column-header table { - border-radius: 0; -} -.ant-table-tbody > tr.ant-table-row-selected td { - background: #fafafa; -} -.ant-table-thead > tr > th.ant-table-column-sort { - background: #f5f5f5; -} -.ant-table-tbody > tr > td.ant-table-column-sort { - background: rgba(0, 0, 0, 0.01); -} -.ant-table-header { - background: #fafafa; -} -.ant-table-header table { - border-radius: 4px 4px 0 0; -} -.ant-table-loading .ant-table-body { - background: #fff; -} -.ant-table-bordered .ant-table-header > table, -.ant-table-bordered .ant-table-body > table, -.ant-table-bordered .ant-table-fixed-left table, -.ant-table-bordered .ant-table-fixed-right table { - border: 1px solid #e8e8e8; - border-right: 0; - border-bottom: 0; -} -.ant-table-bordered.ant-table-empty .ant-table-placeholder { - border-left: 1px solid #e8e8e8; - border-right: 1px solid #e8e8e8; -} -.ant-table-bordered.ant-table-fixed-header .ant-table-header > table { - border-bottom: 0; -} -.ant-table-bordered.ant-table-fixed-header .ant-table-body > table { - border-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner > table { - border-top: 0; -} -.ant-table-bordered.ant-table-fixed-header .ant-table-placeholder { - border: 0; -} -.ant-table-bordered .ant-table-thead > tr:not(:last-child) > th { - border-bottom: 1px solid #e8e8e8; -} -.ant-table-bordered .ant-table-thead > tr > th, -.ant-table-bordered .ant-table-tbody > tr > td { - border-right: 1px solid #e8e8e8; -} -.ant-table-placeholder { - background: #fff; - border-bottom: 1px solid #e8e8e8; - color: rgba(0, 0, 0, 0.45); -} -.ant-table-filter-dropdown { - background: #fff; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-table-filter-dropdown .ant-dropdown-menu { - border: 0; - box-shadow: none; - border-radius: 4px 4px 0 0; -} -.ant-table-filter-dropdown .ant-dropdown-menu-sub { - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after { - color: @primary-color; -} -.ant-table-filter-dropdown > .ant-dropdown-menu > .ant-dropdown-menu-item:last-child, -.ant-table-filter-dropdown > .ant-dropdown-menu > .ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title { - border-radius: 0; -} -.ant-table-filter-dropdown-btns { - border-top: 1px solid #e8e8e8; -} -.ant-table-filter-dropdown-link { - color: @primary-color; -} -.ant-table-filter-dropdown-link:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-table-filter-dropdown-link:active { - color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-table-selection .anticon-down { - color: #bfbfbf; -} -.ant-table-selection-menu { - background: #fff; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-table-selection-menu .ant-action-down { - color: #bfbfbf; -} -.ant-table-selection-down:hover .anticon-down { - color: #666; -} -.ant-table-row-expand-icon { - border: 1px solid #e8e8e8; - background: #fff; -} -tr.ant-table-expanded-row, -tr.ant-table-expanded-row:hover { - background: #fbfbfb; -} -.ant-table-fixed-header > .ant-table-content > .ant-table-scroll > .ant-table-body { - background: #fff; -} -.ant-table-fixed-left, -.ant-table-fixed-right { - border-radius: 0; -} -.ant-table-fixed-left table, -.ant-table-fixed-right table { - background: #fff; -} -.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed, -.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed { - border-radius: 0; -} -.ant-table-fixed-left { - box-shadow: 6px 0 6px -4px rgba(0, 0, 0, 0.15); -} -.ant-table-fixed-left, -.ant-table-fixed-left table { - border-radius: 4px 0 0 0; -} -.ant-table-fixed-left .ant-table-thead > tr > th:last-child { - border-top-right-radius: 0; -} -.ant-table-fixed-right { - box-shadow: -6px 0 6px -4px rgba(0, 0, 0, 0.15); -} -.ant-table-fixed-right, -.ant-table-fixed-right table { - border-radius: 0 4px 0 0; -} -.ant-table-fixed-right .ant-table-expanded-row { - color: transparent; -} -.ant-table-fixed-right .ant-table-thead > tr > th:first-child { - border-top-left-radius: 0; -} -.ant-table.ant-table-scroll-position-left .ant-table-fixed-left { - box-shadow: none; -} -.ant-table.ant-table-scroll-position-right .ant-table-fixed-right { - box-shadow: none; -} -.ant-table-small { - border: 1px solid #e8e8e8; - border-radius: 4px; -} -.ant-table-small > .ant-table-title { - border-bottom: 1px solid #e8e8e8; -} -.ant-table-small > .ant-table-content > .ant-table-header > table, -.ant-table-small > .ant-table-content > .ant-table-body > table, -.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-header > table, -.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-body > table, -.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table, -.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table, -.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table, -.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table { - border: 0; -} -.ant-table-small > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, -.ant-table-small > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, -.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, -.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, -.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, -.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-thead > tr > th, -.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, -.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th { - background: #fff; - border-bottom: 1px solid #e8e8e8; -} -.ant-table-small > .ant-table-content .ant-table-header { - background: #fff; -} -.ant-table-small > .ant-table-content .ant-table-placeholder, -.ant-table-small > .ant-table-content .ant-table-row:last-child td { - border-bottom: 0; -} -.ant-table-small.ant-table-bordered { - border-right: 0; -} -.ant-table-small.ant-table-bordered .ant-table-title { - border: 0; - border-bottom: 1px solid #e8e8e8; - border-right: 1px solid #e8e8e8; -} -.ant-table-small.ant-table-bordered .ant-table-content { - border-right: 1px solid #e8e8e8; -} -.ant-table-small.ant-table-bordered .ant-table-footer { - border: 0; - border-top: 1px solid #e8e8e8; - border-right: 1px solid #e8e8e8; -} -.ant-table-small.ant-table-bordered .ant-table-placeholder { - border-left: 0; - border-bottom: 0; -} -.ant-table-small.ant-table-bordered .ant-table-thead > tr > th:last-child, -.ant-table-small.ant-table-bordered .ant-table-tbody > tr > td:last-child { - border-right: none; -} -.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead > tr > th:last-child, -.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody > tr > td:last-child { - border-right: 1px solid #e8e8e8; -} -.ant-table-small.ant-table-bordered .ant-table-fixed-right { - border-right: 1px solid #e8e8e8; -} -.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab { - border: 1px solid #e8e8e8; - border-bottom: 0; - border-radius: 4px 4px 0 0; - background: #fafafa; -} -.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab-active { - background: #fff; - border-color: @primary-color !important; - color: @primary-color; -} -.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab .ant-tabs-close-x { - color: rgba(0, 0, 0, 0.45); -} -.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab .ant-tabs-close-x:hover { - color: rgba(0, 0, 0, 0.85); -} -.ant-tabs-extra-content .ant-tabs-new-tab { - border-radius: 2px; - border: 1px solid #e8e8e8; - color: rgba(0, 0, 0, 0.65); -} -.ant-tabs-extra-content .ant-tabs-new-tab:hover { - color: @primary-color; - border-color: @primary-color; -} -.ant-tabs-vertical.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab { - border-bottom: 1px solid #e8e8e8; -} -.ant-tabs-vertical.ant-tabs-card.ant-tabs-left > .ant-tabs-bar .ant-tabs-tab { - border-right: 0; - border-radius: 4px 0 0 4px; -} -.ant-tabs-vertical.ant-tabs-card.ant-tabs-right > .ant-tabs-bar .ant-tabs-tab { - border-left: 0; - border-radius: 0 4px 4px 0; -} -.ant-tabs.ant-tabs-card.ant-tabs-bottom > .ant-tabs-bar .ant-tabs-tab { - border-bottom: 1px solid #e8e8e8; - border-top: 0; - border-radius: 0 0 4px 4px; -} -.ant-tabs.ant-tabs-card.ant-tabs-bottom > .ant-tabs-bar .ant-tabs-tab-active { - color: @primary-color; -} -.ant-tabs { - color: rgba(0, 0, 0, 0.65); -} -.ant-tabs-ink-bar { - background-color: @primary-color; -} -.ant-tabs-bar { - border-bottom: 1px solid #e8e8e8; -} -.ant-tabs-bottom .ant-tabs-bar { - border-bottom: none; - border-top: 1px solid #e8e8e8; -} -.ant-tabs-tab-prev, -.ant-tabs-tab-next { - border: 0; - background-color: transparent; - color: rgba(0, 0, 0, 0.45); -} -.ant-tabs-tab-prev:hover, -.ant-tabs-tab-next:hover { - color: rgba(0, 0, 0, 0.65); -} -.ant-tabs-tab-btn-disabled, -.ant-tabs-tab-btn-disabled:hover { - color: rgba(0, 0, 0, 0.25); -} -.ant-tabs-nav .ant-tabs-tab-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-tabs-nav .ant-tabs-tab:hover { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-tabs-nav .ant-tabs-tab:active { - color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-tabs-nav .ant-tabs-tab-active { - color: @primary-color; -} -.ant-tabs-vertical > .ant-tabs-bar { - border-bottom: 0; -} -.ant-tabs-vertical.ant-tabs-left > .ant-tabs-bar { - border-right: 1px solid #e8e8e8; -} -.ant-tabs-vertical.ant-tabs-left > .ant-tabs-content { - border-left: 1px solid #e8e8e8; -} -.ant-tabs-vertical.ant-tabs-right > .ant-tabs-bar { - border-left: 1px solid #e8e8e8; -} -.ant-tabs-vertical.ant-tabs-right > .ant-tabs-content { - border-right: 1px solid #e8e8e8; -} -.ant-tag { - color: rgba(0, 0, 0, 0.65); - border-radius: 4px; - border: 1px solid #d9d9d9; - background: #fafafa; -} -.ant-tag, -.ant-tag a, -.ant-tag a:hover { - color: rgba(0, 0, 0, 0.65); -} -.ant-tag .anticon-close { - color: rgba(0, 0, 0, 0.45); -} -.ant-tag .anticon-close:hover { - color: rgba(0, 0, 0, 0.85); -} -.ant-tag-has-color { - border-color: transparent; -} -.ant-tag-has-color, -.ant-tag-has-color a, -.ant-tag-has-color a:hover, -.ant-tag-has-color .anticon-close, -.ant-tag-has-color .anticon-close:hover { - color: #fff; -} -.ant-tag-checkable { - background-color: transparent; - border-color: transparent; -} -.ant-tag-checkable:not(.ant-tag-checkable-checked):hover { - color: @primary-color; -} -.ant-tag-checkable:active, -.ant-tag-checkable-checked { - color: #fff; -} -.ant-tag-checkable-checked { - background-color: @primary-color; -} -.ant-tag-checkable:active { - background-color: color(~`colorPalette("@{primary-color}", 7)`); -} -.ant-tag-pink { - color: #eb2f96; - background: #fff0f6; - border-color: #ffadd2; -} -.ant-tag-pink-inverse { - background: #eb2f96; - border-color: #eb2f96; - color: #fff; -} -.ant-tag-magenta { - color: #eb2f96; - background: #fff0f6; - border-color: #ffadd2; -} -.ant-tag-magenta-inverse { - background: #eb2f96; - border-color: #eb2f96; - color: #fff; -} -.ant-tag-red { - color: #f5222d; - background: #fff1f0; - border-color: #ffa39e; -} -.ant-tag-red-inverse { - background: #f5222d; - border-color: #f5222d; - color: #fff; -} -.ant-tag-volcano { - color: #fa541c; - background: #fff2e8; - border-color: #ffbb96; -} -.ant-tag-volcano-inverse { - background: #fa541c; - border-color: #fa541c; - color: #fff; -} -.ant-tag-orange { - color: #fa8c16; - background: #fff7e6; - border-color: #ffd591; -} -.ant-tag-orange-inverse { - background: #fa8c16; - border-color: #fa8c16; - color: #fff; -} -.ant-tag-yellow { - color: #fadb14; - background: #feffe6; - border-color: #fffb8f; -} -.ant-tag-yellow-inverse { - background: #fadb14; - border-color: #fadb14; - color: #fff; -} -.ant-tag-gold { - color: #faad14; - background: #fffbe6; - border-color: #ffe58f; -} -.ant-tag-gold-inverse { - background: #faad14; - border-color: #faad14; - color: #fff; -} -.ant-tag-cyan { - color: #13c2c2; - background: #e6fffb; - border-color: #87e8de; -} -.ant-tag-cyan-inverse { - background: #13c2c2; - border-color: #13c2c2; - color: #fff; -} -.ant-tag-lime { - color: #a0d911; - background: #fcffe6; - border-color: #eaff8f; -} -.ant-tag-lime-inverse { - background: #a0d911; - border-color: #a0d911; - color: #fff; -} -.ant-tag-green { - color: #52c41a; - background: #f6ffed; - border-color: #b7eb8f; -} -.ant-tag-green-inverse { - background: #52c41a; - border-color: #52c41a; - color: #fff; -} -.ant-tag-blue { - color: @primary-color; - background: color(~`colorPalette("@{primary-color}", 1)`); - border-color: color(~`colorPalette("@{primary-color}", 3)`); -} -.ant-tag-blue-inverse { - background: @primary-color; - border-color: @primary-color; - color: #fff; -} -.ant-tag-geekblue { - color: #2f54eb; - background: #f0f5ff; - border-color: #adc6ff; -} -.ant-tag-geekblue-inverse { - background: #2f54eb; - border-color: #2f54eb; - color: #fff; -} -.ant-tag-purple { - color: #722ed1; - background: #f9f0ff; - border-color: #d3adf7; -} -.ant-tag-purple-inverse { - background: #722ed1; - border-color: #722ed1; - color: #fff; -} -.ant-time-picker-panel { - color: rgba(0, 0, 0, 0.65); -} -.ant-time-picker-panel-inner { - background-color: #fff; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - background-clip: padding-box; -} -.ant-time-picker-panel-input { - border: 0; -} -.ant-time-picker-panel-input::-moz-placeholder { - color: #bfbfbf; -} -.ant-time-picker-panel-input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-time-picker-panel-input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-time-picker-panel-input-wrap { - border-bottom: 1px solid #e8e8e8; -} -.ant-time-picker-panel-input-invalid { - border-color: red; -} -.ant-time-picker-panel-clear-btn-icon svg { - color: rgba(0, 0, 0, 0.25); -} -.ant-time-picker-panel-clear-btn-icon svg:hover { - color: rgba(0, 0, 0, 0.45); -} -.ant-time-picker-panel-select { - border-left: 1px solid #e8e8e8; -} -.ant-time-picker-panel-select:first-child { - border-left: 0; -} -.ant-time-picker-panel-select:last-child { - border-right: 0; -} -.ant-time-picker-panel-select li:hover { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -li.ant-time-picker-panel-select-option-selected { - background: #f5f5f5; -} -li.ant-time-picker-panel-select-option-selected:hover { - background: #f5f5f5; -} -li.ant-time-picker-panel-select-option-disabled { - color: rgba(0, 0, 0, 0.25); -} -li.ant-time-picker-panel-select-option-disabled:hover { - background: transparent; -} -.ant-time-picker-panel-addon { - border-top: 1px solid #e8e8e8; -} -.ant-time-picker { - color: rgba(0, 0, 0, 0.65); -} -.ant-time-picker-input { - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-time-picker-input::-moz-placeholder { - color: #bfbfbf; -} -.ant-time-picker-input:-ms-input-placeholder { - color: #bfbfbf; -} -.ant-time-picker-input::-webkit-input-placeholder { - color: #bfbfbf; -} -.ant-time-picker-input:hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - border-right-width: 1px !important; -} -.ant-time-picker-input:focus { - border-color: color(~`colorPalette("@{primary-color}", 5)`); - box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); - border-right-width: 1px !important; -} -.ant-time-picker-input-disabled { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-time-picker-input-disabled:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-time-picker-input[disabled] { - background-color: #f5f5f5; - color: rgba(0, 0, 0, 0.25); -} -.ant-time-picker-input[disabled]:hover { - border-color: #e6d8d8; - border-right-width: 1px !important; -} -.ant-time-picker-icon { - color: rgba(0, 0, 0, 0.25); -} -.ant-time-picker-icon .ant-time-picker-clock-icon { - color: rgba(0, 0, 0, 0.25); -} -.ant-timeline { - color: rgba(0, 0, 0, 0.65); -} -.ant-timeline-item-tail { - border-left: 2px solid #e8e8e8; -} -.ant-timeline-item-head { - background-color: #fff; - border-radius: 100px; - border: 2px solid transparent; -} -.ant-timeline-item-head-blue { - border-color: @primary-color; - color: @primary-color; -} -.ant-timeline-item-head-red { - border-color: #f5222d; - color: #f5222d; -} -.ant-timeline-item-head-green { - border-color: #52c41a; - color: #52c41a; -} -.ant-timeline-item-head-custom { - border: 0; - border-radius: 0; -} -.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail { - border-left: 2px dotted #e8e8e8; -} -.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail { - border-left: 2px dotted #e8e8e8; -} -.ant-tooltip { - color: rgba(0, 0, 0, 0.65); -} -.ant-tooltip-inner { - color: #fff; - background-color: rgba(0, 0, 0, 0.75); - border-radius: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); -} -.ant-tooltip-arrow { - border-color: transparent; - border-style: solid; -} -.ant-tooltip-placement-top .ant-tooltip-arrow, -.ant-tooltip-placement-topLeft .ant-tooltip-arrow, -.ant-tooltip-placement-topRight .ant-tooltip-arrow { - border-width: 5px 5px 0; - border-top-color: rgba(0, 0, 0, 0.75); -} -.ant-tooltip-placement-right .ant-tooltip-arrow, -.ant-tooltip-placement-rightTop .ant-tooltip-arrow, -.ant-tooltip-placement-rightBottom .ant-tooltip-arrow { - border-width: 5px 5px 5px 0; - border-right-color: rgba(0, 0, 0, 0.75); -} -.ant-tooltip-placement-left .ant-tooltip-arrow, -.ant-tooltip-placement-leftTop .ant-tooltip-arrow, -.ant-tooltip-placement-leftBottom .ant-tooltip-arrow { - border-width: 5px 0 5px 5px; - border-left-color: rgba(0, 0, 0, 0.75); -} -.ant-tooltip-placement-bottom .ant-tooltip-arrow, -.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow, -.ant-tooltip-placement-bottomRight .ant-tooltip-arrow { - border-width: 0 5px 5px; - border-bottom-color: rgba(0, 0, 0, 0.75); -} -.ant-transfer { - color: rgba(0, 0, 0, 0.65); -} -.ant-transfer-disabled .ant-transfer-list { - background: #f5f5f5; -} -.ant-transfer-list { - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-transfer-list-search-action { - color: rgba(0, 0, 0, 0.25); -} -.ant-transfer-list-search-action .anticon { - color: rgba(0, 0, 0, 0.25); -} -.ant-transfer-list-search-action .anticon:hover { - color: rgba(0, 0, 0, 0.45); -} -.ant-transfer-list-header { - border-radius: 4px 4px 0 0; - background: #fff; - color: rgba(0, 0, 0, 0.65); - border-bottom: 1px solid #e8e8e8; -} -.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-transfer-list-content-item-disabled { - color: rgba(0, 0, 0, 0.25); -} -.ant-transfer-list-body-not-found { - color: rgba(0, 0, 0, 0.25); -} -.ant-transfer-list-footer { - border-top: 1px solid #e8e8e8; - border-radius: 0 0 4px 4px; -} -.ant-select-tree-checkbox { - color: rgba(0, 0, 0, 0.65); -} -.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner, -.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner, -.ant-select-tree-checkbox-input:focus + .ant-select-tree-checkbox-inner { - border-color: @primary-color; -} -.ant-select-tree-checkbox-checked:after { - border-radius: 2px; - border: 1px solid @primary-color; -} -.ant-select-tree-checkbox-inner { - border: 1px solid #d9d9d9; - border-radius: 2px; - background-color: #fff; -} -.ant-select-tree-checkbox-inner:after { - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after { - border: 0; - background-color: @primary-color; -} -.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after { - border-color: rgba(0, 0, 0, 0.25); -} -.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after { - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner { - background-color: @primary-color; - border-color: @primary-color; -} -.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after { - border-color: rgba(0, 0, 0, 0.25); -} -.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner { - border-color: #d9d9d9 !important; - background-color: #f5f5f5; -} -.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after { - border-color: #f5f5f5; -} -.ant-select-tree-checkbox-disabled + span { - color: rgba(0, 0, 0, 0.25); -} -.ant-select-tree-checkbox-wrapper { - color: rgba(0, 0, 0, 0.65); -} -.ant-select-tree-checkbox-group { - color: rgba(0, 0, 0, 0.65); -} -.ant-select-tree { - color: rgba(0, 0, 0, 0.65); -} -.ant-select-tree li .ant-select-tree-node-content-wrapper { - border-radius: 2px; - color: rgba(0, 0, 0, 0.65); -} -.ant-select-tree li .ant-select-tree-node-content-wrapper:hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected { - background-color: color(~`colorPalette("@{primary-color}", 2)`); -} -.ant-select-tree li span.ant-select-tree-switcher, -.ant-select-tree li span.ant-select-tree-iconEle { - border: 0 none; -} -.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon { - color: @primary-color; -} -.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon, -.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon { - color: @primary-color; -} -li.ant-select-tree-treenode-disabled > span:not(.ant-select-tree-switcher), -li.ant-select-tree-treenode-disabled > .ant-select-tree-node-content-wrapper, -li.ant-select-tree-treenode-disabled > .ant-select-tree-node-content-wrapper span { - color: rgba(0, 0, 0, 0.25); -} -li.ant-select-tree-treenode-disabled > .ant-select-tree-node-content-wrapper:hover { - background: transparent; -} -.ant-select-tree-dropdown { - color: rgba(0, 0, 0, 0.65); -} -.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field { - border: 1px solid #d9d9d9; - border-radius: 4px; -} -.ant-select-tree-dropdown .ant-select-not-found { - color: rgba(0, 0, 0, 0.25); -} -.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper { - border-radius: 0; -} -.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper:hover, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper:hover { - background: transparent; -} -.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper:hover:before, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper:hover:before { - background: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper.ant-tree-node-selected, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper.ant-tree-node-selected { - color: #fff; - background: transparent; -} -.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-switcher, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-switcher { - color: #fff; -} -.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox .ant-tree-checkbox-inner, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox .ant-tree-checkbox-inner { - border-color: @primary-color; -} -.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked:after, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked:after { - border-color: #fff; -} -.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner { - background: #fff; -} -.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after { - border-color: @primary-color; -} -.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-node-content-wrapper:before, -.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-node-content-wrapper:before { - background: @primary-color; -} -.ant-tree-checkbox { - color: rgba(0, 0, 0, 0.65); -} -.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner, -.ant-tree-checkbox:hover .ant-tree-checkbox-inner, -.ant-tree-checkbox-input:focus + .ant-tree-checkbox-inner { - border-color: @primary-color; -} -.ant-tree-checkbox-checked:after { - border-radius: 2px; - border: 1px solid @primary-color; -} -.ant-tree-checkbox-inner { - border: 1px solid #d9d9d9; - border-radius: 2px; - background-color: #fff; -} -.ant-tree-checkbox-inner:after { - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after { - border: 0; - background-color: @primary-color; -} -.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after { - border-color: rgba(0, 0, 0, 0.25); -} -.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after { - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.ant-tree-checkbox-checked .ant-tree-checkbox-inner { - background-color: @primary-color; - border-color: @primary-color; -} -.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after { - border-color: rgba(0, 0, 0, 0.25); -} -.ant-tree-checkbox-disabled .ant-tree-checkbox-inner { - border-color: #d9d9d9 !important; - background-color: #f5f5f5; -} -.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after { - border-color: #f5f5f5; -} -.ant-tree-checkbox-disabled + span { - color: rgba(0, 0, 0, 0.25); -} -.ant-tree-checkbox-wrapper { - color: rgba(0, 0, 0, 0.65); -} -.ant-tree-checkbox-group { - color: rgba(0, 0, 0, 0.65); -} -.ant-tree { - color: rgba(0, 0, 0, 0.65); -} -.ant-tree li span[draggable], -.ant-tree li span[draggable="true"] { - border-top: 2px transparent solid; - border-bottom: 2px transparent solid; -} -.ant-tree li.drag-over > span[draggable] { - background-color: @primary-color; - color: white; -} -.ant-tree li.drag-over-gap-top > span[draggable] { - border-top-color: @primary-color; -} -.ant-tree li.drag-over-gap-bottom > span[draggable] { - border-bottom-color: @primary-color; -} -.ant-tree li.filter-node > span { - color: #f5222d !important; -} -.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon, -.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon { - color: @primary-color; -} -.ant-tree li .ant-tree-node-content-wrapper { - border-radius: 2px; - color: rgba(0, 0, 0, 0.65); -} -.ant-tree li .ant-tree-node-content-wrapper:hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected { - background-color: color(~`colorPalette("@{primary-color}", 2)`); -} -.ant-tree li span.ant-tree-switcher, -.ant-tree li span.ant-tree-iconEle { - border: 0 none; -} -li.ant-tree-treenode-disabled > span:not(.ant-tree-switcher), -li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper, -li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper span { - color: rgba(0, 0, 0, 0.25); -} -li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper:hover { - background: transparent; -} -.ant-tree.ant-tree-show-line li span.ant-tree-switcher { - background: #fff; - color: rgba(0, 0, 0, 0.45); -} -.ant-tree.ant-tree-show-line li:not(:last-child):before { - border-left: 1px solid #d9d9d9; -} -.ant-upload { - color: rgba(0, 0, 0, 0.65); -} -.ant-upload.ant-upload-select-picture-card { - border: 1px dashed #d9d9d9; - border-radius: 4px; - background-color: #fafafa; -} -.ant-upload.ant-upload-select-picture-card:hover { - border-color: @primary-color; -} -.ant-upload.ant-upload-drag { - border: 1px dashed #d9d9d9; - border-radius: 4px; - background: #fafafa; -} -.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) { - border: 2px dashed color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover { - border-color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon { - color: color(~`colorPalette("@{primary-color}", 5)`); -} -.ant-upload.ant-upload-drag p.ant-upload-text { - color: rgba(0, 0, 0, 0.85); -} -.ant-upload.ant-upload-drag p.ant-upload-hint { - color: rgba(0, 0, 0, 0.45); -} -.ant-upload.ant-upload-drag .anticon-plus { - color: rgba(0, 0, 0, 0.25); -} -.ant-upload.ant-upload-drag .anticon-plus:hover { - color: rgba(0, 0, 0, 0.45); -} -.ant-upload.ant-upload-drag:hover .anticon-plus { - color: rgba(0, 0, 0, 0.45); -} -.ant-upload-list { - color: rgba(0, 0, 0, 0.65); -} -.ant-upload-list-item-info .anticon-loading, -.ant-upload-list-item-info .anticon-paper-clip { - color: rgba(0, 0, 0, 0.45); -} -.ant-upload-list-item .anticon-close { - color: rgba(0, 0, 0, 0.45); -} -.ant-upload-list-item .anticon-close:hover { - color: rgba(0, 0, 0, 0.65); -} -.ant-upload-list-item:hover .ant-upload-list-item-info { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} -.ant-upload-list-item-error, -.ant-upload-list-item-error .anticon-paper-clip, -.ant-upload-list-item-error .ant-upload-list-item-name { - color: #f5222d; -} -.ant-upload-list-item-error .anticon-close { - color: #f5222d !important; -} -.ant-upload-list-picture .ant-upload-list-item, -.ant-upload-list-picture-card .ant-upload-list-item { - border-radius: 4px; - border: 1px solid #d9d9d9; -} -.ant-upload-list-picture .ant-upload-list-item:hover, -.ant-upload-list-picture-card .ant-upload-list-item:hover { - background: transparent; -} -.ant-upload-list-picture .ant-upload-list-item-error, -.ant-upload-list-picture-card .ant-upload-list-item-error { - border-color: #f5222d; -} -.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, -.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info { - background: transparent; -} -.ant-upload-list-picture .ant-upload-list-item-uploading, -.ant-upload-list-picture-card .ant-upload-list-item-uploading { - border-style: dashed; -} -.ant-upload-list-picture .ant-upload-list-item-icon, -.ant-upload-list-picture-card .ant-upload-list-item-icon { - color: rgba(0, 0, 0, 0.25); -} -.ant-upload-list-picture .ant-upload-list-item-thumbnail.anticon:before, -.ant-upload-list-picture-card .ant-upload-list-item-thumbnail.anticon:before { - color: rgba(0, 0, 0, 0.45); -} -.ant-upload-list-picture-card .ant-upload-list-item-info:before { - background-color: rgba(0, 0, 0, 0.5); -} -.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o, -.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete { - color: rgba(255, 255, 255, 0.85); -} -.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover, -.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover { - color: #fff; -} -.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item { - background-color: #fafafa; -} -.ant-upload-list-picture-card .ant-upload-list-item-uploading-text { - color: rgba(0, 0, 0, 0.45); -} -.ant-upload-list .ant-upload-success-icon { - color: #52c41a; -} - -.drawer .drawer-content { - background: #001529; -} - -.ant-list-item-meta .taobao { - color: #ff4000; - border-radius: 4px; -} -.ant-list-item-meta .dingding { - background-color: #2eabff; - color: #fff; - border-radius: 4px; -} -.ant-list-item-meta .alipay { - color: #2eabff; - border-radius: 4px; -} -font.strong { - color: #52c41a; -} -font.medium { - color: #faad14; -} -font.weak { - color: #f5222d; -} - -// 侧边导航栏首页颜色跟随主题变化 -.ant-menu.ant-menu-root > .ant-menu-item:first-child.ant-menu-item-selected { - & > a, - & > a:hover { - color: @primary-color; - } -} - -// begin -------- JAreaLinkage 三级联动样式 -------------- -.cascader-menu-list .cascader-menu-option.hover, -.cascader-menu-list .cascader-menu-option:hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} - -.area-selectable-list .area-select-option.hover { - background-color: color(~`colorPalette("@{primary-color}", 1)`); -} - -.area-select:hover { - border-color: @primary-color; -} - -.area-select:active { - box-shadow: 0 0 0 2px color(~`colorPalette("@{primary-color}", 1)`); -} -// end -------- JAreaLinkage 三级联动样式 -------------- - -// TESTA-521 -.ant-menu-submenu-selected { - color: @primary-color; -} - -// TESTA-521 -.tab-layout-tabs.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab-active { - border-color: @primary-color !important; -} \ No newline at end of file diff --git a/public/goright.png b/public/goright.png deleted file mode 100644 index 13c4b54fd48a01288e9e23084b1adda9a6ffca1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>Z9h3PvC*V+MOep* z;I?H!$xWsW3%%1lTven((2w{X;JhR(}8@Fnhv>$?dV(<)7XF6)`4xySp%S zu*!M>IqW5#zOL-ISfqgLt)VTKfYek^7sn8Z%duyV3LOd%aJkqxorU9F-od+f?|%Jn z-{!g3Gw5jKmq&S059WI&2eUWNJW(kr&aC{+>Eb~Nwnhu@r(NC$9()Vg8MXJ~m!uC{ zZ^bOX{hI#|L*qja^Laka0<+HYc0c7h^tv~3ceg`H{RLTn!-k4SXJXfFuNI1TnN(#H zpDEbvV)WiWY?47l$EVN&!w6H$Qii%Y+R_iRckE3DI#9L5HKHUXu_VKdAd7@Arc8Ce+{Xd75q85mfL?Kecxkei>9nN|tXV4!PYqHAOpVqgGN2SgAJ z3qq}9ff{^4HWcTlm6RtIr80QtCZ?zQCZ=a5XDgWN8R!}6nkfVtnkiIRn8ll!C?ITC z$S5f(u+rBrFE7{21Ze_dpeDWiqV&5rm-+z>mH-(Xl2MwQWM$=&pIn-onpa|F6#!IP z%wV|u|89Mt8gV2wV5_aHJW?~$GfEf?&1Bcd z%-qzH%7Rn|u$%M?^3v@$g@IgyY?E&YP!)rrk-3qPp`nq10jDPKd!P~lBy)l@t5O+E zEX|$L%HlYIa?wa~p+TMuX_+~xK;P?U!k{QWzeK+{vjoi1OHC}U%uLSD)5}XO v(N9jv)6L9HM+he8=@%Cz>l>PyfUtq39?+GM7mPmxtzqzV^>bP0l+XkKoCT9z diff --git a/public/index.html b/public/index.html deleted file mode 100644 index d12a0d4..0000000 --- a/public/index.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - JeroBoot平台 - - - - - - - - -
    -
    -
    -
    -
    -
    正在加载,请耐心等待 - -
    -
    -
    - - - - \ No newline at end of file diff --git a/public/logo.png b/public/logo.png deleted file mode 100644 index 1c356e3a678070b440e6cffc22455b35358543ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8929 zcmV<7A|Bm|P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRaJS4l)cRCwC#oqK#!<^9K>Tu+m1k5W<(=>IeZJ54`+Y=SfP}<_#OM|v zA(W61N=S()5%QIgkX1rLRtX7NB_t$dm5`8C;z>pwx(5(gC4*jX2z9)*sJR3H0JNqh zdtkp2Hs!wSOj-Z{z;L~xv?(-h4dul3T(?hYgZ+w{N)37(0{{S>ao!P)nRk?4dHCQ$ zb|1YsaU_{|C2>!Kvif{k- ze{@FVD92=;m+v)^M~LfTb4_*y;Ymh}(hvUITmnE-=}>Axd#I7ocb?XfZ&8Q( zjn;J8_spN=TLyi1&gAn&t<3LfDWqTc45a%a$r>eMI@wkT0FK!eOgFHomG~Ea8T3u1IA+o^pRe8!`f3}>!+ojv zmRZwYVAKIHnpECE|1OQWtTCx55_oy)0m4}&<#T3Bp3jfi-{y)l#q}RN=OJLB!m(YLJ0{8p@f7`LP97Z zA+bZrrbM>{i4&9#T!n545+^8G)XeEkNJuPE!ZCyr5=SU8<;fu-MKFUyC?TO>01`YX zHI6)MGjhM-P-B@OQBvCGA0{iJ$ZB(>_^LBcC}$c_aiTMlD7mCICH&nw z;-mVCudj~XU$-mFn&A|3RG4{^UDXd{D48`Hv&>1(k@LK&)Qd=x)gc5sY_5SwKrQF1Qzg)^uSK@#@qJVfd_mzEW{Z zUMKaFP-YH7mr?iqWlRHGe}*u8RzItxH)Qs~-(xY+q%$)2M-ht88n6b(zPTk5UkcS3 zNdPEO@^=D}_?1EL5!^yM?Fkd@1CipRmSQRhDiog;StTe%B}NM;u7vWHkPu3VEUMq0 zaN>M^D76-$hX{vCo5UWWowHwD>HK7&G$>6Z)m8xjfZDQXKNUaH8-y2>@k1%68$DQV zrt*LNh5wP7YU00C4wzZ<$KL<|z@-W2rVuXnhf6d2$P}MD-=()o)inSBkUmgZ2UqAa zAli*E;6g7w`qsU^KVS0|@n55^y&!3H$~nEks4Hx*+J+Q-*y(0)W^J;PiC($~FRrSA-HTAW<4jd**3+kW|*Aa|4gf zJ}!(>0W`qz1d_%)>x9}enD)%m^vkm<>(

    x&FtTGNII*Ae4BsNSS>&#thQtwKz7A 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 diff --git a/public/tinymce/langs/zh_CN.js b/public/tinymce/langs/zh_CN.js deleted file mode 100644 index 0f3cf92..0000000 --- a/public/tinymce/langs/zh_CN.js +++ /dev/null @@ -1,261 +0,0 @@ -tinymce.addI18n('zh_CN',{ -"Redo": "\u91cd\u590d", -"Undo": "\u64a4\u6d88", -"Cut": "\u526a\u5207", -"Copy": "\u590d\u5236", -"Paste": "\u7c98\u8d34", -"Select all": "\u5168\u9009", -"New document": "\u65b0\u6587\u6863", -"Ok": "\u786e\u5b9a", -"Cancel": "\u53d6\u6d88", -"Visual aids": "\u7f51\u683c\u7ebf", -"Bold": "\u7c97\u4f53", -"Italic": "\u659c\u4f53", -"Underline": "\u4e0b\u5212\u7ebf", -"Strikethrough": "\u5220\u9664\u7ebf", -"Superscript": "\u4e0a\u6807", -"Subscript": "\u4e0b\u6807", -"Clear formatting": "\u6e05\u9664\u683c\u5f0f", -"Align left": "\u5de6\u5bf9\u9f50", -"Align center": "\u5c45\u4e2d", -"Align right": "\u53f3\u5bf9\u9f50", -"Justify": "\u4e24\u7aef\u5bf9\u9f50", -"Bullet list": "\u9879\u76ee\u7b26\u53f7", -"Numbered list": "\u7f16\u53f7\u5217\u8868", -"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", -"Increase indent": "\u589e\u52a0\u7f29\u8fdb", -"Close": "\u5173\u95ed", -"Formats": "\u683c\u5f0f", -"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002", -"Headers": "\u6807\u9898", -"Header 1": "\u6807\u98981", -"Header 2": "\u6807\u98982", -"Header 3": "\u6807\u98983", -"Header 4": "\u6807\u98984", -"Header 5": "\u6807\u98985", -"Header 6": "\u6807\u98986", -"Headings": "\u6807\u9898", -"Heading 1": "\u6807\u98981", -"Heading 2": "\u6807\u98982", -"Heading 3": "\u6807\u98983", -"Heading 4": "\u6807\u98984", -"Heading 5": "\u6807\u98985", -"Heading 6": "\u6807\u98986", -"Preformatted": "\u9884\u683c\u5f0f\u5316", -"Div": "Div\u533a\u5757", -"Pre": "\u9884\u683c\u5f0f\u6587\u672c", -"Code": "\u4ee3\u7801", -"Paragraph": "\u6bb5\u843d", -"Blockquote": "\u5f15\u7528", -"Inline": "\u6587\u672c", -"Blocks": "\u533a\u5757", -"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", -"Font Family": "\u5b57\u4f53", -"Font Sizes": "\u5b57\u53f7", -"Class": "Class", -"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", -"OR": "\u6216", -"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", -"Upload": "\u4e0a\u4f20", -"Block": "\u5757", -"Align": "\u5bf9\u9f50", -"Default": "\u9ed8\u8ba4", -"Circle": "\u7a7a\u5fc3\u5706", -"Disc": "\u5b9e\u5fc3\u5706", -"Square": "\u65b9\u5757", -"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", -"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", -"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", -"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", -"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", -"Anchor": "\u951a\u70b9", -"Name": "\u540d\u79f0", -"Id": "\u6807\u8bc6\u7b26", -"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", -"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", -"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", -"Special character": "\u7279\u6b8a\u7b26\u53f7", -"Source code": "\u6e90\u4ee3\u7801", -"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", -"Language": "\u8bed\u8a00", -"Code sample": "\u4ee3\u7801\u793a\u4f8b", -"Color": "\u989c\u8272", -"R": "R", -"G": "G", -"B": "B", -"Left to right": "\u4ece\u5de6\u5230\u53f3", -"Right to left": "\u4ece\u53f3\u5230\u5de6", -"Emoticons": "\u8868\u60c5", -"Document properties": "\u6587\u6863\u5c5e\u6027", -"Title": "\u6807\u9898", -"Keywords": "\u5173\u952e\u8bcd", -"Description": "\u63cf\u8ff0", -"Robots": "\u673a\u5668\u4eba", -"Author": "\u4f5c\u8005", -"Encoding": "\u7f16\u7801", -"Fullscreen": "\u5168\u5c4f", -"Action": "\u64cd\u4f5c", -"Shortcut": "\u5feb\u6377\u952e", -"Help": "\u5e2e\u52a9", -"Address": "\u5730\u5740", -"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", -"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", -"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", -"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", -"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", -"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", -"Learn more...": "\u4e86\u89e3\u66f4\u591a...", -"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", -"Plugins": "\u63d2\u4ef6", -"Handy Shortcuts": "\u5feb\u6377\u952e", -"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", -"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", -"Image description": "\u56fe\u7247\u63cf\u8ff0", -"Source": "\u5730\u5740", -"Dimensions": "\u5927\u5c0f", -"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", -"General": "\u666e\u901a", -"Advanced": "\u9ad8\u7ea7", -"Style": "\u6837\u5f0f", -"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", -"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", -"Border": "\u8fb9\u6846", -"Insert image": "\u63d2\u5165\u56fe\u7247", -"Image": "\u56fe\u7247", -"Image list": "\u56fe\u7247\u5217\u8868", -"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", -"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", -"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", -"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", -"Edit image": "\u7f16\u8f91\u56fe\u7247", -"Image options": "\u56fe\u7247\u9009\u9879", -"Zoom in": "\u653e\u5927", -"Zoom out": "\u7f29\u5c0f", -"Crop": "\u88c1\u526a", -"Resize": "\u8c03\u6574\u5927\u5c0f", -"Orientation": "\u65b9\u5411", -"Brightness": "\u4eae\u5ea6", -"Sharpen": "\u9510\u5316", -"Contrast": "\u5bf9\u6bd4\u5ea6", -"Color levels": "\u989c\u8272\u5c42\u6b21", -"Gamma": "\u4f3d\u9a6c\u503c", -"Invert": "\u53cd\u8f6c", -"Apply": "\u5e94\u7528", -"Back": "\u540e\u9000", -"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", -"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", -"Insert link": "\u63d2\u5165\u94fe\u63a5", -"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", -"Text to display": "\u663e\u793a\u6587\u5b57", -"Url": "\u5730\u5740", -"Target": "\u6253\u5f00\u65b9\u5f0f", -"None": "\u65e0", -"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", -"Remove link": "\u5220\u9664\u94fe\u63a5", -"Anchors": "\u951a\u70b9", -"Link": "\u94fe\u63a5", -"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", -"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", -"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", -"Link list": "\u94fe\u63a5\u5217\u8868", -"Insert video": "\u63d2\u5165\u89c6\u9891", -"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", -"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", -"Alternative source": "\u955c\u50cf", -"Poster": "\u5c01\u9762", -"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", -"Embed": "\u5185\u5d4c", -"Media": "\u5a92\u4f53", -"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", -"Page break": "\u5206\u9875\u7b26", -"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", -"Preview": "\u9884\u89c8", -"Print": "\u6253\u5370", -"Save": "\u4fdd\u5b58", -"Find": "\u67e5\u627e", -"Replace with": "\u66ff\u6362\u4e3a", -"Replace": "\u66ff\u6362", -"Replace all": "\u5168\u90e8\u66ff\u6362", -"Prev": "\u4e0a\u4e00\u4e2a", -"Next": "\u4e0b\u4e00\u4e2a", -"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", -"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", -"Match case": "\u533a\u5206\u5927\u5c0f\u5199", -"Whole words": "\u5168\u5b57\u5339\u914d", -"Spellcheck": "\u62fc\u5199\u68c0\u67e5", -"Ignore": "\u5ffd\u7565", -"Ignore all": "\u5168\u90e8\u5ffd\u7565", -"Finish": "\u5b8c\u6210", -"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", -"Insert table": "\u63d2\u5165\u8868\u683c", -"Table properties": "\u8868\u683c\u5c5e\u6027", -"Delete table": "\u5220\u9664\u8868\u683c", -"Cell": "\u5355\u5143\u683c", -"Row": "\u884c", -"Column": "\u5217", -"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", -"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", -"Split cell": "\u62c6\u5206\u5355\u5143\u683c", -"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", -"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", -"Delete row": "\u5220\u9664\u884c", -"Row properties": "\u884c\u5c5e\u6027", -"Cut row": "\u526a\u5207\u884c", -"Copy row": "\u590d\u5236\u884c", -"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", -"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", -"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", -"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", -"Delete column": "\u5220\u9664\u5217", -"Cols": "\u5217", -"Rows": "\u884c", -"Width": "\u5bbd", -"Height": "\u9ad8", -"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", -"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", -"Caption": "\u6807\u9898", -"Left": "\u5de6\u5bf9\u9f50", -"Center": "\u5c45\u4e2d", -"Right": "\u53f3\u5bf9\u9f50", -"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", -"Scope": "\u8303\u56f4", -"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", -"H Align": "\u6c34\u5e73\u5bf9\u9f50", -"V Align": "\u5782\u76f4\u5bf9\u9f50", -"Top": "\u9876\u90e8\u5bf9\u9f50", -"Middle": "\u5782\u76f4\u5c45\u4e2d", -"Bottom": "\u5e95\u90e8\u5bf9\u9f50", -"Header cell": "\u8868\u5934\u5355\u5143\u683c", -"Row group": "\u884c\u7ec4", -"Column group": "\u5217\u7ec4", -"Row type": "\u884c\u7c7b\u578b", -"Header": "\u8868\u5934", -"Body": "\u8868\u4f53", -"Footer": "\u8868\u5c3e", -"Border color": "\u8fb9\u6846\u989c\u8272", -"Insert template": "\u63d2\u5165\u6a21\u677f", -"Templates": "\u6a21\u677f", -"Template": "\u6a21\u677f", -"Text color": "\u6587\u5b57\u989c\u8272", -"Background color": "\u80cc\u666f\u8272", -"Custom...": "\u81ea\u5b9a\u4e49...", -"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", -"No color": "\u65e0", -"Table of Contents": "\u5185\u5bb9\u5217\u8868", -"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", -"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", -"Words: {0}": "\u5b57\u6570\uff1a{0}", -"{0} words": "{0} \u5b57", -"File": "\u6587\u4ef6", -"Edit": "\u7f16\u8f91", -"Insert": "\u63d2\u5165", -"View": "\u89c6\u56fe", -"Format": "\u683c\u5f0f", -"Table": "\u8868\u683c", -"Tools": "\u5de5\u5177", -"Powered by {0}": "\u7531{0}\u9a71\u52a8", -"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9" -}); \ No newline at end of file diff --git a/public/tinymce/skins/lightgray/content.min.css b/public/tinymce/skins/lightgray/content.min.css deleted file mode 100644 index 125b622..0000000 --- a/public/tinymce/skins/lightgray/content.min.css +++ /dev/null @@ -1,554 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.mce-content-body .mce-item-anchor { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - cursor: default; - display: inline-block; - height: 12px !important; - padding: 0 2px; - -webkit-user-modify: read-only; - -moz-user-modify: read-only; - -webkit-user-select: all; - -moz-user-select: all; - -ms-user-select: all; - user-select: all; - width: 8px !important; -} -.mce-content-body .mce-item-anchor[data-mce-selected] { - outline-offset: 1px; -} -.tox-comments-visible .tox-comment { - background-color: #fff0b7; -} -.tox-comments-visible .tox-comment--active { - background-color: #ffe168; -} -.tox-checklist > li:not(.tox-checklist--hidden) { - list-style: none; - margin: .25em 0; - position: relative; -} -.tox-checklist > li:not(.tox-checklist--hidden)::before { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); - background-size: 100%; - content: ''; - cursor: pointer; - height: 1em; - left: -1.5em; - position: absolute; - top: .125em; - width: 1em; -} -.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); -} -/* stylelint-disable */ -/* http://prismjs.com/ */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ -code[class*="language-"], -pre[class*="language-"] { - color: black; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - font-size: .875rem; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - -moz-tab-size: 4; - tab-size: 4; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} -pre[class*="language-"]::-moz-selection, -pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, -code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} -pre[class*="language-"]::selection, -pre[class*="language-"] ::selection, -code[class*="language-"]::selection, -code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: .5em 0; - overflow: auto; -} -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: transparent !important; - border: 1px solid #ccc; -} -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; -} -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} -.token.punctuation { - color: #999; -} -.namespace { - opacity: .7; -} -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #a67f59; - background: rgba(255, 255, 255, 0.5); -} -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} -.token.function { - color: #DD4A68; -} -.token.regex, -.token.important, -.token.variable { - color: #e90; -} -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} -.token.entity { - cursor: help; -} -/* stylelint-enable */ -.mce-content-body .mce-visual-caret { - background-color: black; - background-color: currentcolor; - position: absolute; -} -.mce-content-body .mce-visual-caret-hidden { - display: none; -} -.mce-content-body *[data-mce-caret] { - left: -1000px; - margin: 0; - padding: 0; - position: absolute; - right: auto; - top: 0; -} -.mce-content-body .mce-offscreen-selection { - left: -9999999999px; - max-width: 1000000px; - position: absolute; -} -.mce-content-body *[contentEditable=false] { - cursor: default; -} -.mce-content-body *[contentEditable=true] { - cursor: text; -} -.tox-cursor-format-painter { - cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; -} -.mce-content-body figure.align-left { - float: left; -} -.mce-content-body figure.align-right { - float: right; -} -.mce-content-body figure.image.align-center { - display: table; - margin-left: auto; - margin-right: auto; -} -.mce-preview-object { - border: 1px solid gray; - display: inline-block; - line-height: 0; - margin: 0 2px 0 2px; - position: relative; -} -.mce-preview-object .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-preview-object[data-mce-selected="2"] .mce-shim { - display: none; -} -.mce-object { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - border: 1px dashed #aaa; -} -.mce-pagebreak { - border: 1px dashed #aaa; - cursor: default; - display: block; - height: 5px; - margin-top: 15px; - page-break-before: always; - width: 100%; -} -@media print { - .mce-pagebreak { - border: 0; - } -} -.tiny-pageembed .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tiny-pageembed[data-mce-selected="2"] .mce-shim { - display: none; -} -.tiny-pageembed { - display: inline-block; - position: relative; -} -.tiny-pageembed--21by9, -.tiny-pageembed--16by9, -.tiny-pageembed--4by3, -.tiny-pageembed--1by1 { - display: block; - overflow: hidden; - padding: 0; - position: relative; - width: 100%; -} -.tiny-pageembed--21by9::before, -.tiny-pageembed--16by9::before, -.tiny-pageembed--4by3::before, -.tiny-pageembed--1by1::before { - content: ""; - display: block; -} -.tiny-pageembed--21by9::before { - padding-top: 42.857143%; -} -.tiny-pageembed--16by9::before { - padding-top: 56.25%; -} -.tiny-pageembed--4by3::before { - padding-top: 75%; -} -.tiny-pageembed--1by1::before { - padding-top: 100%; -} -.tiny-pageembed--21by9 iframe, -.tiny-pageembed--16by9 iframe, -.tiny-pageembed--4by3 iframe, -.tiny-pageembed--1by1 iframe { - border: 0; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-content-body div.mce-resizehandle { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - height: 10px; - position: absolute; - width: 10px; - z-index: 10000; -} -.mce-content-body div.mce-resizehandle:hover { - background-color: #4099ff; -} -.mce-content-body div.mce-resizehandle:nth-of-type(1) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(2) { - cursor: nesw-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(3) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(4) { - cursor: nesw-resize; -} -.mce-content-body .mce-clonedresizable { - opacity: .5; - outline: 1px dashed black; - position: absolute; - z-index: 10000; -} -.mce-content-body .mce-resize-helper { - background: #555; - background: rgba(0, 0, 0, 0.75); - border: 1px; - border-radius: 3px; - color: white; - display: none; - font-family: sans-serif; - font-size: 12px; - line-height: 14px; - margin: 5px 10px; - padding: 5px; - position: absolute; - white-space: nowrap; - z-index: 10001; -} -.mce-match-marker { - background: #aaa; - color: #fff; -} -.mce-match-marker-selected { - background: #39f; - color: #fff; -} -.mce-content-body img[data-mce-selected], -.mce-content-body table[data-mce-selected] { - outline: 3px solid #b4d7ff; -} -.mce-content-body hr[data-mce-selected] { - outline: 3px solid #b4d7ff; - outline-offset: 1px; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false][data-mce-selected] { - cursor: not-allowed; - outline: 3px solid #b4d7ff; -} -.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, -.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { - outline: none; -} -.mce-content-body *[data-mce-selected="inline-boundary"] { - background-color: #b4d7ff; -} -.mce-content-body .mce-edit-focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body td[data-mce-selected], -.mce-content-body th[data-mce-selected] { - background-color: #b4d7ff !important; -} -.mce-content-body td[data-mce-selected]::-moz-selection, -.mce-content-body th[data-mce-selected]::-moz-selection { - background: none; -} -.mce-content-body td[data-mce-selected]::selection, -.mce-content-body th[data-mce-selected]::selection { - background: none; -} -.mce-content-body td[data-mce-selected] *, -.mce-content-body th[data-mce-selected] * { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mce-content-body img::-moz-selection { - background: none; -} -.mce-content-body img::selection { - background: none; -} -.ephox-snooker-resizer-bar { - background-color: #b4d7ff; - opacity: 0; -} -.ephox-snooker-resizer-cols { - cursor: col-resize; -} -.ephox-snooker-resizer-rows { - cursor: row-resize; -} -.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { - opacity: 1; -} -.mce-spellchecker-word { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.5'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; - height: 2rem; -} -.mce-spellchecker-grammar { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23008800'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; -} -.mce-toc { - border: 1px solid gray; -} -.mce-toc h2 { - margin: 4px; -} -.mce-toc li { - list-style-type: none; -} -.mce-item-table, -.mce-item-table td, -.mce-item-table th, -.mce-item-table caption { - border: 1px dashed #bbb; -} -.mce-visualblocks p, -.mce-visualblocks h1, -.mce-visualblocks h2, -.mce-visualblocks h3, -.mce-visualblocks h4, -.mce-visualblocks h5, -.mce-visualblocks h6, -.mce-visualblocks div:not([data-mce-bogus]), -.mce-visualblocks section, -.mce-visualblocks article, -.mce-visualblocks blockquote, -.mce-visualblocks address, -.mce-visualblocks pre, -.mce-visualblocks figure, -.mce-visualblocks figcaption, -.mce-visualblocks hgroup, -.mce-visualblocks aside, -.mce-visualblocks ul, -.mce-visualblocks ol, -.mce-visualblocks dl { - background-repeat: no-repeat; - border: 1px dashed #bbb; - margin-left: 3px; - padding-top: 10px; -} -.mce-visualblocks p { - background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); -} -.mce-visualblocks h1 { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); -} -.mce-visualblocks h2 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); -} -.mce-visualblocks h3 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); -} -.mce-visualblocks h4 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); -} -.mce-visualblocks h5 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); -} -.mce-visualblocks h6 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); -} -.mce-visualblocks div:not([data-mce-bogus]) { - background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); -} -.mce-visualblocks section { - background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); -} -.mce-visualblocks article { - background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); -} -.mce-visualblocks blockquote { - background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); -} -.mce-visualblocks address { - background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); -} -.mce-visualblocks pre { - background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); -} -.mce-visualblocks figure { - background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); -} -.mce-visualblocks figcaption { - border: 1px dashed #bbb; -} -.mce-visualblocks hgroup { - background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); -} -.mce-visualblocks aside { - background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); -} -.mce-visualblocks ul { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); -} -.mce-visualblocks ol { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); -} -.mce-visualblocks dl { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); -} -.mce-nbsp, -.mce-shy { - background: #aaa; -} -.mce-shy::after { - content: '-'; -} -body { - font-family: sans-serif; -} -table { - border-collapse: collapse; -} diff --git a/public/tinymce/skins/lightgray/skin.min.css b/public/tinymce/skins/lightgray/skin.min.css deleted file mode 100644 index 3ea9b44..0000000 --- a/public/tinymce/skins/lightgray/skin.min.css +++ /dev/null @@ -1,2159 +0,0 @@ -/** - * Copyright (c) Tiny Technologies, Inc. All rights reserved. - * Licensed under the LGPL or a commercial license. - * For LGPL see License.txt in the project root for license information. - * For commercial licenses see https://www.tiny.cloud/ - */ -.tox, -.tox *:not(svg) { - background: transparent; - border: 0; - box-sizing: content-box; - color: #222f3e; - cursor: auto; - direction: ltr; - float: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - font-style: normal; - font-weight: normal; - height: auto; - line-height: normal; - margin: 0; - max-width: none; - outline: 0; - padding: 0; - position: static; - -webkit-tap-highlight-color: transparent; - text-align: left; - text-decoration: none; - text-shadow: none; - text-transform: none; - vertical-align: initial; - white-space: normal; - width: auto; -} -.tox *:not(svg) { - color: inherit; - cursor: inherit; - font-size: inherit; -} -.tox-tinymce { - border: 1px solid #cccccc; - border-radius: 0; - box-shadow: none; - box-sizing: border-box; - display: flex; - flex-direction: column; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - overflow: hidden; - visibility: inherit !important; -} -.tox-editor-container { - display: flex; - flex: 1 1 auto; - flex-direction: column; - overflow: hidden; -} -.tox-editor-container > *:first-child { - border-top: none !important; -} -.tox-tinymce-aux { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; -} -.tox-tinymce *:focus, -.tox-tinymce-aux *:focus { - outline: none; -} -button::-moz-focus-inner { - border: 0; -} -.tox-silver-sink { - z-index: 1300; -} -.tox[dir='rtl'] { - direction: rtl; -} -.tox[dir='rtl'] .tox-statusbar__resize-handle { - justify-content: flex-start; - margin-left: -8px; - margin-right: 0; - padding-left: 0; - padding-right: 1ch; -} -.tox[dir='rtl'] .tox-statusbar .tox-statusbar__path { - text-align: right; -} -.tox .tox-anchorbar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-bar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-button { - background-color: #3498db; - background-image: none; - background-position: none; - background-repeat: none; - border-color: #3498db; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #fff; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 14px; - font-weight: bold; - letter-spacing: 1; - line-height: 24px; - margin: 0; - outline: none; - padding: 4px 16px; - text-align: center; - text-decoration: none; - text-transform: capitalize; - white-space: nowrap; -} -.tox .tox-button[disabled] { - background-color: #3498db; - background-image: none; - border-color: #3498db; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-button:focus:not(:disabled) { - background-color: #258cd1; - background-image: none; - border-color: #258cd1; - box-shadow: none; - color: #fff; -} -.tox .tox-button:hover:not(:disabled) { - background-color: #258cd1; - background-image: none; - border-color: #258cd1; - box-shadow: none; - color: #fff; -} -.tox .tox-button:active:not(:disabled) { - background-color: #217dbb; - background-image: none; - border-color: #217dbb; - box-shadow: none; - color: #fff; -} -.tox .tox-button--secondary { - background-color: #f0f0f0; - background-image: none; - background-position: none; - background-repeat: none; - border-color: #f0f0f0; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - color: #222f3e; - outline: none; - padding: 4px 16px; - text-decoration: none; - text-transform: capitalize; -} -.tox .tox-button--secondary[disabled] { - background-color: #f0f0f0; - background-image: none; - border-color: #f0f0f0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-button--secondary:focus:not(:disabled) { - background-color: #e3e3e3; - background-image: none; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary:hover:not(:disabled) { - background-color: #e3e3e3; - background-image: none; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary:active:not(:disabled) { - background-color: #d6d6d6; - background-image: none; - border-color: #d6d6d6; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--icon, -.tox .tox-button.tox-button--icon, -.tox .tox-button.tox-button--secondary.tox-button--icon { - padding: 4px; -} -.tox .tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { - display: block; - fill: currentColor; -} -.tox .tox-button-link { - background: 0; - border: none; - box-sizing: border-box; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - font-weight: normal; - line-height: 1.3; - margin: 0; - padding: 0; - white-space: nowrap; -} -.tox .tox-button-link--sm { - font-size: 14px; -} -.tox .tox-button--naked { - background-color: transparent; - border-color: transparent; - box-shadow: unset; - color: #222f3e; -} -.tox .tox-button--naked:hover:not(:disabled) { - background-color: #e3e3e3; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--naked:focus:not(:disabled) { - background-color: #e3e3e3; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--naked:active:not(:disabled) { - background-color: #d6d6d6; - border-color: #d6d6d6; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--naked .tox-icon svg { - fill: currentColor; -} -.tox .tox-button--naked.tox-button--icon { - color: currentColor; -} -.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { - color: #222f3e; -} -.tox .tox-checkbox { - align-items: center; - border-radius: 3px; - cursor: pointer; - display: flex; - height: 36px; - min-width: 36px; -} -.tox .tox-checkbox__input { - /* Hide from view but visible to screen readers */ - height: 1px; - left: -10000px; - overflow: hidden; - position: absolute; - top: auto; - width: 1px; -} -.tox .tox-checkbox__icons { - border-radius: 3px; - box-shadow: 0 0 0 2px transparent; - height: 24px; - padding: calc(3px); - width: 24px; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: block; - fill: rgba(34, 47, 62, 0.3); -} -.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: none; - fill: #3498db; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: none; - fill: #3498db; -} -.tox .tox-checkbox__label { - margin-left: 4px; -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: block; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: block; -} -.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { - border-radius: 3px; - box-shadow: inset 0 0 0 1px #3498db; - padding: calc(3px); -} -.tox .tox-bar .tox-checkbox { - margin-left: 4px; -} -.tox .tox-collection--toolbar .tox-collection__group { - display: flex; - padding: 0; -} -.tox .tox-collection--grid .tox-collection__group { - display: flex; - flex-wrap: wrap; - max-height: 208px; - overflow-x: hidden; - overflow-y: auto; - padding: 0; -} -.tox .tox-collection--list .tox-collection__group { - border-bottom-width: 0; - border-color: #cccccc; - border-left-width: 0; - border-right-width: 0; - border-style: solid; - border-top-width: 1px; - padding: 4px 0; -} -.tox .tox-collection--list .tox-collection__group:first-child { - border-top-width: 0; -} -.tox .tox-collection__group-heading { - background-color: #e6e6e6; - color: rgba(34, 47, 62, 0.6); - cursor: default; - font-size: 12px; - font-style: normal; - font-weight: normal; - margin-bottom: 4px; - margin-top: -4px; - padding: 4px 8px; - text-transform: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.tox .tox-collection__item { - align-items: center; - color: #222f3e; - cursor: pointer; - display: flex; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.tox .tox-collection__item--state-disabled { - background-color: unset; - color: rgba(34, 47, 62, 0.5); - cursor: default; -} -.tox .tox-collection--list .tox-collection__item { - padding: 4px 8px; -} -.tox .tox-collection--toolbar .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--grid .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--list .tox-collection__item--enabled { - background-color: inherit; - color: contrast(inherit, #222f3e, #fff); -} -.tox .tox-collection--list .tox-collection__item--active { - background-color: #dee0e2; - color: #222f3e; -} -.tox .tox-collection--toolbar .tox-collection__item--enabled { - background-color: #c8cbcf; - color: #222f3e; -} -.tox .tox-collection--toolbar .tox-collection__item--active { - background-color: #dee0e2; - color: #222f3e; -} -.tox .tox-collection--grid .tox-collection__item--enabled { - background-color: #c8cbcf; - color: #222f3e; -} -.tox .tox-collection--grid .tox-collection__item--active { - background-color: #dee0e2; - color: #222f3e; -} -.tox .tox-collection__item-icon { - align-items: center; - display: flex; - height: 24px; - justify-content: center; - width: 24px; -} -.tox .tox-collection__item-icon svg { - fill: currentColor; -} -.tox .tox-collection--toolbar-lg .tox-collection__item-icon { - height: 48px; - width: 48px; -} -.tox .tox-collection--list .tox-collection__item > *:not(:first-child) { - margin-left: 8px; -} -.tox .tox-collection__item[role="menuitemcheckbox"]:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { - display: none; -} -.tox .tox-collection__item-label { - color: currentColor; - display: inline-block; - flex: 1; - -ms-flex-preferred-size: auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 24px; - text-transform: none; - word-break: break-all; -} -.tox .tox-collection--list .tox-collection__item-label:first-child { - margin-left: 4px; -} -.tox .tox-collection__item-accessory { - color: rgba(34, 47, 62, 0.6); - display: inline-block; - font-size: 14px; - height: 24px; - line-height: 24px; - margin-left: 16px; - text-align: right; - text-transform: normal; -} -.tox .tox-collection__item-caret { - align-items: center; - display: flex; - margin-left: 16px; - min-height: 24px; -} -.tox .tox-color-picker-container { - display: flex; - flex-direction: row; - height: 225px; - margin: 0; -} -.tox .tox-sv-palette { - border: 1px solid black; - box-sizing: border-box; - display: flex; - height: 100%; - margin-right: 15px; -} -.tox .tox-sv-palette-spectrum { - height: 100%; -} -.tox .tox-sv-palette, -.tox .tox-sv-palette-spectrum { - width: 225px; -} -.tox .tox-sv-palette-thumb { - background: none; - border: 1px solid black; - border-radius: 50%; - height: 12px; - position: absolute; - width: 12px; -} -.tox .tox-sv-palette-inner-thumb { - border: 1px solid white; - border-radius: 50%; - height: 10px; - position: absolute; - width: 10px; -} -.tox .tox-hue-slider { - border: 1px solid black; - box-sizing: border-box; - height: 100%; - margin-right: 15px; - width: 25px; -} -.tox .tox-hue-slider-spectrum { - background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); - height: 100%; - width: 100%; -} -.tox .tox-hue-slider, -.tox .tox-hue-slider-spectrum { - width: 20px; -} -.tox .tox-hue-slider-thumb { - background: white; - border: 1px solid black; - height: 4px; - margin-left: -1px; - width: 100%; -} -.tox .tox-rgb-form { - display: flex; - flex-direction: column; - justify-content: space-between; -} -.tox .tox-rgb-form div { - align-items: center; - display: flex; - justify-content: space-between; - margin-bottom: 5px; - width: inherit; -} -.tox .tox-rgb-form input { - width: 6em; -} -.tox .tox-rgb-form input.tox-invalid { - /* Need !important to override Chrome's focus styling unfortunately */ - border: 1px solid red !important; -} -.tox .tox-rgb-form label { - margin-right: .5em; -} -.tox .tox-rgb-form .tox-rgba-preview { - border: 1px solid black; - flex-grow: 2; - margin-bottom: 0; -} -.tox .tox-toolbar .tox-swatches, -.tox .tox-toolbar__primary .tox-swatches, -.tox .tox-toolbar__overflow .tox-swatches { - margin: 2px 0 3px 4px; -} -.tox .tox-swatches__row { - display: flex; -} -.tox .tox-swatch { - height: 30px; - transition: transform 0.15s, box-shadow 0.15s; - width: 30px; -} -.tox .tox-swatch:hover, -.tox .tox-swatch:focus { - box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; - transform: scale(0.8); -} -.tox .tox-swatch--remove { - align-items: center; - display: flex; - justify-content: center; -} -.tox .tox-swatch--remove svg path { - stroke: #e74c3c; -} -.tox .tox-swatches__picker-btn { - align-items: center; - background-color: transparent; - border: 0; - cursor: pointer; - display: flex; - height: 30px; - justify-content: center; - margin-left: auto; - outline: none; - padding: 0; - width: 30px; -} -.tox .tox-swatches__picker-btn svg { - height: 24px; - width: 24px; -} -.tox .tox-swatches__picker-btn:hover { - background: #dee0e2; -} -.tox .tox-comment-thread { - background: #fff; - position: relative; -} -.tox .tox-comment-thread > *:not(:first-child) { - margin-top: 8px; -} -.tox .tox-comment { - background: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); - padding: 8px 8px 16px 8px; - position: relative; -} -.tox .tox-comment__header { - align-items: center; - color: #222f3e; - display: flex; - justify-content: space-between; -} -.tox .tox-comment__date { - color: rgba(34, 47, 62, 0.6); - font-size: 12px; -} -.tox .tox-comment__body { - color: #222f3e; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin-top: 8px; - position: relative; - text-transform: initial; -} -.tox .tox-comment__body textarea { - resize: none; - white-space: normal; - width: 100%; -} -.tox .tox-comment__expander { - padding-top: 8px; -} -.tox .tox-comment__expander p { - color: rgba(34, 47, 62, 0.6); - font-size: 14px; - font-style: normal; -} -.tox .tox-comment__body p { - margin: 0; -} -.tox .tox-comment__buttonspacing { - padding-top: 16px; - text-align: center; -} -.tox .tox-comment__buttonspacing > *:last-child { - margin-left: 8px; -} -.tox .tox-comment-thread__overlay::after { - background: #fff; - bottom: 0; - content: ""; - display: flex; - left: 0; - opacity: .9; - position: absolute; - right: 0; - top: 0; - z-index: 5; -} -.tox .tox-comment__reply { - display: flex; - flex-shrink: 0; - flex-wrap: wrap; - justify-content: flex-end; - margin-top: 8px; -} -.tox .tox-comment__reply > *:first-child { - margin-bottom: 8px; - width: 100%; -} -.tox .tox-comment__reply > *:last-child { - margin-left: 8px; -} -.tox .tox-comment__edit { - display: flex; - flex-wrap: wrap; - justify-content: flex-end; - margin-left: 8px; - margin-top: 16px; -} -.tox .tox-comment__edit > *:last-child { - margin-left: 8px; -} -.tox .tox-comment__gradient::after { - background: linear-gradient(rgba(255, 255, 255, 0), #fff); - bottom: 0; - content: ""; - display: block; - height: 5em; - margin-top: -40px; - position: absolute; - width: 100%; -} -.tox .tox-comment__overlay { - background: #fff; - bottom: 0; - display: flex; - flex-direction: column; - flex-grow: 1; - left: 0; - opacity: .9; - position: absolute; - right: 0; - text-align: center; - top: 0; - z-index: 5; -} -.tox .tox-comment__loading-text { - align-items: center; - color: #222f3e; - display: flex; - flex-direction: column; - position: relative; -} -.tox .tox-comment__loading-text > div { - padding-bottom: 16px; -} -.tox .tox-comment__overlaytext { - bottom: 0; - flex-direction: column; - font-size: 14px; - left: 0; - padding: 1em; - position: absolute; - right: 0; - top: 0; - z-index: 10; -} -.tox .tox-comment__overlaytext p { - background-color: #fff; - box-shadow: 0 0 8px 8px #fff; - color: #222f3e; - text-align: center; -} -.tox .tox-comment__overlaytext div:nth-of-type(2) { - font-size: .8em; -} -.tox .tox-comment__busy-spinner { - align-items: center; - background-color: #fff; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1103; -} -.tox .tox-comment__scroll { - display: flex; - flex-direction: column; - flex-shrink: 1; - overflow: auto; -} -.tox .tox-conversations { - margin: 8px; -} -.tox .tox-user { - align-items: center; - display: flex; -} -.tox .tox-user__avatar svg { - fill: rgba(34, 47, 62, 0.6); - margin-right: 8px; -} -.tox .tox-user__name { - color: rgba(34, 47, 62, 0.6); - font-size: 12px; - font-style: normal; - font-weight: bold; - text-transform: uppercase; -} -.tox .tox-user__avatar + .tox-user__name { - margin-left: 8px; -} -.tox .tox-dialog-wrap { - align-items: center; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: fixed; - right: 0; - top: 0; - z-index: 1100; -} -.tox .tox-dialog-wrap__backdrop { - background-color: rgba(255, 255, 255, 0.75); - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1101; -} -.tox .tox-dialog { - background-color: #fff; - border-color: #cccccc; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15); - display: flex; - flex-direction: column; - max-height: 100%; - max-width: 480px; - overflow: hidden; - position: relative; - width: 95vw; - z-index: 1102; -} -.tox .tox-dialog__header { - align-items: center; - background-color: #fff; - border-bottom: none; - color: #222f3e; - display: flex; - font-size: 16px; - justify-content: space-between; - margin-bottom: 16px; - padding: 8px 16px 0 16px; - position: relative; -} -.tox .tox-dialog__header .tox-button { - z-index: 1; -} -.tox .tox-dialog__draghandle { - cursor: grab; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tox .tox-dialog__draghandle:active { - cursor: grabbing; -} -.tox .tox-dialog__dismiss { - margin-left: auto; -} -.tox .tox-dialog__title { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 20px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin: 0; - text-transform: normal; -} -.tox .tox-dialog__body { - color: #222f3e; - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - font-size: 16px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - padding: 0 16px; - text-align: left; - text-transform: normal; -} -.tox .tox-dialog__body-nav { - align-items: flex-start; - display: flex; - flex-direction: column; - margin-right: 32px; -} -.tox .tox-dialog__body-nav-item { - border-bottom: 2px solid transparent; - color: rgba(34, 47, 62, 0.6); - display: inline-block; - font-size: 14px; - line-height: 1.3; - margin-bottom: 8px; - text-decoration: none; -} -.tox .tox-dialog__body-nav-item--active { - border-bottom: 2px solid #3498db; - color: #3498db; -} -.tox .tox-dialog__body-content { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; - max-height: 650px; - overflow: auto; -} -.tox .tox-dialog__body-content > * { - margin-bottom: 0; - margin-top: 16px; -} -.tox .tox-dialog__body-content > *:first-child { - margin-top: 0; -} -.tox .tox-dialog__body-content > *:last-child { - margin-bottom: 0; -} -.tox .tox-dialog__body-content > *:only-child { - margin-bottom: 0; - margin-top: 0; -} -.tox .tox-dialog--width-lg { - height: 650px; - max-width: 1200px; -} -.tox .tox-dialog--width-md { - max-width: 800px; -} -.tox .tox-dialog--width-md .tox-dialog__body-content { - overflow: auto; -} -.tox .tox-dialog__body-content--centered { - text-align: center; -} -.tox .tox-dialog__body-content--spacious { - margin-bottom: 16px; -} -.tox .tox-dialog__footer { - align-items: center; - background-color: #fff; - border-top: 1px solid #cccccc; - display: flex; - justify-content: space-between; - margin-top: 16px; - padding: 8px 16px; -} -.tox .tox-dialog__footer .tox-dialog__footer-start > *, -.tox .tox-dialog__footer .tox-dialog__footer-end > * { - margin-left: 8px; -} -.tox .tox-dialog__busy-spinner { - align-items: center; - background-color: rgba(255, 255, 255, 0.75); - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1103; -} -.tox .tox-dialog__table { - border-collapse: collapse; - width: 100%; -} -.tox .tox-dialog__table thead th { - font-weight: bold; - padding-bottom: 8px; -} -.tox .tox-dialog__table tbody tr { - border-bottom: 1px solid #cccccc; -} -.tox .tox-dialog__table tbody tr:last-child { - border-bottom: none; -} -.tox .tox-dialog__table td { - padding-bottom: 8px; - padding-top: 8px; -} -.tox .tox-dialog__popups { - position: absolute; - width: 100%; - z-index: 1100; -} -body.tox-dialog__disable-scroll { - overflow: hidden; -} -.tox .tox-dropzone-container { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dropzone { - align-items: center; - background: #fff; - border: 2px dashed #cccccc; - box-sizing: border-box; - display: flex; - flex-direction: column; - flex-grow: 1; - justify-content: center; - min-height: 100px; - padding: 10px; -} -.tox .tox-dropzone p { - color: rgba(34, 47, 62, 0.6); - margin: 0 0 16px 0; -} -.tox .tox-edit-area { - border-top: 1px solid #cccccc; - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - overflow: hidden; - position: relative; -} -.tox .tox-edit-area__iframe { - background-color: #fff; - border: 0; - box-sizing: border-box; - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; - position: absolute; - width: 100%; -} -.tox.tox-inline-edit-area { - border: 1px dotted #cccccc; -} -.tox .tox-control-wrap { - flex: 1; - position: relative; -} -.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, -.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, -.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { - display: none; -} -.tox .tox-control-wrap svg { - display: block; -} -.tox .tox-control-wrap .tox-textfield { - padding-right: 32px; -} -.tox .tox-control-wrap__status-icon-wrap { - position: absolute; - right: 4px; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-control-wrap__status-icon-invalid svg { - fill: #c00; -} -.tox .tox-control-wrap__status-icon-unknown svg { - fill: orange; -} -.tox .tox-control-wrap__status-icon-valid svg { - fill: transparent; -} -.tox .tox-autocompleter { - max-width: 25em; -} -.tox .tox-autocompleter .tox-menu { - max-width: 25em; -} -.tox .tox-color-input { - display: flex; -} -.tox .tox-color-input .tox-textfield { - border-radius: 3px 0 0 3px; - display: flex; -} -.tox .tox-color-input span { - border-color: rgba(34, 47, 62, 0.2); - border-radius: 0 3px 3px 0; - border-style: solid; - border-width: 1px 1px 1px 0; - box-shadow: none; - box-sizing: border-box; - cursor: pointer; - display: flex; - width: 35px; -} -.tox .tox-color-input span:focus { - border-color: #3498db; -} -.tox .tox-label, -.tox .tox-toolbar-label { - color: rgba(34, 47, 62, 0.6); - display: block; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - padding: 0 8px 0 0; - text-transform: normal; - white-space: nowrap; -} -.tox .tox-toolbar-label { - padding: 0 8px; -} -.tox .tox-form { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group { - box-sizing: border-box; - margin-bottom: 4px; -} -.tox .tox-form__group--error { - color: #c00; -} -.tox .tox-form__group--collection { - display: flex; -} -.tox .tox-form__grid { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; -} -.tox .tox-form__grid--2col > .tox-form__group { - width: calc(50% - (8px / 2)); -} -.tox .tox-form__grid--3col > .tox-form__group { - width: calc(100% / 3 - (8px / 2)); -} -.tox .tox-form__grid--4col > .tox-form__group { - width: calc(25% - (8px / 2)); -} -.tox .tox-form__controls-h-stack { - align-items: center; - display: flex; -} -.tox .tox-form__controls-h-stack > *:not(:first-child) { - margin-left: 4px; -} -.tox .tox-form__group--inline { - align-items: center; - display: flex; -} -.tox .tox-form__group--stretched { - display: flex; - flex: 1; - flex-direction: column; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-textarea { - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-navobj { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { - flex: 1; - -ms-flex-preferred-size: auto; - height: 100%; -} -.tox .tox-lock.tox-locked .tox-lock-icon__unlock, -.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { - display: none; -} -.tox .tox-selectfield { - cursor: pointer; - position: relative; -} -.tox .tox-selectfield select { - padding-right: 24px; -} -.tox .tox-selectfield select::-ms-expand { - display: none; -} -.tox .tox-selectfield svg { - pointer-events: none; - position: absolute; - right: 8px; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-textarea { - white-space: pre-wrap; -} -.tox .tox-textfield, -.tox .tox-selectfield select, -.tox .tox-textarea, -.tox .tox-toolbar-textfield { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #fff; - border-color: #cccccc; - border-radius: 3px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #222f3e; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - line-height: 24px; - margin: 0; - outline: none; - padding: 5px 4.75px; - resize: none; - width: 100%; -} -.tox .tox-textfield:focus, -.tox .tox-selectfield select:focus, -.tox .tox-textarea:focus { - border-color: #3498db; - box-shadow: none; - outline: none; -} -.tox .tox-toolbar-textfield { - border-width: 0; - margin-bottom: 3px; - margin-top: 2px; - max-width: 250px; -} -.tox .tox-toolbar-textfield + * { - margin-left: 4px; -} -.tox .tox-naked-btn { - background-color: transparent; - border: 0; - border-color: transparent; - box-shadow: unset; - color: #3498db; - cursor: pointer; - display: block; - margin: 0; - padding: 0; -} -.tox .tox-naked-btn svg { - display: block; - fill: #222f3e; -} -.tox-fullscreen { - border: 0; - height: 100%; - left: 0; - margin: 0; - overflow: hidden; - padding: 0; - position: fixed; - top: 0; - width: 100%; -} -.tox-fullscreen .tox .tox-statusbar__resize-handle { - display: none; -} -.tox-fullscreen .tox.tox-tinymce { - z-index: 1200; -} -.tox-fullscreen .tox.tox-tinymce-aux { - z-index: 1201; -} -.tox .tox-image-tools { - width: 100%; -} -.tox .tox-image-tools__toolbar { - align-items: center; - display: flex; - justify-content: center; -} -.tox .tox-image-tools__image { - background-color: #666; - height: 380px; - overflow: auto; - position: relative; - width: 100%; -} -.tox .tox-image-tools__image, -.tox .tox-image-tools__image + .tox-image-tools__toolbar { - margin-top: 8px; -} -.tox .tox-image-tools__image-bg { - background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); -} -.tox .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { - margin-left: 8px; -} -.tox .tox-image-tools__toolbar > .tox-button + .tox-slider { - margin-left: 32px; -} -.tox .tox-image-tools__toolbar > .tox-slider + .tox-button { - margin-left: 32px; -} -.tox .tox-image-tools__toolbar > .tox-spacer { - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-croprect-block { - background: black; - filter: alpha(opacity=50); - opacity: .5; - position: absolute; - zoom: 1; -} -.tox .tox-croprect-handle { - border: 2px solid white; - height: 20px; - left: 0; - position: absolute; - top: 0; - width: 20px; -} -.tox .tox-croprect-handle-move { - border: 0; - cursor: move; - position: absolute; -} -.tox .tox-croprect-handle-nw { - border-width: 2px 0 0 2px; - cursor: nw-resize; - left: 100px; - margin: -2px 0 0 -2px; - top: 100px; -} -.tox .tox-croprect-handle-ne { - border-width: 2px 2px 0 0; - cursor: ne-resize; - left: 200px; - margin: -2px 0 0 -20px; - top: 100px; -} -.tox .tox-croprect-handle-sw { - border-width: 0 0 2px 2px; - cursor: sw-resize; - left: 100px; - margin: -20px 2px 0 -2px; - top: 200px; -} -.tox .tox-croprect-handle-se { - border-width: 0 2px 2px 0; - cursor: se-resize; - left: 200px; - margin: -20px 0 0 -20px; - top: 200px; -} -.tox .tox-insert-table-picker { - display: flex; - flex-wrap: wrap; - width: 169px; -} -.tox .tox-insert-table-picker > div { - border-color: #cccccc; - border-style: solid; - border-width: 0 1px 1px 0; - box-sizing: content-box; - height: 16px; - width: 16px; -} -.tox .tox-insert-table-picker > div:nth-child(10n) { - border-right: 0; -} -.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { - margin: -4px 0; -} -.tox .tox-insert-table-picker .tox-insert-table-picker__selected { - background-color: rgba(52, 152, 219, 0.5); - border-color: rgba(52, 152, 219, 0.5); -} -.tox .tox-insert-table-picker__label { - color: rgba(34, 47, 62, 0.6); - display: block; - font-size: 14px; - padding: 4px; - text-align: center; - width: 100%; -} -.tox { - /* stylelint-disable */ - /* stylelint-enable */ -} -.tox .tox-menu { - background-color: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); - display: inline-block; - overflow: hidden; - vertical-align: top; - z-index: 1; -} -.tox .tox-menu.tox-collection.tox-collection--list { - padding: 0; -} -.tox .tox-menu.tox-collection.tox-collection--toolbar { - padding: 4px; -} -.tox .tox-menu.tox-collection.tox-collection--grid { - padding: 4px; -} -.tox .tox-menu__label h1, -.tox .tox-menu__label h2, -.tox .tox-menu__label h3, -.tox .tox-menu__label h4, -.tox .tox-menu__label h5, -.tox .tox-menu__label h6, -.tox .tox-menu__label p, -.tox .tox-menu__label blockquote, -.tox .tox-menu__label code { - margin: 0; -} -.tox .tox-menubar { - background: url("data:image/svg+xml;charset=utf8,%3Csvg height='43px' viewBox='0 0 40 43px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='42px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; - background-color: #fff; - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - margin-bottom: -1px; - padding: 0 4px; -} -.tox .tox-mbtn { - align-items: center; - background: none; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #222f3e; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 34px; - justify-content: center; - margin: 2px 0 3px 0; - outline: none; - overflow: hidden; - padding: 0 4px; - text-transform: normal; - width: auto; -} -.tox .tox-mbtn[disabled] { - background-color: none; - border-color: none; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-mbtn:hover:not(:disabled) { - background: #dee0e2; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn:focus:not(:disabled) { - background: #dee0e2; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn--active { - background: #c8cbcf; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn__select-label { - cursor: default; - font-weight: normal; - margin: 0 4px; -} -.tox .tox-mbtn[disabled] .tox-mbtn__select-label { - cursor: not-allowed; -} -.tox .tox-mbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; - display: none; -} -.tox .tox-notification { - background-color: #fff; - border-color: #c5c5c5; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - display: -ms-grid; - display: grid; - -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); - grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); - margin-top: 5px; - opacity: 0; - padding: 5px; - transition: transform 100ms ease-in, opacity 150ms ease-in; -} -.tox .tox-notification--in { - opacity: 1; -} -.tox .tox-notification--success { - background-color: #dff0d8; - border-color: #d6e9c6; -} -.tox .tox-notification--error { - background-color: #f2dede; - border-color: #ebccd1; -} -.tox .tox-notification--warn { - background-color: #fcf8e3; - border-color: #faebcc; -} -.tox .tox-notification--info { - background-color: #d9edf7; - border-color: #779ecb; -} -.tox .tox-notification__body { - -ms-grid-row-align: center; - align-self: center; - color: #31708f; - font-size: 14px; - grid-column-end: 3; - -ms-grid-column-span: 1; - -ms-grid-column: 2; - grid-column-start: 2; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - text-align: center; - white-space: normal; - word-break: break-all; - word-break: break-word; -} -.tox .tox-notification__body > * { - margin: 0; -} -.tox .tox-notification__body > * + * { - margin-top: 1rem; -} -.tox .tox-notification__icon { - -ms-grid-row-align: center; - align-self: center; - -ms-grid-column-align: end; - grid-column-end: 2; - -ms-grid-column-span: 1; - -ms-grid-column: 1; - grid-column-start: 1; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - justify-self: end; -} -.tox .tox-notification__icon svg { - display: block; -} -.tox .tox-notification__dismiss { - -ms-grid-row-align: start; - align-self: start; - -ms-grid-column-align: end; - grid-column-end: 4; - -ms-grid-column-span: 1; - -ms-grid-column: 3; - grid-column-start: 3; - grid-row-end: 2; - -ms-grid-row: 1; - grid-row-start: 1; - justify-self: end; -} -.tox .tox-notification .tox-progress-bar { - -ms-grid-column-align: center; - grid-column-end: 4; - -ms-grid-column-span: 3; - -ms-grid-column: 1; - grid-column-start: 1; - grid-row-end: 3; - -ms-grid-row-span: 1; - -ms-grid-row: 2; - grid-row-start: 2; - justify-self: center; -} -.tox .tox-pop { - display: inline-block; - position: relative; -} -.tox .tox-pop--resizing { - transition: width .1s ease; -} -.tox .tox-pop--resizing .tox-toolbar { - flex-wrap: nowrap; -} -.tox .tox-pop__dialog { - background-color: #fff; - border: 1px solid #cccccc; - border-radius: 3px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); - min-width: 0; - overflow: hidden; -} -.tox .tox-pop__dialog > *:not(.tox-toolbar) { - margin: 4px 4px 4px 8px; -} -.tox .tox-pop__dialog .tox-toolbar { - background-color: transparent; -} -.tox .tox-pop::before, -.tox .tox-pop::after { - border-style: solid; - content: ''; - display: block; - height: 0; - position: absolute; - width: 0; -} -.tox .tox-pop.tox-pop--bottom::before, -.tox .tox-pop.tox-pop--bottom::after { - left: 50%; - top: 100%; -} -.tox .tox-pop.tox-pop--bottom::after { - border-color: #fff transparent transparent transparent; - border-width: 8px; - margin-left: -8px; - margin-top: -1px; -} -.tox .tox-pop.tox-pop--bottom::before { - border-color: #cccccc transparent transparent transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--top::before, -.tox .tox-pop.tox-pop--top::after { - left: 50%; - top: 0; - transform: translateY(-100%); -} -.tox .tox-pop.tox-pop--top::after { - border-color: transparent transparent #fff transparent; - border-width: 8px; - margin-left: -8px; - margin-top: 1px; -} -.tox .tox-pop.tox-pop--top::before { - border-color: transparent transparent #cccccc transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--left::before, -.tox .tox-pop.tox-pop--left::after { - left: 0; - top: calc(50% - 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--left::after { - border-color: transparent #fff transparent transparent; - border-width: 8px; - margin-left: -15px; -} -.tox .tox-pop.tox-pop--left::before { - border-color: transparent #cccccc transparent transparent; - border-width: 10px; - margin-left: -19px; -} -.tox .tox-pop.tox-pop--right::before, -.tox .tox-pop.tox-pop--right::after { - left: 100%; - top: calc(50% + 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--right::after { - border-color: transparent transparent transparent #fff; - border-width: 8px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--right::before { - border-color: transparent transparent transparent #cccccc; - border-width: 10px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--align-left::before, -.tox .tox-pop.tox-pop--align-left::after { - left: 20px; -} -.tox .tox-pop.tox-pop--align-right::before, -.tox .tox-pop.tox-pop--align-right::after { - left: calc(100% - 20px); -} -.tox .tox-sidebar-wrap { - display: flex; - flex-direction: row; - flex-grow: 1; - min-height: 0; -} -.tox .tox-sidebar { - display: flex; - flex-direction: row; - justify-content: flex-end; -} -.tox .tox-sidebar__slider { - display: flex; - overflow: hidden; -} -.tox .tox-sidebar__pane-container { - display: flex; -} -.tox .tox-sidebar__pane { - display: flex; -} -.tox .tox-sidebar--sliding-closed { - opacity: 0; -} -.tox .tox-sidebar--sliding-open { - opacity: 1; -} -.tox .tox-sidebar--sliding-growing, -.tox .tox-sidebar--sliding-shrinking { - transition: width .5s ease, opacity .5s ease; -} -.tox .tox-slider { - align-items: center; - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; - height: 24px; - justify-content: center; - position: relative; -} -.tox .tox-slider__rail { - background-color: transparent; - border: 1px solid #cccccc; - border-radius: 6px; - height: 6px; - min-width: 120px; - width: 100%; -} -.tox .tox-slider__handle { - background-color: #3498db; - border-radius: 1.5px; - box-shadow: none; - height: 24px; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%); - width: 3px; -} -.tox .tox-source-code { - overflow: auto; -} -.tox .tox-spinner { - display: flex; -} -.tox .tox-spinner > div { - animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; - background-color: rgba(34, 47, 62, 0.6); - border-radius: 100%; - height: 8px; - width: 8px; -} -.tox .tox-spinner > div:nth-child(1) { - animation-delay: -0.32s; -} -.tox .tox-spinner > div:nth-child(2) { - animation-delay: -0.16s; -} -.tox .tox-spinner > div:not(:first-child) { - margin-left: 4px; -} -@keyframes tam-bouncing-dots { - 0%, - 80%, - 100% { - transform: scale(0); - } - 40% { - transform: scale(1); - } -} -.tox .tox-statusbar { - align-items: center; - background-color: #fff; - border-top: 1px solid #cccccc; - color: rgba(34, 47, 62, 0.6); - display: flex; - flex: 0 0 auto; - font-size: 12px; - height: 18px; - overflow: hidden; - padding: 0 8px; - position: relative; - text-transform: uppercase; -} -.tox .tox-statusbar a { - color: rgba(34, 47, 62, 0.6); - text-decoration: none; -} -.tox .tox-statusbar a:hover { - text-decoration: underline; -} -.tox .tox-statusbar__text-container { - display: flex; - flex: 1 1 auto; - justify-content: flex-end; - overflow: hidden; -} -.tox .tox-statusbar__path { - display: flex; - flex: 1 1 auto; - margin-right: auto; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.tox .tox-statusbar__path > * { - display: inline; - margin-right: 4px; - white-space: nowrap; -} -.tox .tox-statusbar__wordcount, -.tox .tox-statusbar__branding { - flex: 0 0 auto; - margin-left: 1ch; -} -.tox .tox-statusbar__resize-handle { - align-items: flex-end; - align-self: stretch; - cursor: nwse-resize; - display: flex; - flex: 0 0 auto; - justify-content: flex-end; - margin-left: auto; - margin-right: -8px; - padding-left: 1ch; -} -.tox .tox-statusbar__resize-handle svg { - display: block; - fill: rgba(34, 47, 62, 0.6); -} -.tox .tox-tbtn { - align-items: center; - background: none; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #222f3e; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 34px; - justify-content: center; - margin: 2px 0 3px 0; - outline: none; - overflow: hidden; - padding: 0; - text-transform: normal; - width: 34px; -} -.tox .tox-tbtn svg { - display: block; - fill: #222f3e; -} -.tox .tox-tbtn.tox-tbtn-more { - padding-left: 5px; - padding-right: 5px; - width: inherit; -} -.tox .tox-tbtn + .tox-tbtn { - margin-left: 0; -} -.tox .tox-tbtn--enabled { - background: #c8cbcf; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn--enabled > * { - transform: none; -} -.tox .tox-tbtn--enabled svg { - fill: #222f3e; -} -.tox .tox-tbtn:hover { - background: #dee0e2; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn:hover svg { - fill: #222f3e; -} -.tox .tox-tbtn:focus { - background: #dee0e2; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn:focus svg { - fill: #222f3e; -} -.tox .tox-tbtn:active { - background: #c8cbcf; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn:active svg { - fill: #222f3e; -} -.tox .tox-tbtn--disabled, -.tox .tox-tbtn--disabled:hover, -.tox .tox-tbtn:disabled, -.tox .tox-tbtn:disabled:hover { - background: none; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-tbtn--disabled svg, -.tox .tox-tbtn--disabled:hover svg, -.tox .tox-tbtn:disabled svg, -.tox .tox-tbtn:disabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tbtn:active > * { - transform: none; -} -.tox .tox-tbtn--md { - height: 51px; - width: 51px; -} -.tox .tox-tbtn--lg { - flex-direction: column; - height: 68px; - width: 68px; -} -.tox .tox-tbtn--return { - -ms-grid-row-align: stretch; - align-self: stretch; - height: unset; - width: 16px; -} -.tox .tox-tbtn--labeled { - padding: 0 4px; - width: unset; -} -.tox .tox-tbtn__vlabel { - display: block; - font-size: 10px; - font-weight: normal; - letter-spacing: -0.025em; - margin-bottom: 4px; - white-space: nowrap; -} -.tox .tox-tbtn--select { - margin: 2px 0 3px 0; - padding: 0 4px; - width: auto; -} -.tox .tox-tbtn__select-label { - cursor: default; - font-weight: normal; - margin: 0 4px; -} -.tox .tox-tbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; -} -.tox .tox-tbtn__select-chevron svg { - fill: rgba(34, 47, 62, 0.6); -} -.tox .tox-tbtn--bespoke .tox-tbtn__select-label { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 7em; -} -.tox .tox-split-button { - border: 0; - border-radius: 3px; - box-sizing: border-box; - display: flex; - margin: 2px 0 3px 0; - overflow: hidden; -} -.tox .tox-split-button:hover { - box-shadow: 0 0 0 1px #dee0e2 inset; -} -.tox .tox-split-button:focus { - background: #dee0e2; - box-shadow: none; - color: #222f3e; -} -.tox .tox-split-button > * { - border-radius: 0; -} -.tox .tox-split-button__chevron { - width: 16px; -} -.tox .tox-split-button__chevron svg { - fill: rgba(34, 47, 62, 0.6); -} -.tox .tox-pop .tox-split-button__chevron svg { - transform: rotate(-90deg); -} -.tox .tox-split-button .tox-tbtn { - margin: 0; -} -.tox .tox-split-button.tox-tbtn--disabled:hover, -.tox .tox-split-button.tox-tbtn--disabled:focus, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { - background: none; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-toolbar, -.tox .tox-toolbar__primary, -.tox .tox-toolbar__overflow { - background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; - background-color: #fff; - border-top: 1px solid #cccccc; - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - margin-bottom: -1px; - padding: 0 0; -} -.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { - display: none; -} -.tox .tox-pop .tox-toolbar { - border-width: 0; -} -.tox .tox-toolbar--no-divider { - background-image: none; -} -.tox.tox-tinymce-aux .tox-toolbar__overflow { - border-left: 1px solid #cccccc; - border-radius: 6px; - border-right: 1px solid #cccccc; -} -.tox .tox-toolbar__group { - align-items: center; - display: flex; - flex-wrap: wrap; - margin: 0 0; - padding: 0 4px; -} -.tox .tox-toolbar__group:not(:last-of-type) { - border-right: 1px solid #cccccc; -} -.tox .tox-toolbar__group--pull-right { - margin-left: auto; -} -.tox .tox-tooltip { - display: inline-block; - padding: 8px; - position: relative; -} -.tox .tox-tooltip__body { - background-color: #222f3e; - border-radius: 3px; - box-shadow: 0 2px 4px rgba(34, 47, 62, 0.3); - color: rgba(255, 255, 255, 0.75); - font-size: 14px; - font-style: normal; - font-weight: normal; - padding: 4px 8px; - text-transform: normal; -} -.tox .tox-tooltip__arrow { - position: absolute; -} -.tox .tox-tooltip--down .tox-tooltip__arrow { - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-top: 8px solid #222f3e; - bottom: 0; - left: 50%; - position: absolute; - transform: translateX(-50%); -} -.tox .tox-tooltip--up .tox-tooltip__arrow { - border-bottom: 8px solid #222f3e; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - left: 50%; - position: absolute; - top: 0; - transform: translateX(-50%); -} -.tox .tox-tooltip--right .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-left: 8px solid #222f3e; - border-top: 8px solid transparent; - position: absolute; - right: 0; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-tooltip--left .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-right: 8px solid #222f3e; - border-top: 8px solid transparent; - left: 0; - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-well { - border: 1px solid #cccccc; - border-radius: 3px; - padding: 8px; - width: 100%; -} -.tox .tox-well > *:first-child { - margin-top: 0; -} -.tox .tox-well > *:last-child { - margin-bottom: 0; -} -.tox .tox-well > *:only-child { - margin: 0; -} -.tox .tox-custom-editor { - border: 1px solid #cccccc; - border-radius: 3px; - display: flex; - height: 525px; -} -/* stylelint-disable */ -.tox { - /* stylelint-enable */ -} -.tox .tox-dialog-loading::before { - background-color: rgba(0, 0, 0, 0.5); - content: ""; - height: 100%; - position: absolute; - width: 100%; - z-index: 1000; -} -.tox .tox-tab { - cursor: pointer; -} -.tox .tox-dialog__content-js { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox .tox-dialog__body-content .tox-collection { - display: flex; - flex: 1; - -ms-flex-preferred-size: auto; -} -.tox ul { - display: block; - list-style-type: disc; - -webkit-margin-before: 1em; - margin-block-start: 1em; - -webkit-margin-after: 1em; - margin-block-end: 1em; - -webkit-margin-start: 0px; - margin-inline-start: 0px; - -webkit-margin-end: 0px; - margin-inline-end: 0px; - -webkit-padding-start: 40px; - padding-inline-start: 40px; -} -.tox a { - cursor: pointer; - color: #2276d2; -} -.tox .tox-image-tools-edit-panel { - height: 60px; -} -.tox .tox-image-tools__sidebar { - height: 60px; -} diff --git a/public/v2.js b/public/v2.js deleted file mode 100644 index ce04728..0000000 --- a/public/v2.js +++ /dev/null @@ -1 +0,0 @@ -!function(){"use strict";function e(e){return e===undefined||null===e}function t(e){return e!==undefined&&null!==e}function n(e){return null!==e&&"object"===(void 0===e?"undefined":d(e))}function r(e){return"object"===(void 0===e?"undefined":d(e))&&e instanceof HTMLElement}function o(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function i(){return new RegExp("MSIE (\\d+\\.\\d+);").test(navigator.userAgent),parseFloat(RegExp.$1)||Infinity}function a(e,t){for(var n in t)e[n]=t[n];return e}function c(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}function u(e){return p.call(e).slice(8,-1)}function s(e){throw new Error("Vaptcha error: "+e)}function l(e){var t=e.mode,n=e.outage;return!!t&&"downtime"===(t=t.toLowerCase())&&!!n}function Promise(e){var t=this;this.state="pending",this.value=undefined,this.reason=undefined,this.onResolveAsyncCallbacks=[],this.onRejectAsyncCallbacks=[];var n=function(e){"pending"===t.state&&(t.state="fulfilled",t.value=e,t.onResolveAsyncCallbacks.map(function(e){return e()}))},r=function(e){"pending"===t.state&&(t.state="rejected",t.reason=e,t.onRejectAsyncCallbacks.map(function(t){return t(e)}))};try{e(n,r)}catch(o){r(o)}}window.HTMLElement=window.HTMLElement||Element,Array.prototype.map||(Array.prototype.map=function(e,t){var n,r,o;if(null==this)throw new TypeError(" this is null or not defined");var i=Object(this),a=i.length>>>0;if("[object Function]"!=Object.prototype.toString.call(e))throw new TypeError(e+" is not a function");for(t&&(n=t),r=new Array(a),o=0;o>>0;if(0===r)return!1;for(var o=0|t,i=Math.max(o>=0?o:r-Math.abs(o),0);i>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var r=arguments[1],o=0;o-1||r.indexOf("https://")>-1;return r.indexOf("?")<0&&(i="?"+i.slice(1)),a?""+r+i:""+e+t+r+i},o=function(e){var t=document.getElementsByTagName("head")[0],n=document.createElement("script");return n.charset="UTF-8",n.src=e,t.appendChild(n),{remove:function(){t.removeChild(n)}}},i=function(e,t){return t=t||{},new Promise(function(n){var i="VaptchaJsonp"+(new Date).valueOf();window[i]&&(i+="1"),a(t,{callback:i}),e=r(e,t);var c=o(e),u=setTimeout(function(){clearTimeout(u),window[i]=null,c.remove(),n({code:"0703",msg:"Time out,Refresh Again!"})},1e4);window[i]=function(){clearTimeout(u),n.apply(this,arguments),c.remove(),window[i]=null}})};return i.setConfig=function(n){e=n.protocol||e,t=n.api_server||t},i}(),g={getConfig:function(e){return y("/config",{id:e.vid,type:e.type,scene:e.scene||""})},refresh:function(e){return y("/refresh",e)},click:function(e){return y("/click",e)},get:function(e){return y("/get",e)},verify:function(e){return y("/verify",e)},userbehavior:function(e){return y("/userbehavior",e)}},w={"0201":"id empty","0202":"id error","0208":"scene error","0209":"request used up","0906":"params error","0702":"domain not match"},b=function(){var o=!1,c=function(e){var t=new v(e);return t.add("outage","required","please configure outage"),t.validate(),a(e,{js_path:"vaptcha-sdk-downtime.2.0.2.js",api_server:window.location.host,protocol:window.location.protocol+"//",mode:"DownTime"}),y.setConfig(e),y(e.outage,{action:"get"}).then(function(t){return t.code!==m.Success?(s(w[t.msg]||t.msg),Promise.reject(t.code)):(a(e,t),Promise.resolve())})},f=function(e){return l(e)?c(e):g.getConfig(e).then(function(t){return t.code!==m.Success?(s(w[t.msg]||t.msg),Promise.reject(t.code)):(t.type!==e.type&&(t.mode=t.type,t.type=e.type),a(e,t),l(e)?c(e):Promise.resolve())})},d=function(e,t){return""+e.protocol+e.cdn_servers[0]+"/"+t},p=function(t){var n=document.getElementsByTagName("head")[0],r=document.getElementById("vaptcha_style");return new Promise(function(o){e(r)?(r=document.createElement("link"),a(r,{rel:"stylesheet",type:"text/css",href:t,id:"vaptcha_style",onload:o}),n&&n.appendChild(r)):o()})},b=function C(e){var n=document.getElementsByTagName("head")[0],r=document.querySelector("script[src='"+e+"']");return new Promise(function(o){if(t(r))return void(r.loaded?o():setTimeout(function(){return C(e).then(o)}));r=document.createElement("script");var i=function(){r.readyState&&"loaded"!==r.readyState&&"complete"!==r.readyState||(o(),r.loaded=!0,r.onload=null,r.onreadystatechange=null)};a(r,{async:!0,charset:"utf-8",src:e,onerror:function(){return s("load sdk timeout")},onload:i,onreadystatechange:i}),n.appendChild(r)})},j=function T(e){var t=e.sdkName,n=e.config,r=d(n,n.js_path);return b(r).then(function(){var e=window["_"+h(t)+"Vaptcha"],r=new e(n);return r.vaptcha.resetCaptcha=function(e,t){a(n,t),T({sdkName:e,config:n}).then(function(e){r.destroy(),r.options=e.options,r.vaptcha=e.vaptcha,e.render(),"character"===n.mode&&["click","float","popup"].includes(n.type)&&e.vaptcha.dtClickCb({target:e.vaptcha.btnDiv})})},Promise.resolve(r)})},A=function(e){o=!0,e.https=!0,e.protocol="https://",y.setConfig(e),!["embed","popup","invisible"].includes(e.type)&&(e.type="popup"),i()<9&&b(d(e,e.canvas_path));var t=new v(e);if(t.addValidateRules({elementOrSelector:function(t,o){if("String"===u(e.container)&&(e.container=document.querySelector(e.container)),n(e.container)&&r(e.container[0])&&(e.container=e.container[0]),!r(e.container))return o}}),t.add("vid","required","please configure vid"),"invisible"!==e.type&&t.add("container","elementOrSelector","please configure container with element or selector"),t.validate())return f(e).then(function(){var t="theme_https."+e.css_version+".css",n=d(e,t);return p(n)}).then(function(){var t=e.mode||e.type;return o=!1,j({sdkName:t,config:e})})};return function S(e){return new Promise(function(t){o?setTimeout(function(){S(e).then(t)},1e3):A(e).then(t)})["catch"](function(e){return o=!1,s(e),Promise.reject(e)})}}(),j=function(){var e=function(e){var n=e.getAttribute("data-config"),r={};if(t(n))try{r=JSON.parse(n)}catch(o){s("dom config format error")}return r},n=function(e){var n=e.getAttribute("data-vid");return t(n)?{vid:n}:{}},r=function(e,n){var r=Object.create(f);r.container=e,a(r,n),t(r.vid)&&b(r).then(function(e){e.renderTokenInput(),e.render()})};return function(){for(var t=document.querySelectorAll("[data-vid]"),o=document.querySelectorAll("[data-config]"),i=0;i - -

    - -
    - - - - \ No newline at end of file diff --git a/src/api/GroupRequest.js b/src/api/GroupRequest.js deleted file mode 100644 index 2688138..0000000 --- a/src/api/GroupRequest.js +++ /dev/null @@ -1,30 +0,0 @@ -import Vue from 'vue' - -/** - * 将一个请求分组 - * - * @param getPromise 传入一个可以获取到Promise对象的方法 - * @param groupId 分组ID,如果不传或者为空则不分组 - * @param expire 过期时间,默认 半分钟 - */ -export function httpGroupRequest(getPromise, groupId, expire = 1000 * 30) { - if (groupId == null || groupId === '') { - console.log("--------popup----------getFrom DB-------with---no--groupId ") - return getPromise() - } - - if (Vue.ls.get(groupId)) { - console.log("---------popup--------getFrom Cache--------groupId = " + groupId) - return Promise.resolve(Vue.ls.get(groupId)); - } else { - console.log("--------popup----------getFrom DB---------groupId = " + groupId) - } - - // 还没有发出请求,就发出第一次的请求 - return getPromise().then(res => { - Vue.ls.set(groupId, res, expire); - return Promise.resolve(res); - }) -} - - diff --git a/src/api/api.js b/src/api/api.js deleted file mode 100644 index cd96141..0000000 --- a/src/api/api.js +++ /dev/null @@ -1,160 +0,0 @@ -import { getAction, deleteAction, putAction, postAction, httpAction } from '@/api/manage' -import Vue from 'vue' -import {UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types" - -//角色管理 -const addRole = (params)=>postAction("/sys/role/add",params); -const editRole = (params)=>putAction("/sys/role/edit",params); -const checkRoleCode = (params)=>getAction("/sys/role/checkRoleCode",params); -const queryall = (params)=>getAction("/sys/role/queryall",params); - -//用户管理 -const addUser = (params)=>postAction("/sys/user/add",params); -const editUser = (params)=>putAction("/sys/user/edit",params); -const queryUserRole = (params)=>getAction("/sys/user/queryUserRole",params); -const getUserList = (params)=>getAction("/sys/user/page",params); -const frozenBatch = (params)=>putAction("/sys/user/frozenBatch",params); -//验证用户是否存在 -const checkOnlyUser = (params)=>getAction("/sys/user/checkOnlyUser",params); -//改变密码 -const changePassword = (params)=>putAction("/sys/user/changePassword",params); - -//权限管理 -const addPermission= (params)=>postAction("/sys/permission/add",params); -const editPermission= (params)=>putAction("/sys/permission/edit",params); -const getPermissionList = (params)=>getAction("/sys/permission/page",params); -const getSystemMenuList = (params)=>getAction("/sys/permission/getSystemMenuList",params); -const getSystemSubmenu = (params)=>getAction("/sys/permission/getSystemSubmenu",params); -const getSystemSubmenuBatch = (params) => getAction('/sys/permission/getSystemSubmenuBatch', params) -const queryTreeList = (params)=>getAction("/sys/permission/queryTreeList",params); -const queryTreeListForRole = (params)=>getAction("/sys/role/queryTreeList",params); -const queryListAsync = (params)=>getAction("/sys/permission/queryListAsync",params); -const queryRolePermission = (params)=>getAction("/sys/permission/queryRolePermission",params); -const saveRolePermission = (params)=>postAction("/sys/permission/saveRolePermission",params); -const queryPermissionsByUser = ()=>getAction("/sys/permission/getUserPermissionByToken"); -const loadAllRoleIds = (params)=>getAction("/sys/permission/loadAllRoleIds",params); -const getPermissionRuleList = (params)=>getAction("/sys/permission/getPermRuleListByPermId",params); -const queryPermissionRule = (params)=>getAction("/sys/permission/queryPermissionRule",params); - -// 部门管理 -const queryDepartTreeList = (params)=>getAction("/sys/sysDepart/queryTreeList",params); -const queryIdTree = (params)=>getAction("/sys/sysDepart/queryIdTree",params); -const queryParentName = (params)=>getAction("/sys/sysDepart/queryParentName",params); -const searchByKeywords = (params)=>getAction("/sys/sysDepart/searchBy",params); -const deleteByDepartId = (params)=>deleteAction("/sys/sysDepart/delete",params); - -//二级部门管理 -const queryDepartPermission = (params)=>getAction("/sys/permission/queryDepartPermission",params); -const saveDepartPermission = (params)=>postAction("/sys/permission/saveDepartPermission",params); -const queryTreeListForDeptRole = (params)=>getAction("/sys/sysDepartPermission/queryTreeListForDeptRole",params); -const queryDeptRolePermission = (params)=>getAction("/sys/sysDepartPermission/queryDeptRolePermission",params); -const saveDeptRolePermission = (params)=>postAction("/sys/sysDepartPermission/saveDeptRolePermission",params); -const queryMyDepartTreeList = (params)=>getAction("/sys/sysDepart/queryMyDeptTreeList",params); - -//日志管理 -//const getLogList = (params)=>getAction("/sys/log/page",params); -const deleteLog = (params)=>deleteAction("/sys/log/delete",params); -const deleteLogList = (params)=>deleteAction("/sys/log/deleteBatch",params); - -//数据字典 -const addDict = (params)=>postAction("/sys/dict/add",params); -const editDict = (params)=>putAction("/sys/dict/edit",params); -const treeList = (params)=>getAction("/sys/dict/treeList",params); -const addDictItem = (params)=>postAction("/sys/dictItem/add",params); -const editDictItem = (params)=>putAction("/sys/dictItem/edit",params); - -//字典标签专用(通过code获取字典数组) -export const ajaxGetDictItems = (code, params)=>getAction(`/sys/dict/getDictItems/${code}`,params); -//从缓存中获取字典配置 -function getDictItemsFromCache(dictCode) { - if (Vue.ls.get(UI_CACHE_DB_DICT_DATA) && Vue.ls.get(UI_CACHE_DB_DICT_DATA)[dictCode]) { - let dictItems = Vue.ls.get(UI_CACHE_DB_DICT_DATA)[dictCode]; - return dictItems; - } -} - -//系统通告 -const doReleaseData = (params)=>getAction("/sys/annountCement/doReleaseData",params); -const doReovkeData = (params)=>getAction("/sys/annountCement/doReovkeData",params); -//获取系统访问量 -const getLoginfo = (params)=>getAction("/sys/loginfo",params); -const getVisitInfo = (params)=>getAction("/sys/visitInfo",params); - -// 根据部门主键查询用户信息 -const queryUserByDepId = (params)=>getAction("/sys/user/queryUserByDepId",params); - -// 重复校验 -const duplicateCheck = (params)=>getAction("/sys/duplicate/check",params); -// 加载分类字典 -const loadCategoryData = (params)=>getAction("/sys/category/loadAllData",params); -const checkRuleByCode = (params) => getAction('/sys/checkRule/checkByCode', params) -//加载我的通告信息 -const getUserNoticeInfo= (params)=>getAction("/sys/sysAnnouncementSend/getMyAnnouncementSend",params); -const getTransitURL = url => `/sys/common/transitRESTful?url=${encodeURIComponent(url)}` -// 中转HTTP请求 -export const transitRESTful = { - get: (url, parameter) => getAction(getTransitURL(url), parameter), - post: (url, parameter) => postAction(getTransitURL(url), parameter), - put: (url, parameter) => putAction(getTransitURL(url), parameter), - http: (url, parameter) => httpAction(getTransitURL(url), parameter), -} - -export { - addRole, - editRole, - checkRoleCode, - addUser, - editUser, - queryUserRole, - getUserList, - queryall, - frozenBatch, - checkOnlyUser, - changePassword, - getPermissionList, - addPermission, - editPermission, - queryTreeList, - queryListAsync, - queryRolePermission, - saveRolePermission, - queryPermissionsByUser, - loadAllRoleIds, - getPermissionRuleList, - queryPermissionRule, - queryDepartTreeList, - queryIdTree, - queryParentName, - searchByKeywords, - deleteByDepartId, - deleteLog, - deleteLogList, - addDict, - editDict, - treeList, - addDictItem, - editDictItem, - doReleaseData, - doReovkeData, - getLoginfo, - getVisitInfo, - queryUserByDepId, - duplicateCheck, - queryTreeListForRole, - getSystemMenuList, - getSystemSubmenu, - getSystemSubmenuBatch, - loadCategoryData, - checkRuleByCode, - queryDepartPermission, - saveDepartPermission, - queryTreeListForDeptRole, - queryDeptRolePermission, - saveDeptRolePermission, - queryMyDepartTreeList, - getUserNoticeInfo, - getDictItemsFromCache -} - - - diff --git a/src/api/index.js b/src/api/index.js deleted file mode 100644 index 35367e2..0000000 --- a/src/api/index.js +++ /dev/null @@ -1,10 +0,0 @@ -const api = { - Login: '/sys/login', - Logout: '/sys/logout', - ForgePassword: '/auth/forge-password', - Register: '/auth/register', - SendSms: '/account/sms', - // get my info - UserInfo: '/user/info' -} -export default api \ No newline at end of file diff --git a/src/api/login.js b/src/api/login.js deleted file mode 100644 index 1d565f5..0000000 --- a/src/api/login.js +++ /dev/null @@ -1,89 +0,0 @@ -import api from './index' -import { axios } from '@/utils/request' - -/** - * login func - * parameter: { - * username: '', - * password: '', - * remember_me: true, - * captcha: '12345' - * } - * @param parameter - * @returns {*} - */ -export function login(parameter) { - return axios({ - url: '/sys/login', - method: 'post', - data: parameter - }) -} - -export function phoneLogin(parameter) { - return axios({ - url: '/sys/phoneLogin', - method: 'post', - data: parameter - }) -} - -export function getSmsCaptcha(parameter) { - return axios({ - url: api.SendSms, - method: 'post', - data: parameter - }) -} - -// export function getInfo() { -// return axios({ -// url: '/api/user/info', -// method: 'get', -// headers: { -// 'Content-Type': 'application/json;charset=UTF-8' -// } -// }) -// } - -export function logout(logoutToken) { - return axios({ - url: '/sys/logout', - method: 'post', - headers: { - 'Content-Type': 'application/json;charset=UTF-8', - 'X-Access-Token': logoutToken - } - }) -} - -/** - * 第三方登录 - * @param token - * @param thirdType - * @returns {*} - */ -export function thirdLogin(token,thirdType) { - return axios({ - url: `/sys/thirdLogin/getLoginUser/${token}/${thirdType}`, - method: 'get', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } - }) -} - -/** - * 获取RSA公钥 - * @returns {*} - */ -export function getRSAPublicKey() { - return axios({ - url: `/sys/getRSAPublicKey`, - method: 'get', - timeout: 5000, - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } - }) -} \ No newline at end of file diff --git a/src/api/manage.js b/src/api/manage.js deleted file mode 100644 index ea0fd7f..0000000 --- a/src/api/manage.js +++ /dev/null @@ -1,225 +0,0 @@ -import Vue from 'vue' -import { axios } from '@/utils/request' - -const api = { - user: '/mock/api/user', - role: '/mock/api/role', - service: '/mock/api/service', - permission: '/mock/api/permission', - permissionNoPager: '/mock/api/permission/no-pager' -} - -export default api - -//post -export function postAction(url,parameter) { - return axios({ - url: url, - method:'post' , - data: parameter - }) -} - -//post method= {post | put} -export function httpAction(url,parameter,method) { - return axios({ - url: url, - method:method , - data: parameter - }) -} - -//put -export function putAction(url,parameter) { - return axios({ - url: url, - method:'put', - data: parameter - }) -} - -//get -export function getAction(url,parameter) { - return axios({ - url: url, - method: 'get', - params: parameter - }) -} - -//deleteAction -export function deleteAction(url,parameter) { - return axios({ - url: url, - method: 'delete', - params: parameter - }) -} - -export function getUserList(parameter) { - return axios({ - url: api.user, - method: 'get', - params: parameter - }) -} - -export function getRoleList(parameter) { - return axios({ - url: api.role, - method: 'get', - params: parameter - }) -} - -export function getServiceList(parameter) { - return axios({ - url: api.service, - method: 'get', - params: parameter - }) -} - -export function getPermissions(parameter) { - return axios({ - url: api.permissionNoPager, - method: 'get', - params: parameter - }) -} - -// id == 0 add post -// id != 0 update put -export function saveService(parameter) { - return axios({ - url: api.service, - method: parameter.id == 0 ? 'post' : 'put', - data: parameter - }) -} - -/** - * 下载文件 用于excel导出,get请求 - * @param url - * @param parameter - * @returns {*} - */ -export function downFile(url,parameter){ - return axios({ - url: url, - params: parameter, - method:'get' , - responseType: 'blob' - }) -} - -/** - * 通过A标签下载文件的通用方法 - * @param data--接口返回的数据 - * @param fileName --下载文件的名称 - */ -export function downloadFileByA(data, fileName) { - // 当没有返回数据或者返回错误信息的时候,对数据进行解析后提示 - if (!data || data.type === 'application/json') { - const reader = new FileReader() - reader.readAsText(data) - // 处理load事件。该事件在读取操作完成时触发 - reader.onload = e => { - // 解析返回的值 - const res = JSON.parse(e.target.result) - // 异常信息抛出 - if (!res.success) { - this.$message.warning(res.message || '文件下载失败') - } - } - return - } - // if (!data || data.size === 0) { - // Vue.prototype['$message'].warning('文件下载失败') - // return - // } - if (typeof window.navigator.msSaveBlob !== 'undefined') { - window.navigator.msSaveBlob(new Blob([data]), fileName) - } else { - let url = window.URL.createObjectURL(new Blob([data])) - let link = document.createElement('a') - link.style.display = 'none' - link.href = url - link.setAttribute('download', fileName) - document.body.appendChild(link) - link.click() - document.body.removeChild(link) //下载完成移除元素 - window.URL.revokeObjectURL(url) //释放掉blob对象 - } -} - -/** - * get请求下载文件 - * @param url 文件路径 - * @param fileName 文件名 - * @param parameter - * @returns {*} - */ -export function downloadFile(url, fileName, parameter) { - return downFile(url, parameter).then((data) => { - // 调用a标签下载文件的方法 - downloadFileByA(data, fileName) - }) -} - -/** - * post下载文件 - * @param url 文件路径 - * @param fileName 文件名 - * @param parameter - * @returns {*} - */ -export function downloadPostFile(url, fileName, parameter) { - return axios({ - url: url, - data: parameter, - method: 'post', - responseType: 'blob' - }).then((data) => { - // 调用a标签下载文件的方法 - downloadFileByA(data, fileName) - }) -} - -/** - * 文件上传 用于富文本上传图片 - * @param url - * @param parameter - * @returns {*} - */ -export function uploadAction(url,parameter){ - return axios({ - url: url, - data: parameter, - method:'post' , - headers: { - 'Content-Type': 'multipart/form-data', // 文件上传 - }, - }) -} - -/** - * 获取文件服务访问路径 - * @param avatar - * @param subStr - * @returns {*} - */ -export function getFileAccessHttpUrl(avatar,subStr) { - if(!subStr) subStr = 'http' - try { - if(avatar && avatar.startsWith(subStr)){ - return avatar; - }else{ - if(avatar && avatar.length>0 && avatar.indexOf('[')==-1){ - return window._CONFIG['staticDomainURL'] + "/" + avatar; - } - } - }catch(err){ - return; - } -} diff --git a/src/assets/background.svg b/src/assets/background.svg deleted file mode 100644 index 89c2597..0000000 --- a/src/assets/background.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - Group 21 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/checkcode.png b/src/assets/checkcode.png deleted file mode 100644 index 844fa70c56861efed68553088cfa059cd2a3a612..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2236 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
    ^vqb!!kKGX(sK#D zolEHMSWJ7iYbxE}4SW!IVp@Z*qw@md@>#F{9PaJTn5e$0WvF;U|2GAj!}Hn@D_|9c3l1V`LEOv^!#olNY+n4^+;rLRFu!}{WaIi>;QyR07}Ejq zw}1zm6(~yIspoj$g?l-X-;3vE5K^dBtO{Zkuor$Ns)AV50^*@+DVKB1%=U2W`j2zv z#kWtk#P0#VbT)vTEr_?`cwhsS!ZDsa@DDt)?`x52E-eHe{EKfFQ4YY-JfUY@n4YfT514r0IGGfp#h)^ z3gX0V1VNGc9jkf&>p#bW*%R6V9|Zn(D!@z?#MQv_K&HN6qPAVW$>?61m~q8$nD0J&55vI`QqqcI-C*iS z#5(JOfY63S<17e8F+}(TQJ%m=Xa$XUc4`)Ekx+72Qnf8(Y?{cFD3iyiLG&z;6m_b) zM0n!id%{wk|MSN$G^+%Sc3jAD?d6pk^RA7D}ErTp6)KSzt-O)(rsBpK4#>As3j*0eEHJi_1o z?9VBOg=W>>MH9II6Nd->8}PdNi${lc@vD7*Ln_@80|+W4|50I1qJ&|Y6j@sQc3LxC zctI!GsFyjj<|1N1g;J2G-Sp6!?L~t&dedv@oG}}SP-_{@50FiFBE^7gG?)1^7dr`z zVKjG|bhd-GOfP=eK|1IqibgQL#6V7UW(uMfMM?s`ie_&4vP;= z6~s5yUnqv7{N#ntK+05QX+_{_f*q)#WJl@FEai=BKf(Uvdnk_Ou_n#ymfgV(>)uTjufB%kE)jM{lLQM|OUX{8*VVEVK2J_j1E!?;&|v{R4Y>=B1x9 zmOo9;%%!~Z=1;Kml?Qp`rEg+WEqFRrAhjak6(yC<^25jPW$E0@STb*IedXT;{unq} zd$HMa{%agFt$B>{>%JdzqWB7)muhlLTu;DCiFTdKn>YMtmi2DIMD1V&-}5n&rX|x! zYy4?XcM}C6nT(GC+FQG5&2&`CO_;%`M=IsvnKZ504qCIFv}QZVq&o>CNT)K04VXJ~ zK5yCbNj5Hd3sE@-W_pelBSJ)x`yT%?VN`Bb<*N<%G^zB4`U|IW2YB-E-{PkxmGme= zDJ-$PXCsSeZ2+LXbp|gV+0O1m57UxvtJDNA20|O~tL^twDwpt#iA!C1OKU5;`<~#1 z1JBUjl9*_2cC}<%D3o$M^87y%27)Io09?89-AK75c0yF2H96JPQ6cTm;Dy5v^J3rQ z%__eG7p<&NJ&0eyt^JzjE!z%$pCV)Uq!69ht1hCTN_(q&hAOOEx`m#Zi)hbwvw77m zNlgGUeg|9DzL}wsL0-51HriTd#-*-&!|I!vIkSsdU31yA>c(;R_H@i=%i3ER${pjn z%kLnaY6YOHeKs0oDU1ae!3jRmGhmtUCD*o5#ZRaB`-i_kF~~K$;fv$OU1#>~0M^xB z7|b8!Z=SjfKjq_DgC#`ORG)1XRj?>3LaCHz>(aZqWzEMY>vi>h87GpaPRYHA2R!NT zNI#$c=6e|~4A9ZhLZ;QYzD0t@W~Dj?h{M=<&8e7>ictte$OSn*{Q7%&-I}*F>%k0Q z493sIMbrTZmS^|>J$Pk=_(2V(T|HS>cPb>~ew-a8_saOYjqwn%ct$9Ug_QCZgV)p; zXe0%U`(Fc6zR%CLeVs5WHmm$!l3!}2^Pkn%8YvxP*T64G`B_8-E6JRhphF6NI?eup z=eh5RFA^rMD79F1%hU<;#PuJyB^tZ@W1gtiEifx_nOkm>OxyUIRmF&ay47HePoXeO z$rdrjfQ8&xfF&ZG_1#RA#0lZYy&1m_1Y+;IkRr{igL`?oe;b!vbY1;uw>ATDYkjSQ z1J6>B5z=Ix$K(t%OaLt@J+tSte*RWMD~L)gDAZx*)?i%Ufg%zIrfTMJ0=5fQIbl<$ zjiT|rsG>v|<1;kY$8!h&g|Zg$42U%hoz9bPHKemCECIgpNtt*>HK;L z?s^D*>~zuys5Y-YB~@S(4L*clHM!M=En0zL%Bs5 z`7)>yi3NqrF1n6+vzK5}N-FJfikID)NktH&s3b`S5ju|T*3UK5bZ#egbW(0PUXd2HAU;tL z#HOfVt%We;rcLi+w27P z*J{YIk-Z?*Suq_FC3XrlzGcCS72?=oA;};-7qOEXC$7?PKbWcx2sJN`%Ix=y>;GfV z|CoJ!I|ywV-=sJ)@CqqEL#bHC2()BU=mc3Mf?|we&%vj7XXGrAts3vPq?b9 ztU@bu9yc4sVr_~j^4Ylh^=w>uJz*5!iO;WI_yN27AH(2N%txpdvRU7~l<|IH#Deen z939?Et~f%by|um*%Y2}_{%WKlCkiiNj8|1hrb7ZJhW4}n@H1S!@vVq;dfe_qPqXLX zGY&+7k+I|KJ@gbsEs`-aS+nE{+FClMU0{E*vojvAQ%LXLcR>DWLr{Hjn3q!;Ng+CIR=J~FsprT{U}%a zG|6BXD-94vA;tr%9#eNKHIh|f?(Ai(Us7f4h{vI0yDDG9FkrYaOxYF*JPSEJf(@A6+0D`gt0@HqQeK+D(SC>oJV7MFQ=d}K zV$_n!#$gU|K`$G#4WowRgZo*v@bda0uJLJ-0#^)%32lHsaoWYyNenizx1C}~IVuyG z>QZcP?_tx$w^sDRQdp!kQefqxOIfvO{WwtriMp?`erRb)cUIbVYfwR)d8+EMY{4eh zEw3uer$%2TvLQyjD&tlt3l!p2}WbP^Bgc# zjjC>`*hEVi!Psi614I4%%l2=fQH19itXf1h4lfw2XpKWAUTl$5-h*(AO{?F+rZovj ziD%s@(SlDB!AgaIVyn zZso{{7y14#|B6T=P@jR*hgg2m#!8*;&UxH+=epb-W`grSrxW2}WjH`(s;2Id z+RLY}>IkOhi+qJlA zu@D0%6S0h1Cx{QyU=!Dvyn?7lK3^h5gS7%s@`1tnt25i?qoGAp_S^&u5JhDc%~`_@ z8{P-N3kQEiM_V_oaXbZJtT4!)BTo<#xny;%%c#}FRY4`=Oz=S>qH+l%9&=_bX?S+h z>t?HP>Wsu`3^q_YTW2+^FyaHR)L(7&yYM9C{48ho#ZF3T14xNSp8F0526jT(aKqa7 zQ!Z5{-R#bV+FrojGj(fvt5mF& zag-?aa^}H_fLbACQgqK;(5%WXA2?Qj)t3wxbzH%~iT$W#nKq27%W9QVkrOt zlZn{0@>&+pxilWQrLAQKD;G?4$F8N-o58A!>cS7&On?9)O;wYrrdeCu*136|%jjs% z6ZiYL&DcAD^~qJwq?p&a8a=MD-ap;BsAN)|tgH3lj4QT)iD!mIC-oLN*Hz;2cE3ci zLw8~^(X7O(b2_O*FnyJGUm)ZBa;!Mf#Fk@6e##OH~nGr)hPZjW1gdJYTP)^TL) zSwu38J(&uLWBdnC?4npKAx7huVp!08h(xj$XvmTgOpMzurkfW+q0whtPRn#ig#N*UJn-cI zeQBrjVzZezk;qA4N(+;KZo(b`$vKI)Ye$ieFgrZ7F=A`FrC>L1$h>CujFl8 z|9$1!jzj-S-?0}f-%pM7@yqSsr5p#=9n&|URsNOmL&wG}Mx58V9E`DP#cga}b7PaI z*Tx%b1$eAePN)OBfSGe&3Y#y!vDs4IjXTt19EhKx4#b|eWh`&IoR{;D;F~l=sW_En z>Vn3KVl{RY#mmbE5h6(j0`zt*=Iz(tgEC%7SQ|PJ(KsGrFrHUYQR023q$FK+Fvb>! z#v3t>P}#CuRi5H~Em#ME)sGvv z7qDkBICZ+8 zCwBZJfdn8aFdxf22&zMo-!?@A&<#JJeBjY2xwX4gH{IUhVD zSS(NO`U(4w>>>zDWKvo7^*xK9N;&CVtLA7NBgG?9OM7ZI*KdA%vtj)lcUDhR5I+Lk zMNO8xCuwe4^+Epb>Bk7u&htCjY98-(Qs&HB#>GpoW?-lvw|~Skv$dO*m6@Y-wDq!K zRdZcZRZ;Okp>swzn=YQXo`|@(6V_#!iJ@2;p%9L-uxB+<6uP4mMo%~iU85>hoK@ny z;)Q&U_r2*;%xrH+9Rc`M?U#BG%fR=5_t##WJL3}8_1?jA1NXZ$y9rTLM8$bnVw#bi z%}wk7%>?zKs-sL$T44o~Gy#$Iv>dlBA_r z^$5Zo%X%(l%evc}SvyYx+iNd0V{RY8?L@Cu5|3+^-%XozpmvgUV_d8@v@yRs58m;q zQB~N55)fLKQzHtQObdJaw)6Pz`#3q+$3xG2kD=UPGih6)Fp9YIwogsO3mXiRW+3K) zZ`WV!YF)sstNsHvC{Hpg6ytmJ5A7g~3RP*@Fxaz`@Do$Don%|ufx|l(Ee+y%ek`4R zNLlWG>}&k!kuUM|OZSs)X$Ww}B$R_Z*RFjhYnN?lR^bWYll2!T60;x0+0)}_&D@*0 zq~|umsDMd=-p+<{LsG%>d|n-Xkw^A^lSl)`BQABHbETTL#Bk)~OFZz{H!xmQ+IAC*yEl=^w4&C=3G-F(R9pm2H1X{vO0jeASB$tyW^LR? zWr9n^4nBHnFHi0G83Vb)q|zA_#ah=ZQAMnW@lu3QxsuN8T2Qb`StGQpeELH_V)5LI zo8d9x@h@lEH2&AkZakGcz}L5ZfJjRioTu4VmX#qy5GfIsB1TS^C>0`?d~R(86xC{C zrP$c2h!teDwz5)_a6ol4zhG?zK6g9<5Q&oV4ZiVE^-u(B-AhtyKq9OLxHBoLArC>Y zQAjx~@v*o4cdlA{TQeMX0GCY!(o}ZdKi8~*zQJet_OpM8@gu~hv8q@}W(%NB8CI+0 zhRYNRf%C>dd{7YanGkN@h)W}KQ_Nb2pvE2>MB*L#&Z4oAKvKJQcfC6}CpOn`nX?=>y7)=sFtqXL$>-s)yg$o4-toECp(J z9@QjY#;mTry_IZB3addS_|r)Bf~T1vIv1goL<*rSmcRzQ^SV#*rmY{r^P27z{UY#B zXKM9qP9ym&Zii(99UFO>?{EKOP8a)0dD(HUcef z#wtGe=D%dc!U<)?lmUdZ2N5Qjk)<%l_P+ah_?7=fNk{QbwlWx7;gyPw45K4?N=0{E zfu}Og6LsD|w9cD@M1)~TWFxLxeFt~m@<}?|8nUbtdK$R$Yyg?=Sz&hrU!SP(@Zb&} z-TN)}4m<>@RD2*tV(^2Lq=wOv9Hl}TKiM%5)A;}q1uG$86j3ggSlY9Jw{HC?>sDM# z%AYU;_$lD3i3%s8b2+u{4LGLTl*^aGJckCh@z1-z#__@{7z3WBE3SDFgIX9F&JpHA zm-iDlbt&Gl*dnkj~8Dvbk^lEY3h*GTD8qmQ!Pg zIh8xYp@HW(bmBRVj=o4KDl$405|u+d#2t;Aa0)d<8ai-82YN)Alu0qKb2&@qu4l!9 zjm)3DoCUorCv|hh6aoJO_=9N;zK+fth$-LalI}OP;|%rpO{I;<1{BLoT0Kxf-|Euorh`VXbKq;r<@W5U?MYKeQ9ri;DsO#{MSD{{!kU7%`7$xZnT) N002ovPDHLkV1l?AYCr%0 diff --git a/src/assets/home.png b/src/assets/home.png deleted file mode 100644 index 3630ea6a0494d74b7d0007bb3d6a66702b722f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94802 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
    (>9RtO4NOr%hp%gm1L4_whkZNmTbZ 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 z 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

    3%uwgZuE&(XYQzbmHHCu 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 ~P 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 diff --git a/src/assets/nodata.png b/src/assets/nodata.png deleted file mode 100644 index 2cebdb380f5c1aba7e0acab147563d2352e0917c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101556 zcmeFZc{G%N{5C!!Ted_Y*-{BbLXv$cD!U;&p|U4YCSwhytXZP6mSx10LeW?&qOwks zLY6SnSZ11x?Rnkf^L@_q=X1{QcYc5UoH?J<2XoJTzu&Lrx~|vtcH7+a6gQ^`Ckln) zHa0S_M4?zzP$*_uc2@XKnk_~Wg_1xS8|YeJfB5@{Ptdn-nJS|N^?bBDCJ#NxFZzN_ zACcBKw4apMm6wl@uxXFJzITm5ar_wJEqh&+(yW@agYAX}x=c;zX3DcxksP1HMK~O% z!GB+;-iQ6!BO$fS&c3--3Qa_!;5ro_A<3n0jgH0PQlvRhO-mZeB8eA=_2G&oZ8HauomObV5Z+@5 zCoKdni?Y@D70GbE4g84wh;sf&KN2k%$;TxpbEn#?&Z2$KWl}%hI0-*|5qKa5TBI>7HQV8}F7gWk%veS6QDR&(SB z$X60SO3(?8&F-Gv>1WBv8 zt7uHx2zlZ>J*^O9p=X1>ig{hn&&fY?#y9#51&X>8oXh>rM2^)Rj+QWAQxz-ko5>#` zyQ_(AiR4tB2xZ(rkn0m9(|gSFj}g;R5?uPL)B%_KT~lT?YnWFlQ^$WTEmwH$jklNI z`PEnTQti-Xr)%Z*Me>~oW`s8UW8q$o4dj9>HJA=QY(M7ycZuXjfo4g{Epyy|W z=UN_?<%36S8{5!9LRH%sjfTA`_9~P=!=f7*QooiTF2Zj;?Lm*Xj%@$CPdQaf#H@!V zl_15%%3N(SRFmg{7KHbcn>RyUJC#xh@BegRM^O)Zrl(uA{hl|6G#|@!@*7%|&YgJ@ z=V`|t?K-bxs?x+B7EypMmo|t9_P5(K3gD|Xn5YRd?YDXfYPxLXkT*F?9!rX zHaaI3jL@F<*+Hn~ZrKdxixg`?UjD=9GON*qf(Y`B@8}uWQi|hdM_BWy*Na<;j>lTr zl9C5Xa*c>_Pvfcr9>i-j%8%2(9y|)0VzyZrA$Zu>>v6lq>=&Mq!!teo4o!L6?d(-H zEGJ^RDVgzF+O1qtQuK`Z2q5 z%hc4AkEQu2c@Jb&vYYj9QA6Zoqzo)>61`(TU0_B*7QyS8pK}{LMb>{yxJ^QQ=CR!+ zyUb^P4iz_B4$8oL`2Q=yOcd6FrrP%fTu0&a_PPHbUAjE)|Mlig@lN-=jl-FviMq+< zI8La|Yc~c$Li}izQ*ubMh`!N==P{sUSS;KVfP!wh=#uXyG!h)aaro@gAD^vuna#>3 z&?{~ckj*YsM+yXTO^#N@Kio$s2|RtuWNx{uR9X1PwKxgO<>#|2j0-9vnKq5?(`Rp0 ztl4rGx>oT))d$?Y%CT-j?MqPqB)fv3ope@>s`1EoM!N|?&uSpI2LGsdrpK!;#{U#q zik>xO<9f;qH)?Hp_Y}(LV-=8}{fr#=tz0IkR-6xtRI?|}9wZ5*wZlq${9qG%x6cCNw( zia~90`MJ#C^4BG2#e4KQvK!71sYXlal=SKHu?TUo%2HDJCb}EM7*EKJ6h-BI?^yM?Pgp}<;yJcs>I`=@bk4DS=49@*4Au#=69p~RGe215>2j_0`F{+xw9+N zrj|boTEN=P)?HG4Fnv{hnu=kRbXtihGxDriH<7-z=g~^BF9boAyxWj!B;M`)mDg{> zwA$cx<+XKG42uxImJu)4%$=Wgm7FRXT`_(`q+~ZCDBEkPW%A|3(_8mrl6kNln+5xk zDO*WN$uw={QnmdF+tZ=H{g9y2wgS7-^)hd~ZTw6P2oRSU~~p8F%(b&kZ-& zlY!uczjF@%8j>%(fFg;WwunfgQ}|yyk((vup2%mNaddGh_c|OXS|oqwRb_c`C3FR6 zeEc=?aM@JlvF*f|U93XLN4YTeuV|sWIV^YT9Dd;brwjK@OJMKXm%`*8Lkv~eY+DN# zCph!!@}W?^LviD3G%cE>To$Z=2GUJ0W3h=dR}-ih0{W08TJYPP>dB(*!*4=kLh1>` zT76!hua4!ytg9p1Eot?+%bo)aD@0|UBlwJ%P)DEE|>?<-!$pvzq zmVOSryGUIX5r>9)n3L)2Oii%LSqd(S*=M1T_pk3W-U6LLBys-Fj}u(1F%@$}{Y0ms z{jf_I6Gn*lq!Nv!xlj!}l&sEu7hVV>pwJng>M0zFw=$9M)GH^peE7g&YGwvY>T8xa zY;j-%{fASVvhq8Je{aOivo{WQ@avqCxZ=B5Zgv3TrB^Lz4ix)@lwz*%=twlf5gE*jk+YAH?{OOc~2lBMAEwI|=0$X9n zJ?-YP;s*{KKt3^A;_Kj7s}^p;uJ`V^J(P}Adip&~MqGFV$MFd*ubi=n4O+y)WaqA6 zhfGhnNwpIvTFH$YmBqb`LJUz|cmOT%?n`9Qh(zeXX%SDm26{8e$?D+aUR~{wJMXrL zYlpwRs*dhchc4AP(iYDvt|*dNBes$<6=78RJb=1=kS+8xrpaQ%0e6_f$t{}^tCA0h6|NUsv7ZqX zpf@u4ns6WCVlF3gB9H8$q-!AnTW4r7`lJ5ZzctzjAdmjFsG+Dnr>>3ewe-1NhEY}W z=zVeD8|2=0Zyds-^$xWKLQ@5v0gKfTwj3>O>}t0&O}g1bDQa8|*?rNeFX=mx@-YyX z0V!biv_YVh>l_p7E?x_l25bL&?p{K1xbFLB_X8L~Uw#v@Ar>&wV2B@Je&*CXpJF~P zxneWYRVZU!8aOf@5-UQVtDFUp_o@;=;ljfBsW3W)15jm+A5fW)`b6#Zf6U_x*QcJt zCqgcq1I9slOJY9Ts_4&Me66Cc`5?>4bOs+aMJCBTY<*QYD=Q1tz-kDPPfc`8eB&RR zd}kec-}6~fjgZF2Qu=v+s%Ght>mnq#_YDV)Ei+P!4{CI^!nOdt(h6TKZMm}?mZad) z&_u&tRew}L+Sw3+BzyJG5^-Q=I;?e7q*!<^6W!N7UY`eW!|hfsSeAd^jFvjH6rj|= zT6@|_bt+LXnycgD8tcF6;3?)uQp=k81TPGQK=g1M>4pmuFw&K4~vVOCYC(? z{%%PFnh+YzZ@4{LqA8$pEl%3_a(Fn;Pz~fG5KhN|*r`z5E?{E+6$SX%CdNsEs9lTE<@g#G^%FqZP?##}8 zY0|nm#jon>^on|#u4`Oi;2}Ih3kwhIG~AA~Li>u*6)h;!P;Et?nU+{NIynJAeE9Go zY~#7icl(^4JDC*NI=&6OJLnq+wHnr1zLSrINh|DMWO!q;Mi)BY0!{o9n0~S_xuRF5 z)6!&jT8f9QIQLBL^D~4i7xSczyM0xO1HGcvGMvf}Ojg%d$p7#gbOkD=NT$VCRllUq zB6;usF4lWWWfCg1c-4g?*O#aANa3D#g+y~e2wd2Qi8%G+c_c53AZGCQG%TwDMso}zyq8^OP-MSUMJ1fO` z?fv{~)zg|M04l7HYp*kJEaz?9hQer59y@cDvn_DGD`Gv!C+FV!L#o(5M$vfJxqkJm z0fiX|0I@{3SRFM)IO;)a@~+ksZ3AB9CUpL_Bksuw&nGkfKMI?T|+Eqg4QL9 zh8eX31PX{=C?80qrAgytffnWu%rgD^rY)J|4iEF`!V(UjGaEAt_c`cWoO4kmE^6WW z-G%F1qYjN+C>qZp2G zZ~T5#9z20;Ok1=j+>DqmYm}jd>+^H2F9xBZ!5d!MAG%uaR4sKXP5M zo!#Em{i@F8uwt{bK99XPhiU-o4ij#~htzYU95jtl8nW|cW^<)Cl5{sJU5m8#l*w>j z&qaRPwPYOt%N%D@zI7lNP)bD``9?$h_hjU@Y$+J+Lp!!(4+uM6u#1yPfZ7c=_-pAn z6fQR*KrV1oO#>aw9Lij+P4C`qt&+F0{kEqKAUd%1+^MptH{Ul@xYRtWd0Q1P2M5Q( zW7+Kl%vS%y=9BKe$gkDk+9WCF`k(u{DnEDs2u_;(3b&5JHMYAdnp<5RQ+p5K71FqN zh(HxfYck-CoCrbsp*tc(P3zF}kFjr|tgKbI?oD!kY9j~xI1$Q&^1f`Bxeq=BiddLd zydMz4-AUt3!A@N9`XFJzPNPOxf8fi`>(e~|>bk!elwjZT*efBtkrx(CAlAE*)3toj z5O4Y_*;;eD;H0K#8Li}BPjfF;H$i?`7Jrm|3tR>^zcj^9^?{^`6^kyaPZ_ogHVUdL z6sWceF<%6=>?s;pI+zWuWSV&dhl9Gd0GRW7Zb?qqe&gs*7h=?shzWaouk-&?kGwlB zRP2S5BLVaSC1oujCJ0bXeBOm!H%_0SzMDa_Vrw5EEQ9cly_Do^;iB#xfc6CYq7gTpT9@P zEfx--D&q@60|NuKne3S<74m1~cY+qkbgFj95CUP%fx=qUG_X|ADDLT<5-xhp#7h!3 znQpgPy<}A=S}b%4GhR)~&@6FRRoFC0t5?+xbEhE0V7YRqnwKSgIdMGGZ%qt?zOAKVte0n6Qk2P-G=ANOe$Ug+J0ll|gF+FA#d5bQ zcKg=?X6v50YTf<3vvPFoToMQkpsO+pSbqEtC85ttqM$DUUVy&oCWI?HfU;&jJrgfM z6atw3|O;74$s_MQDooeKT)z05zO@;#Eg{wM3x^#5B8>OHNltQS?~{dVQ_% zy=ukg`Uh4HTbTnsxU6Q4H_Yk&JQW0&dK(z#Q!NzA8|QWlfD$C<2o1TtS!(xO2)e1* zjPMQpd{cs>h;FVFU3HqE1nCI^8a!00^lg#V5B(fv>?v)X#Gq``=Yzi1U!OZ3-p;}V znko?TaW(IGx(MrC3jq-A{J1mYTMJ0b^8!pawFq0j`mbWRtStT>TDH$C_OROtNr)e? zlKkvlZJD8nh-@>Z<7%?z35Dzcy^;U-E&>g7(0BNC*dL$k5&VE>@bSQTd!jt-Z@LM= zfpy(!j6{ndytDtrPL;y*`raXhx>}HqAsW07s{R3s7mLa^N zGvZiI08m|eL*`MYWSAyB*K@ZmGA&a(!sYH`XHQ7eqx;@Hxfh@YjXY9LDr9swbajfa z%a;9p%11$s+S(6RnN68W~h6i8MGNQLH(lSrIs zbaRa#5M=qz8nFQ~4gGAp;dZz^(KcORnnVt>o>OB&?Kj%6# z*oE~aS!ttu(U#K@6PnVU4L0alpw2%pmlo@MnhH8wVg+KAvPtUH>zqoZ2cMpulb`?f zX*c926s3O+U91I27XIGcO^guAJf;D-79=qg#jYhqA+FI-F`)9$*WiBYejJA0TPV|V z<+Xu;Aqd2+Klwm`1zGKf|6UU-VD4MEXPhKl8YxT@Fp0?Ylx>HkfG%ZLwaD>|Fm_w3 zn=SW(cV`d||I$hz7PsCrSW_Vq-{B5m61ol$M4;$EO3|^Y4Fv6t)g5yoyNh~^sMu86 z#B*_N$WV3D&D7xi=5cvCRIKjDpD$~GD4-31v_xJ(MMBR8rlGyDqz!1@IBgVG7Bqpm z5C^Ji_l)HGGwjOJ_ftEzlt}@eg)joyCTUzEL5i}1{aTZFvS?wHDQGQxF<_=hGDC^3 zBdWG8s1agvre|Yk6)CCV`!mXzqKOr?8<^6$!&$(B5I7;)1|L=9=U#0OG3}=M;OE>> zErUp3yGYK;x)OF9n%clSqJG>k$dr`tGnSd@7Ur0&A{0oXRNf?fhJ1afY4l6Rfb z90Cnl^aTzFQdZc=i1+mJ{nIGyGkm~ob#HRK=#FKF&$n5EbEgXWW?X>^EiUo{Y=HVO ze+Y=u>c8#qXcsSD1iXf7K(~IaAsq8X>KjHDS-sr*%Dx|~xI%LweO#4App+3$L1V|w zFd3(ndNC_F5u$aXIqkCbMR4D05^c(>i7R80Z5K!KvkTt)^ZT=7--)#+8Jm;lm1`>m^8e*cBIVV|rCBa0F3`rRWw&aA``u9`m!?33}DI8ekD`JCi=; z9$!_E%Zal5mQNN$X8QEU)BvpXz6*AGXKlwh>YV*iBiW_lh1W1@4%|;XbbE{ zI*FF!z`NyTgv|6RZ=I)J@4WKfF0<@cZPP%|L94p}B5sAVAgN|%#0ouc2hvkS+h8$( z<9oXfTvDE2Avd~f<$-1ooqX#1WS+n6G>k`jmC@+kmSt{3E*lT%x%DPws`Kf zkn9AhsdrWKK!_l<0EGX%d@EU88&QN*wsW`gAvyqnt-(QIn9XpzygtndReVhbS?q8W zpmiYm=so5NZCRcUld}WQs&03eq_tZ=k~Z$QEC=awNdqm63VX1B;lA8@l~d*Cg+#IW zX_sRn+$tFcN!ej8n!}{ zLxz`d_Xi>gxPKEO0ik7`aZb&kp57W4f?b#Id}N}RS9p57T6A2$zuXq8461bI0Kbm$ zk^{uO+`5r|PiN;DAdx`a)RK;5p9Q5AHd`d|eT6v#qLsZ#>Wl_K{x+o-(t*2oQgyi@ zo!TkkQ0(-EwZ8bc(F^P2`>X2Wl({o>#!}p^T_$6!%tG#sKwb$2vk=XcLbZ{r%h5=LDo9qG7#z7i)hqiwHYtK-r57DCxSsL&G@5?%n%O+&Mp_tVqnH2S)A}hS3+BD*o**!}Gk6|&%4fNYjJN7omY3(yCE(Lw%SitaT z-o|Q)x@}d?Cjb^8vEgvho_4jxglVE0mnMQck1%Ecx#-*}?*yKCmHw2n<0HFIDt^3f zPxTBm>AN{whdX#FP5K|Oyh531zafwx5e*IW6BrWIY$?G|xl2kBrHwICExd>ph|R$< zhc$HP1pkj0U`|Dfd;h-l>u1flO;3bk_%)0&V&!LLvE~4=t^tMU%G2I!%n$znY6YPV zq|_2mSC$^!oWWwaOtmFpK3E+7MC_~cBLka(d8~^`PpEI>_P>4CF_um+_TZH4RepEj zg)T^dqHN+?VL+*E){dX;Lo{D_?lCo+p`HgMXqDSF85gB{g>2=blN5VzGzW^RNN9O< zmj}2+^G7mIl@!usQge4-xd9X7CDBaJpKB{LDCVS9s9_+XxW0D$qj3Q5dE6bTE0|RQ zkTJAP2pGNM+;;R0yW=O>Rx6lJc< zjy$U5KMqKw+;rvm{#I^buFl9~#{7H2So%=9lL>GfkdWH;kBXJZPdkg2y%`FQ}$<+O-3>aNdST?h&bjtj#N zn~gsgx}?F&q2giq;KB<;O@LkxxQ{3h0&Qzzf~A36-gbq~fn1Ok5%n=jRKY_Y`67nf zq0B?M_4oIO1#*P~xh;)&By8kVIT7X$4t*y*5?b6@33PX%tE-|{8YWrTFyQ%t%CqZH8ZVO|0Pc}_8;BLKV_zX;pQ$czrZIZ?6f zRa7$O2M`3>0x$q+<1GWhu#_;50j73Y4OY_tX2GBtYw)6=%IV+Q`#Anorf1oEJizOL zS?K0vxVwx|U(AIU9~2Saf>_SJxJ`q2hEK=ry|M|wG|2yPkQ#yGLiWbF z0p|vc3A#6gC{<`6xYnkj6n|5%&CsQ#7ALDhcuT_qU`@X{V8UmxA$+o7*r2L`;)4~Z zHi%R?{U!c84p{;19r&Y3@m2EbjfM{^xUw>E9H&fFwgN0@>KO;yTE=fItyh@7}!~kh6WtM06-2 zL9YfYqxrEERFC4P_;5Y#HYc}x)|Wve(M#0m0^IA(cLo-E)7@~D4?8MLP%7>_2#m#= zH<2M?%+ne-_5cp^v}+0e;h?LJby(>yc`&UT=bUXJ@NRg`vwdM{Ix1t>y){r&Er}T= zJDtLJ7tQESLP(*QmY_Okxd8fIbHC+K`};9MB8O;mDm;KHzeDSYREOqR(d(RfP@zfq1Ohy z#k}fE8g0I+tuU9dp8>TP(XX2x91BSC%=YH2Q#exs}{+1ZS1hdCLBzC7^6xxs9z!VSRXqZyT#xU&Rx6&Jq4ohidacR za@6~!@_6)$$g3(nM#^+D3~Pnsl2NQEkZ;|z^2*7BHHpalB_254o0RhTE5YFd6qdnZ zr><;I;WX*NP-BR>@V~DZoQ$}|)Jv%>ss!y&&`s^Dy>;6VtbcTJ0U84!F#Kd=zxPszb<9s_%k*|D) zhFmt$OS9Mz8`%Y6wTm(HN-30qc`e|woMPPa_;n4?&KzPg$OQ_^Wwhb^@eEI4kf~z4 z?YLtL-goU?GYwhOm?=1=`L;W2DucA`c%D~||Di4)g!9Hsg_5pCd*wL%jD1yZAFsO~ zQjCQW8j8aGnOBJ{WbZ;4o`-ech zt?P8{Y~qbs-IGFbfc~Hg15lRGZ{g<9ljef7&YhBE-}0{kq%xp-fUT{A+y=AgRRs$sD5HxX3Wg%=j|FKq<_&?RrLYIMtrM)rZbjvrz zUM)3#RF$=J)VyX)yM;^0ao{!sJ}~3moTNgT02vBIc{5Qv;z^vp^hAoR9ESpo*+HZX zsfV5c!(|YSHS^YwI=cwo?lXt+xHz)N6xU)eDHAKWk_syAH21+nBP#Q1(s#Q%heCt@ z{`*dRsbZW~aUoSn=)yT_(6nTfm^{bvT~P2q`_{?>xbObj@jS?{OB%rR{A;&$E%kTR zpH+cH@U+7vJOr?;2qP0{CoPK55Mam+91d;>RMXhqm|F!K4+=nBo?}c=d8(Z8#HN=x zSy(xkW>22{QJF@oH_BkO)wv!DiOrf;IolE_Dqy(qz5cIkKeOI)_EQ{ZXfDiD;O;>$ zLT5;>nE@aI&mSmw@L$lgIge1@=VP=18Ua`WkO8k2#kc35H^B>r5NXnz-32h1tW0X# z;>BFZ%4kNlJcmZ#8b9ac#uj<92rL!WWyd2=;90dNj#Fe4>qU0=;?2mZ`NuejD_-+& z*2CyW%+go_MaQA#LbZaH3nmX57L+3(l7)l5xV!)`P}EiCs6XEDC6zyFZ;X+M^t8La z^otv`Q4ghNfRUMwtxArIc-V7?@Xj4l}A@Gi0y*4EO~>ML?M+qJra9 zSNc{iP1~l1zWb{Ni!YNM5O)B49`!%ouh7Wg&H^Ek6!pBb!TdDu3lB^JjMVmkaB$?or+Jv~R660K!tjXtUfQyx*+T^3*f4E}Tk42{wZD((X)@>huuo1@6?Tf5(1 z;{E|k<QCa0@z!3ycTaqIz}kyHrN`A4Sc79ncEIs4la7gIikQ6U{cx**gmPK~ ztSE#xykPF*l>>dDpt60fZigqoJXE5hoHFPy7rsR98FcsSA3npc_RMoRvA3REdEM&P^B^Ys)GBji{lSLo5a(O;o))I}m^~CH^s&_g}sD^45 z5MKeEE&{fI=&4XBT(#j{iqq0kQjti3*rO9Lv8-vLL5r23hNDEEiS8m;T!NZWXrvO6 zUIu{BU0LKu&S{;YW>dRNKG-dB8}p6JS^v0ZJPqX%HC5)U^c2 zK46Zw9GOFHmN3os(qqc2V!w+5SAm(sfVxXxz!1DWxCkH^z;h2VKUFxi9!zZ`jv|xw$ykQCJHQ#FEAlaSY@*sOH{f*2{L4c=gA& zz8a53%GZPHXQ$3-ch%bjeOM9&yEO1gMIl#$GolOq@GlzlUBrUZq!v*h3S(f5!Kx4Q zxSmU*qI$n~i_Q!Usx%c&l^m;-@3iDj*wbdAsq(mE^w%#|aHn-Dfe?yOyM<-`UY|>A zAkStP&?;E2wExYEZqQb`&X%9!+R;UXN(vKU7y~30%7DDS0HQ2p1H&OzCRXp$NF5qe zizBbV1H$9M7CbUNwMQIV)=v-d9cl>jz8_{5Fke4QB~cWuT`t&c*xOtQ1;+~@5COwi zZ{8U2u{e;$*Q%?IZQI^6i-?c6#6DKZtK3g(271FDJ(^9s8~)fy(|Up+@e@Ee&RfEm z9~tl|W#{8$VY<{72v(N<8&AaSe;iXJmUEJ5JtcBPwsx5PsYFIpGCdP}IqeqR-~yvc zmxi$B^Ur}RK-fZef)_6Sy^~~|Mlv+>%c7^yZQ#s9V++W(nmXTupHd}?#4dcV6%EpS zo5K0XX(L3G4KzAL%32@UScw2#mEoGkJ&C;L_W)|Zf4v{na;8{EzobHTf-@Pp`*gai z1xB&G!55*3nqzO9gC9bnG9x{Yaxz@{nNU zsu3nq;%B7tbo!(XzOoVoZV+&gJY#?Y|G7r7U*84$+m-6nIV3_fFN}mF6q?ID2SZPn z6LF8;7OrInS^dWgW#kp4^?){hT8Qo+Wk(^I93VrSrCmm&!I#q&VrH#4+|p@;MTxfz=;Jzf>^NbRS&cZEn^0J$`p9(ee6H$ z|3%l_n_8|oc%Z&GWqRfDP;~%ZYp3CJ;wyoFA|Ao@P9Qp0KddWZFmiVVT-l_;slTPz-(FBP9>FM=ZXbKx!==W2V<7Of(M<7s1I+KV2^f) zq17i1Rg&&G^;!Nkkt-Y7--gC1kurp-Wm>d7o!Ii-M7b-{8i3R+1PXrmgXn|YcVTBG z!&s}%pu3QwFiPIub_4|@c8R2MHg2VJvf+*-&7CCX-(dZ-ujucOgmEEjOYW2#+%%|J zkXp4h4tSBTwD0u{>AEWjN}I9?v~zH)LM92t!TLhW1TbNxxo;v^V`>FI?14_2f(bD= z^!VZm>|Z|~m~CEqbE5Sw#^_mj^sk1s?NnJ#jw282>>bGX=0B9aMnq7QwOl|$og#yv^RSe1Y?_>go;nss$ z3)C~%cK~Zu@=!}p79sWo#2~3tq=nWMAMF^yqvLLF>*Z7K3W6ymbc2VF9>GqQ&utmOT^-Jd>AD`V5EFMc%bLiXvf$A3;)Ax-(&#>SsDsk@_WK-`!fN}18E+5odD(YpY_ z@c7SxPyrP_RE`5<#&6r?;h^=gFd+s{JeV2)Vg!bS#DN3y^sj49nm<%z`q*AtX5vS( zm@`|As&77(lC*t8LmN&r`-Z;Z+6hfDO&U}j7>hF?0C*;VxKK4be1 zVrN=exV|cK6U&ytNhXMYZqcb?8 z|M;-f$#HeBxb&AxP^O5j`|MP!!`CAOsrw68Y}yN4+8RcET<&Ar$=B9hbPTRB)DgB+ zZ-DAi@6Lnh$gqQ3KN+jjr=z-Qsm(5F(%z8)Is0M!K)Pd*Icf94B->viLpV^h{PbP= zRTfR@1r1(Un@u!QoAd7UGd@F@kXo8(?t}KmW#^{P>*+D#i8>r{?12gRFfjFiQJ~Bq zV%)A>ySzt$$4BDNJb54Z^zR7}fx#RCG*$gkA;bE^LU1=ET>cE28PvC-np)N` z{B`XEv>x)k;)5`F2WbPQ_+SqHHutxJ^&#z1faa^zArf&%eR1M6QT&Q?L^Y|DZY@Z_ zP1_Eh`sU{{O6#UoCv6<#>%lU(z3v3_MLrfF+!^s*7ml*%K3ig*aT52K)f6OUpeUC? z&0_F(P;JV7Jpx8jCWGoflG!-vqdCz{W)7Pz2Q4D!(|!yg*SkfSB}zRR79xiR|$W+0@mszcL%_4>6%Gbf5l_i)*D zXDbN141;{JcW)VQ@xJe+H_lSw1PuHh;L~UFXAarP3Ld7;DCpsLmf2o1Qc3uZ9~L)^ z(5y;y!9F`T5hoq6@rzf%SjzD<=*DG@PL0Z4<+2?8tJC3j`y+R`$4(UDu! zg;Th6r(uDtfQKyLA@A<`+0)n7zINt+3x+XyGQ@`jJ3J}K6fXv?3%(GE8Q#AR79`vh zp=X2;YU4FZ{NOZ|E&3inKiMM_J|ncBb$@IWi)a%m&Z1R*c9u0GAg$vEd_W3;<^}() zRtU`ntXVz}4$AYuyouh;AU+aQCX#Pz#HX~ulm#pu@T*WSLHY~Mov5CfdfC8T_OOS! z2`eZ}Z=_M5|I3(;O8PybAFi;PfS**U$Fn7_Ut2q(k^G<9NpV%eJ9VtYNPvJ~WhDlR z0_aQQYA7DEibSH=a>3ugD)}MOiPYkm&z#(@C*F29X3BER9F-*U0V4b1Z@ZP_&O1G{ zwoyK4zI8d3wCgEl()|4GSNXvxs?Eb;>NtQVi)-qntYu}`Oc10pWGZKeMOZq6uBq>- zW|`j9ErjBX(mcv}4FwDlzrJY+2;_(Z5-dwm`h?n(goP=65zmhBGb)`kGiBb6bpa=+ zDdP=9*kksHL0hUNzRz^{j=<>A{{;tVKto6Wy{w0%iK zMd(u%7fSKLC&X%07$LK!U$GvQm8dU%61?9T9;y!#?c;3qcsZCno*g#XJNZUMgu5DZ z`{qt4(Ms9A)QN7}!(g4Oh$}L4NFCM7H5)z#XTPYW-76Q{eM)IoKq%qyI1f$ulsR^< z95!m?;IIP67nCH3h%|yT^pv5=*ZV}fi6v+wbo?7tuUlo>d0b(Xj;*gF zH2G2n4xj0+f$(ExCO)%resNRzioAz+2Rv9g5l$r3fiYNrxVCpmKhrd0+e~Vh03`)Sa(rLHmSSpHmF}3ZS1LSmti6Qr~*{+)+c}t6&L)lbn>>E`A?A zxTHGok!*%x3z$+PRu|%P3MD?NKk3l3k+Q=NczY40jr~ogy0dIEh-QxiORO>NOEW}a ze%I+Kb9_r_--rU0Xb5$kzDGJ{|Jrd9^D4$L{&%Ci_Ru9|0P_f{N9JY;qOFVu3=jbL zEgTIb%F5?X`DvcgJlD}$QE#lr<=mPMMrJ{5L+BRy+7A-? zd3g%7)F`$+$JV~XL=g&5NPVJO5={SLcnt+Nd}Z!f_0v*E&xq+|yvtfid>Jok^6Nh1 z=no!M)#?e#{2Adw)NZ4^^O8f08Ua4^1ZA#_jLVdc#Q3v4*OP+eV)hfpboH`%#kGL+ zjzdudd}$$2=6P}QIYQ{bUQzd>(!QexK+1fD^I?3%A-A-%nyKU0M!McrmVZ~sev`cK z=DmSj0B!3%Y_CN>u46(}UTCI2yiry)MmlEjlK0dugR3c6@o%#mnR4=r1rwF~w$EIj zwk?``1FaBhTG;ZUVMSda$YOwpRM=TVT)c*!Xl3QBDT|pFAL~#40j4{Ugi?yjM5L!} z&1bb+G5c zNrBTog1w+So8@W!TwJtN5uBr99ITuszOoZsZmlNuCx5{9nL4X$eoWzWluei*2(Taq z*xknKg%pXg?sbKgVv`TA2W;7;qP7C7i%liE0zRJFvQg#-k>R z2+h^@V55e@jm&f5Tn3z|7+t(9EZxaA;bc}PaOr=%0H5?{YA};g&SjEV(GV)Sn_1TD z*FmdOlw6_SJ9;7kBwKeHcO7|leE#T+rrN{^hRllXFfHmaZ-Y)DY0R&p`9y{j?FZ_q z{c;-(3llmz&eTfZPxmV)#uo=x`Co>VDFhRk8|^_s5EFS z#*_xitX(5GqxY5XCs6X3rPM_M_+rwrwl305FoXv93dG>V15!^QF5-T=?)lmwq^7~( z6-R>L0CQgBNIZFk?NjKN`jN&sxqdUl&+#|;n*J(PV$iX}idM1;9>zqFKu2gqRZ_+l z{*?CP8FOE5c=UHI2gQrfwWf8mxgJtxt~3ph3Sklr2g6Wsa)%*F>!As#q4MnZ1X;j8 z=vVC__oOY_j9oC-T()-l;CfO1joL5_hc3PBFf&kSi|Q|Tn-2ZZWrO|$l%ZZi`L3JED5p2Cc9XLq;{)o`i+hJeFDu$IsR%bQUn zNik2WEc32NkqFw(b##hqHij=w5{^Z{u|u$`N}6jb-r#PVwyl-xR(sjuKa#FC__uOo zuLf;%#!WwrMwg*?z`zx91y1z<_T*;qyqr^9W^b96^gxUK9&bLwMhCnKfEhpP8KC97 zuAaFN-dr|?m@`-oi@H2#EGle|N4r2lvunPriu7vA%407a>r$Q5(ik=OKvT$M=J$(P zE|a2vc5`*6A0X_y^~U+Q4NQ8LG$85#&;p*h=~h~7)c*WXCqGCNpvHhrHl`U-=^Xl& z;O4;d-*_OHE@Aq2+4gw2cG|l7Bw-hF!V!GgCtnPH4}ChlOe|M!D8cD%yzU?2Rc948 zkOqL-Q`CCquJQ;@1edC(C|$7wLkK&)6W zc3#LonM#!#SRKU(5$aHpxPC;N;)!=K(VG?Awo-h2TJs8JMuh${GoGt1uYP9M$;5)H z`?d1fNxVU-*6yYOS1I-_g63ezlS#0a$(lM29}Xwqm|SwF;M_TMB(Xj9tR!mwv#Z9*wIT zxt&hjXK0T`obbW2sXS=nR3YdvdKBjmrG zfSk3zbVn<|SF|Xv?A{bF%Ds1j-QcSmwz{SVi`0H?07>oosil zKkIFAhENEppZvWS*pr%RE9K9VmtWG`?j{LlJnCNBFB`I|rBn~RxFy)h-{;ZPaTwLY z-lj>1y{R2Klx5vbaLrsJ2p;JW*gx$IM^r5YeuDYer7`@Suc~{IjSl|DnV%1{-siP^ zEbUvWl;JEWj4PDkF5Rzc%)!|pgl(^q8Y_^4c zGoye0@PHx#=Zb+20K-KbjBy}kf{*mZ{zB^x=^-D>+xG?q#~f|ml`ZbbF3_Ds8Cv95 z`fQ#HAF4sr-nKxI0s5IJC5!3Y^k4ZHaV;^A%fc*@9fF+ z44e{}F+siIGRqnk9vue<}RITvyVY)SR?C;r40+KFT_AG)6MigrL#!5Q=S zVWCWNe1b?qp)%a#wQJYlJD1p~ zgL=bMsPD~J=j6fA2e)_l{XzpGYN!Z`%C5!!Kw@%||%b>57x59wO68tYn%*YildFb4G)RNz+ z@nv{;7)mU7(BTvZ4ma%B#+EH;m~CMlciwI%xO=avd$x8!Kszz;q$f)g|57Wx+Htk7o|wy{DB9v!($%Aw!qLTKvNC|dog(xb~mH={4APsKDx zGS|UU$#?!!PZ$>pb{g+1G5cK&gH)(70cOr;u9|envvlxDNgB{Ew_nL9lmRCpml zDGvA3MWLVk`G&> z3&MIs?S?KiaaXGD*KpeQ;=v>OV*1dd#F7!qBfRV@pkINT)>@|#bxBJnTV!!TThg~Q zzd)wrIFe&ebOj7cXGMaY_L}tFs1UzXcDE>k|Uo7ZzUG5FI49*2|s zxV_)YvvvsV>I^x3EzafRnI-{M)8GV)bq#AJsruh2ljI$Xna4$WKzIh1IZhVZ)hNDk zJ(|1%tZY?l#*Ol=D{nQIQXBtg<%fTpog+*qhvu#vtCV0Dkt$u(XtykDYgbg?=Uu8; zF2k9RGD2o}75;1Fku?983k=(zjZDvxTf*qBGDDscY?r>TC^Zoq0>mUEm` zN+}czCeVc~lHQ*expPUQc&;aTSq#qC>lktyT9`tB!I(}a?4%gEy>itGnUhP{`dz_qB_+Ok(%1_9P8*cXx2!QbyAkWC+i%gOS z(s_d)n>%ashN6s)>U6X~v^-UEZJ_8J&SGy(Ib&|>)QQ1r zYb^@hEA8>F78xUz(NLd0?)}CSd^zn9K@fJ0(HCg>8JBX50NmzYjaXicb#U#)(O&y< zac2&T2|U)k+F)Yw^STCDd>DUj1WqX4aJELjt5Eo`D<=Ho2gR-NziLbhKx|yR2t&57 zHBj*(7R*}whThN39l989ZYzON@Weh`xjPkI^#qU#9En)RTg*Pa+7Puq(7GTH&!LPa9GCffZc(qLhc=VCI=QrfQyWN}1PFe4`UI!?1l<3^H-+Ax4 zuCUZg*#^hMp$@$sOP2W(qv<+sB2+I{V&7iFTUJkWR@TJ8q`aiDb4;|&ZRxwR31B5S z9RYIngWHyT|Gu3upKd4_hd(ZIP4`0;SN)Gax!I2wHSV{>*^w@A4mYj&YpZJ=Ojvv| z-Hw;((0u$n|Dkn%FgKh?o29~GpW1JZ@;jkj1E@;;Ez_N@7r&^QIxJ^h0}yz{9e@fX zhefJqTl6<}h}MY@8Z?fa@e zh}(!$e*Z)%dTQd7ZfjY30A?fzEK-q`$B%Zl32d~VIIolqHeLWiuq!a3fT*gHfBwV& z^}eU%mG66|tM}rGrX?Wan-8c!HgD`n8_P|&mKBxlc3|Vll-XLPOv2*P($WH%)679c zyUJS*neTSIg>&USmu|wL8432wH*VaaVm?i7QJS|N=DC1+J~U^Zx$i-^UZt@$TNdepbgyYfHO)wa7yfdG4tPmo*?5#2)8A-^_CPb9Ivt^`05wexaEVCpTWra#cA>lc$>;C?p=Xt%ZKkh%= zUDtV@pYuJA_i-HWhYw%krAM3K-v|Q*n_&IfPz8lH*E^mz(_O`^Ml*3LmA;{jAIjI+oROwlb@8vkUH(ggCj&N@keriKb6mj~}~a{M+1CfOZ@ z)W&b8{VO?C{B&uR*Nli&ue^VP@w~(yXq$I*Ey0<^8E@TtyVvp$O5$XWPfOGI|6$S* za-aQeGp9!t$D5ydSEemNkHOEe%0xURah+FPhi5E)lD&6ta816>tR%gknmH-ePV2c3 z`YqE;3C{AP9YoFo%ujN8oFtfVTOfD#9c@7s_s&f$EL{Bc2_H>c?y2P7;@d=+b|SdOLJi*bRxJ z+XktoYuYz@Pgrwk<88CPu8w)80GS(z5&VQ0v8djd02`2bIpmJeq`65DVqZ?D&GSItvlE|M9i4;7ireK>6JR}QmZ}UX4giW z;l)yQF7Zv4TSiZ#0V!vI)xND-dFpVdgs1YkZ=571sA>N;bWE1@Xx>uFRR2{N^Mb`s za4;yzj6EPB`R4q3q~6h*WR+!~w<%xwDRVgZdg+u}2kbs%BSX$96G{Mo%2Y24ijD+v z8HUIwLqG6-%W@CB!u^bn5-zrF*C3;^vreK&jK@HqzXPO$8{1-!hVowoSP|Jt{i%Wf zaL(Tw?cZV@&c8k6ug8?r<@r7EGp)wAr3ciUs&Sz`yp)U>i4QwgJo{`iL7YN# z-L#d_o{YoA=L5X@-6O{rS}%IF^7NHGo*t>-J{u)yL;s$4S?WA)WBq@(k!`pmpFW3Q zP^dQ3)Oe_)ij2I3?BuV$X(e)8v%9Wyz?rL-rKn;=7^UYgu<&&2QmF_rRcxNpW&3tCu>@{yL)m$ zLTqqH!yVn);S!4nMg#86ttYyc&YY)Fuu+e(Ri4~kcFT@d8F74Q!viFmO_iG+q8iei z2CV}s@p>mb*YqDfv6Aamsrcm9i?^u#ribJ_)+h;)fttkQkT(* zMw^vw;imFpwKUSSAzKiuKc*1D~wI_}(d0tHk+Agp;0OIj?*xf#} zzL8nKm*s%h-8Sh3Vg_iS0GPGom0ovm;QV6FLSlQfbl14gVo{k`USnjc_3w{a+Fy5D z2f0fzbEv*l$h9_lF!wjl`JvfpL@rP1VL~0Eo4N1mL$7vM`J}t8-^r*B@uaZncR_tp zz#GS5k+p-$>guU7#!&kqSSjMG?1!e3FqbRyWYe$KTnO^Kc5EZz=g5p3`a-06#C|+f z9Aw|q*XiO2#(1z_#sxTyw`1FZpho84}U<$C)qp-Fu_G zHrQ|W7sRIT!Y+=ZC}k4{!U-?{kM`|BnKzvuB__}7(LyH;B*d|5EI8&k*2qtn zgvJ8ri-NRL4KGJ9B)qlEEUn_wsJD9X`0l4G@t$YsskL7hJ)JGO>-5&80vxQ-c}&p8 zY8;z2E<`Hg_l-~xa!#%^yNhA0aY&N&;I}98!z$la5O*$WXeg?E;_@=rp`;8yJP`?C zF!`R!LQtjhHX)Kj$`8`z7eA0*_IiB0L!oq_8CbfZA@qE}xzQ$~i-MJ4rNim#!;UL$ zQOTW<#4xtBFP$A#rtojKR)BK$Vdw+4?W={~1e6Eq42*eh8Q7g%PidvD%H=_FM0FzH$T2n2(B+e`5F_fHM79^TSsAp0!cjUdzX{p`* zD&|e5UQ>)hC}lXENZN!!6MiN+6;qo;e;Gee6coF;JgXA1574YdY85t@`h9=z)>rlF zyUWq6zDx6y$ci7IB#AuMTI-iS)PMS1l3s?$njgPP>yQ8ANWA#s1l`(%bE4TwVeL^~ zJl*6w|2^cL#ZDNGf;0e}^=Gy`g=cS_Zm(U%$9>wBM!)@z$nSe{l{No<$4c91zINEv zH@xL1IBb0Ss;G)%I_yEoM+1kd4wxFwCyFbSSi}(z=G%U8+4DI+xdUx1>y#$ypO4Oi z5Cw$Dcl1hpcOf4r1O!zX(X7Vh*cF!%+%i?JkwZmUMrCpN9$@yLMMt*n*RfG0#SQxdfCp_%}-d^hBm+WEvwRp9{ z*wmjiyJu~pNC`qPz%H14V0?-kKoR^RJ~a`eZRB12->)wdW~(nQ1@c6Ud70hcSTb4s zO9)YO|9kHEEBp!W?4L_9!`soTO?&Yh>v&OmS?T1Drd&?hlr@uI1;6{LWl0B7mUzsr!jM+wb67J@l5}~|EkiAPw6==ga zfS)%sWP%p7wD29dL9X0a!Ye@+TE|d3^n+m=FL}SsoeQqNFWOv8=ers^6rXY|gMm&o zHj^~rsw6U6}Xm5U1iQW%B-K;PH~zf0<$MPpXn&jrh0(advA>f5l;VWMpym zOg_)F6j#OpCXVG1$EuD2z8_F@zzGdtAVzP1B*qs~)U_wBJh)JZSFMr&@6k@~kBPrF zD~IC-JTA$aDJAC1gn#4orIQ^ZBx9G7No}Yk@@y53CDab@alcr8C2Ua|r7s-6z+0sy zCviGSyC@U8jh%8|z^Chq6mcSqw@WHqt$Es)ENw36a#19T$KK|;rQtn1FE@GI>ba`r zz=G#10NY??WAG0E9aAg+MiBW>Fry#?s{<_Z^xxJ$h|P0q1f>liNWlo)Vd)WiRM;A{d>0hyrdPZd6b)uRhC^qLA=Nlg1$;b z!CC_y%8y#0TYxUtNg|tHoj75;?O5egW;Ldrw6`@og-p1; z73kOQtJVeKNx7yJh3~cv&%=!DAs?_>fh!`T>$NH4tq2z=b|9{R6BG&X4D<(x3r9o1wt1zolC*Yj4b75IxPbC-TrB z@m-cDp1!jRTA$1Ln*nL`icV&GG>+acxrVO*ht0KKiaZ6aXOtzde^JdIBAtTqrZ6SP zME$~tNa?J!hYvrBCQyUUbV)o7(sPVn(1z8N9I-x{?`HP%O0G$qpJPc z_WT3xl6SuLufKEtS=YC2wZb_z^!)elx$}s1P#GbzVzOi*%J5X;gIxteI0l?JHMpnv zV1_mD$IySINK4(ou6M?5bu;JB2cn5AcwKODAdv0)W`6m1FL<_|g-%o1E91ZSen)J) z-Mw!8^%v;$Qt6*Xs7__W?*z6^M1wt40;DMQ2(sfoTG#?oD0pr#5NQrAV~%QJzru(Y2-A05-WSLkbZMOnx|}4e_JdSf_5@dnmKX}@xf+s&8}R*y}tz zxn_asH>@pymcyG%A_{nkY=ATifkJ^ODXIxl#bA1LZ;58P_GFifR$%s6Tcv~e7So=v z)}{1dT|W8Q-`-F7?`-Hycx)MvcsQOa{8Yo2++3|eXhSBsIcQT-83J-c!l@;B6~{41 z32WX4g*-YKT$2Y`D&t;??IffBga9bwn+c9&aJ&Qb)noh0h_QE9$e#?QJ?)>fJ&Hlt zsvTaO?p}Gj#01s~{u!btlgw&{!AC;A-uUnN?d%SzFCl;#j!UWsT#aM%F69w@>zcnH zNbK!eLcjG@Vv2^APi%001$`_^2VGkDmypRf9ZPOsa+P3uK2BM&K;BTXoY6H6L}_=9?s>lvkKEG z(5)Jp>=YhwC*&aGVtnsx%^TvJ^_O&X3-99gSo&)dD+=?F^|y@2zIA^@u%$ z5;p_U0pz1Kv$%{~w(GNp?;}3`CDitakJ;g(iBUL-Q(k4AN|o30!f(_LPc6H6|A68k zjsw@!R5g|o0xSTPC19!`R?n&Hn;tn!nlBEL;JBio!yKuMznZpfsqPHbhUL%r!J98N z)@7%!XG_aW*SNKMl;Da^9L|$%&*HIA>!Yozs=_!4*#KawX2kK1%SUjg;x8r>M>e!(hUR`h8J$Of1;}yZ*3lOdU9RBD zK!*hcv%E2e3Qz>k^&P~L+W+Q};?*A4XO~y;qQ7#6%n9WY)EclL!gG874&m4SCbitn z>qTQ0bS^O%bfR5?xPM)=d)5I=_21s$b);8s%kH^)>raRMk{4gMq1Mv{xzf@5OOA zU43CB3p}9$zc#SjXqE9-u*>NXf$3InQ&PJT&oPW`az^K&L|XbNK}QX(6w#C3N;jl^ zfvA+nU=QhEXJE=DUZwVT1z_ash+s?N``l{TY_hI z(%bQ(AoS+#llKWNdb{AI$|IsVl)nHHLS}PA7}X%yMe%JR4|yLieqfyR zx?%>RXrkR|X1_k;E4&ZrykA^uDhQ(OY~2uTj9>Ig;ff}CZn^zevGNrDImfDIoANJO zhiKi}Iw@0sD-Pu>t#nTx;J9s+^m;l|X?L|qal`iHTaqO>N{5aY`MgtstYZnd^WC37sdCT;>zx~Q*ow9B0Y2>Q|LzRR7QvM|Vgn#J* zTuP9)vChMYljDQV8`X;hs|%bj6N|kR!J#=K^=D6Wkv9dnz)3+jVfw%19MGgV$$-iT zCvoUU68F!jai=@YqMD31=TX!EocI$-R&3YHk^X9b*V1ZOZ|R*}l3xyD{zRn$M9PkW zQgqZ3a!C#c-QRC^u?;=Y^CBU)livr!C=?{WD$oOhPQ2q$Q|T3(l&tGXB`Wgj-a_f# zrHgf~ax5fQ*Z^j3`0pKXXB=pgmAta(kGW%y1Jp7Wkewjo4$LjAE|*VU<=Cg=!EiBP zVjHa1?|8fL=N{q9AN=7V&DHJ`ArejWbKV&g*s&PL@#XvOb~3in9F$9;Y&Y&6jn%cW zOF!W7OtbR;d+M?ipUGsqTwxVlE&Q~QQtW-K`h8iK&BDK)^lq&#`>FW9d37ya;Lmv+ z`PQcS#hhamWYq|?IH%=XU^+{xjucg6^P zJhYVXSDs&&4ox|J;fR6_eXNSy%bT=of%Bw$NDevX|2ng-I^O@qX^e)hrqF7I+iqK0 z0q+&1o)wNBR8WZ1cU#8K7)2P(a;k49JmHSB{}uma?u}r>6UOOm9v2TI!=FFR+mv{~ zW^iM|Afswcvgt-oaJwEvUmSPUWy*!u39f|C3!1)%3%MTNNho3f{fhptQ)n=$!^^hoXU||`L-qDJm zfoxl{`|(4&ekLgdwJvyqLiM@KLzKY+M`LupJcq|mfQ03MAt9Yt`x3kGwe8(xo)yMl zrlvxdz>jb5tJn88hrTC&P~s^MzVn@QFUgV~y? zOIhs+8uz=i>QD2y657>2f09m}(BwK$=d-d0DW`JZkCxKAlrD`L?3eAfsi$n7<}hu2 z8fj)3A-%Ys@}`}GRew-5jzgs{;Z%F;VlrwdL|xQZh%Un>-s^K8Ga zaA0-AKN>~Pq)S`HIIx)QviTYZM3{%D$!zsBhjujV$hGmV{G3E|CxCzftS!VYe84H| z5JBOHVw-3gf|3xQmqHVdcTZ+nmYg}TOy{1I-AT`<%STj2>(V|Ie%$#{`0d#)XFhgC zhL@R3{oOQq9daIWaU(Qt*W<&vehq(LJpbwe`eM|5Fj&IC1HTQ`80=z)#g(WB~PM8{-2W;HJ?Tmi;5u>&{M8Bmt)tM1dMll$O-Ht3Ro< z$|>HP*a+W<=ep7V?tP^L8ZodGeo^Jy2c%fj!>Y;95EqX^ImvoheS4Kd+E7b-S5MpD zF1B)eWOx`M86~xr-8~;!M9sM~$Y)Tx(ItK6bE|>(j9|7Y%hXyT*UKbpG3g_L^YUWy zHqFbYE^hCqgs1}c$$)Ad-PJN_WZ8{Pr4~I^UfhgoYux-Th!lV@d+~njv#OG7m{$MK z-U!c=pfHC?3UCy;tffM)2S19VqH!9c|AVp`1KpN)G!)apv6kR8R&VCo^l|Pt^vGlD z{_Oebq{hZxGAz-iqZ`~o5&HB8(UFz$<2RuBho&B%hYvkRfn^n5-An9uQO~cdJbGnq zB;L+0DzPcXGlzZ;-n@SXSjXQ07`nj!+`aHB+1mZFR#Edjxx43{%oyu$f7Nlu=Dkju zUf0rdj+fM*DF+*pE4P!NBPV)1=9GZ&dK)Dpx-zt{0yCa716V1@)9P8{V^4ptabQO{7(v~+Ld&&*vEgqDtF8ELe#st1boS+fHm-%ZN8WO(4 zru?eL#Ly3q=83MyR|aSjvK0T)l8k;@jB2sOI0%S?vLBJ4Zl=7IXn8D{Z&3B6?>pb< z%-ZR&S39XYwtt2Ha6tQTrosIy83K3@%eb%swd0HkA;hk;vDLpZ z%-V>g>4(W&%~ZHOT__qW9C-bfA~IzUQXxOycMHb`_Z3QuPmuXEj-oc&biQ~PO&^54 zU9RsCPiZlOC-P{ObjiAw&=Qocs%!5vo{>rRFZK;4Ju+s}q^5Adx()GgeBri46v)n) z^f9%p&3N2frZ4b1Dx(#h+QplEllpF3XIzbk&YOevS`A_E*eRn$8_*P?`(5*W*C2^< zG1!H-pdpkd;mDdYje8#gr zRSy0LIz8Wi`T>c1bt^w$1|Vd+hAQV1lT!w0h6k*T2)0}ZwrI3=k~$90da@MbJFUJ|6!N^QDZc#^FkY)D7B)M(HjMdjJOKH_|N%ge~p1-xL4;Dgu;lvkHFeWW=3jmAP@8FNP&yqNI3Q1Z^%KfM5k!re3X zvuL6^585qB8g1}R zb0C3aGU%P~{_KO*M*tiozJ1rnaVATMIzCjTm*LISV(OugtGthlFnk}d+5T3G*G1$S z6|+^h7oW+vwnmV4v2iBV?ZE5tYp8Z|-`G`LZrt6@f`>~q$iO!OYhORj)Z!(SEfkRa zf~-Qo@5iyU0=E09e`V>Y32S=55GpJB0zj6KtOK^zN57Y{1#4FuYe(ykeVB1$I8FNO zC4a3|xBF)A_D=(W{6_ahIQX=WT3+T=>XwYRRAXu(boU^KVW5G@-XVO+#-;FcG|jkg=bai``}97p6*lZIg%J^s09tdjSi}Wr z2zlt^`evT>$WNLk?-=vRR&U9CN4Zh=+tRO1=M8x{UCG>{SAx+Yjx#-L<`C1?*S`iA z%H=tz$)1@jpUr0s2`=7qzu|dJ6k`zR+lGexhYl*gSP@LzfIDJ{Me8Py=v1naD~D;i z$cmvn0br6QzR)}072ng9JN;i3DBV^4#*YX^-aFrOBq(UV$Y#7vTJoiSZuNaccVD1B za23Kc>u3d{%U4|xFZY}cMN4VPg$9r=_vG?i77i}iZCA@k zwhi|~!m z@9j@r?*#Hnp7k&hBp}}5ZlX$mc2MAc*BMr32xC~t=W|h zzU-@u;&Bp*E?;AqbcwNfg)V7H`dwh$%D(UmfCINrBNw0yhh+vzZ=eMJ#f$6sik9@d zO1wTu4S84FkC(MIZ(luES%zCpOOBIeD{5!8k~$eB5**pRhy_6jOGIqQg<^0wL<@u` z!~N)oN7|`#sF^nWySB}AIhqt4GFK}g)l9bzO-M(ex+(9! z;;2&{sgam`b-+$9Rp`g8Flc zQ4zO2t$jDu7;0dyvqb4`l4~D`krm+|Rx z;0h;s0b<-z<-1}EE^QMNL1M44j|>HEl6A&!vK}8oaIzrwiTl%MDPjq$E(xCBlG*w@qLinH1} zEBdLteD=QDvIzB`m5F%WUBK(u{ReNa_0xBhC-hy^n51r`Cw3H+TstKCV2+afjny(V z6#yg&&^fX!{vKfj&69uQ=(lG}#&_ki(l7*T>0NGS&6xqHk39t+9SO)PntA(Y8q*>F zZUZI+_GKmV<=j}*xajF6gAXVbBYKH*KiZpD8&V2*OM`kR%0RlNdOGcu9>-rx`OkJe z+1Q`-^GY@Ab&5f)xH={zn1O%#5$+cU>LOI*S2$FkGs4U*@=t=x@3mrfb@x_tr~+`> zk@+Z!6V_4|x+l>zE4Tu3{*G(iA?NPTJB5 zlYGVvzkE`HD8ki6N7fp;zLq)+tqwG9-oh(`H_5xQrB?_kgy zuYv#ngKKRYCjv4EUX!Za?ppwGpE#sN3I%Xhq=k?geRbvyqVPLBX!opS&gY`26;&NU za(@`|=AEQy!|=q+=u3!eUQjW0xgy~DH+C`83ryCUlZqTGfNo?-8dwTyLbz&yeKswL z+yJc(ScWOPd!LGG8g*G;H|?z`^bJg~1{oP}Wn}$y zVXhYT-FLUBIj9FKhj}(g8?2o{S^2f!uEH3<9RmX(jz&oU4&Xk95njWpR2xQ@I!qNwZWN ziiBqvY!X^{4oa9K!Z3|Eb|Cmdf%ewiH=Q4KBsqdtG>aiPaQ;k(72WZcvhjtT9c35( z9Vcwoas7i*+IO>v|CX<$%I6v^J-H-g>&ddMyX+{~F~sD%I3yO$VTr@a&Xw1KRZ(XLGmKpo50f4Vm#-fky zL8A!E1R8Bl{<0GhRE){N%l$DKPPStHfK4GC$7}7(gi;?M2!R+aZ`R@G6y8c*slT#2 zGGLJboFb zT*)Z;C@U~+?2&ePS@Jp~4a1{{UmriJDT%cCnbjK3S%VEH6niGmMG|O99{z^xGRf)aR*~5tAg&LK93>51r(34USrn)cqzF&Y(w| zJFgTSdvlD~a^NZ79#1*%H*-%c_!tRy@JN`F_~g}?n>_SOak`J;=SFPE2*C&jL?k#i zRP!VCu+{wDvqYPDs{Q1|D5<_m45uQ89_oXK51&7~eODeGy*<>@jG1Tpdy`)|(-2m) zV%u4jAfGL&<|HB~@#HPjjiaU8NN`6mzQrj+J74MG>UW|(v?j3ik}d@eC>7wB6auD> zCKTV=MJDY`3{=tl}JaKM{D+|Swj+~YOldW=+#M*eeMvgz`Hnyn zZ`hupEI~d2>kWs2fO(j@C|sV2R;nLh{VO9jwZ;~klo>zi;pUsqO=Uf-Q*<Fq|Y7;R#%`1 zBR79F^?zJ|gv}okV4y+>i2~i8^dttiWZMD+iko!l@5~fgEb0a63|0hleO_jst8sMu z3|0n^A98s;jq6bbH0Xz9$)cx+1%E@dmD6(>a`3#t#nr zj-g5n(w>{_wYV2_&q$!%TJF)R6<_MKq|b4@lQ`J815hgqsK;0vO?SKgyCSraX#1Gm zLZQ+o-zBc5WH3AVjXaITjM==KRGq`((W57N&^BZ3)DI636L1f(bkTG1IzcgH^50#c zE&D)Ea^;*(v6TDm>@gz-!QR=_K^X-tjr^ya?_Y4M1_5nmi3V$8b&2=Mj;4HuSL&G$ z+7}OqtlL)@e~yR|+1YxE9SgX;Wst|g%NP_wWPZIztvXYKE7Fzyt&n+#+A~^VtqQw5 z%d^8e52&q?ec@V#@%CX_yfW(yQ9ajgz1dcCMdi5^(;ico-nri-zNeCh9h2uz3~neb z#f} z>4$l<5Uf3Y?-KO@>9Nbk(yC^p24}3O3d)AaN!~4z2BKWWKpwpl$w~`5&3<#c!B5db zElaNS#sx7q+RMLvo}2WT98b6?Pk-3ps8TM4wRN|I6;*h@meFR40!8A$T0_A6b&&tT zcTP{#A0TWsF6g^DZY;%_3C3sLK|-lMX}F+cEJMDZwiN^yf-MtvlMFk$#%x?zcLM7K zauMk+Nr~9_AI)D#hAJiHasm^~R_@a-B?pSu=WT5t<^F}T8Tv%|eNKh6QhQ)<2Q*(L zE+lvn%h@IN_@tpry1AYFZyD_w|0(qlyE$HVTOm5pb{(|TOfBdgi0c{3&*C?tIb{1+ zH(|N(DO=>|;&6^Db0`~uD_&Z!oR`A3C6-kvobDeu|21@`*455r@nher{PEf%rYH?r z%@-jeJywS>=Ck>N&EiVBuZFX2AD@(suJoGS%o7%fvK%=iQ!+v*@vMm#{oc9#R3OX! z@X`NK%}fOt8}=YV$df`=QycGYaa+TmoR%de?KGK?Qb2z* zR0$~4cXWC&L%Itz861qXAG*6fesS7~xkq5ki*1Q(D&xJ$)Z~KC>`pO6qTD$`IK~)0 z5$!Ee@kqv;*v@lMG;@b5r+L&~gG#wc4ww$WV*q9CXS2U&hy32AGu*fKAP-M1^Lt85 z&*8>DSudB*f!5V1>1nG{K~|Zy*v4>n7rX8!g5w`7ujs*^MF)PKKPi;o-oL!q{{v>c-ir+7lRggnVY$Ox5k;AgdFH^!9=#K^L!Lz>-^J9 zOkMSx`QHrbcmnsIX3$ZrLqy;tn{YGj?ukaIy)Z0z%C?OF7zm2Cu%^nNv7`wvP2hF; zDcx5QSHKIx9E|=~2=c*^qXfug@u4tx0#Z3)O)q*T5~t+b`k{BDF1ESfA4@}| z+0DF@cKzB&i50|FZXDyjnS{B2MRzUGd%Iu6u!EkzOq0W5KH=oeMTzuX7m6OE_W(eG zm`NbXNida-Mv30?eI(6c8*_oMfbNIK8cXa^k?_MDHjw;^GR#_)_8=qcpl)h)|>a9e(k!B$b$6$cSzH<3QpaClqF#>c1satVKjbf*lP6o?Y5@k6;V^+^{IuN$dUlib7ke)Xyy2I}!tZx48tc`j`&Gfs9tNBl}l+wUu3vG{Y zn|Qr-5!30li~qgV`b3BegBuivBu>UpL}UNyzsN9hIeOywgUWkc{Zs8@&?kb7$0`<) z>+@(%Fe5DLsmAYuwo{1{I)}H39Jp9IfU3kaPQf33^e($D@L34=HJRJ7Y7fLco=e_j zfE-vnZQ-FSQ_FY5%M?z63+s*N9!y~NghqF6ZZ0(J&9$1XfE^;^2`sc_?xNw|94>k` z6p>X0f)r~`D)UFXmTL_ukr_}dDliMgVbp=G{0o6IqpjMLJxEDEQ!*E6l@(Z_(+ z-+B7~_sVv*v1z(ZFG*sM-g#Uk%g%hFov*mRO;u7ebjBUH3Lsro8u%apqJsK+l2(v@ z_OtW5C55EVIwWk7`k)X2)4S)s_!$Et6r7`39F&ZkyD7G#RV(ocn9=#`1v(IpTUkG* ze2~c#$zenff(h|bn=3meXS^Q#15}H-F&cREH4t=+&R1t#F*MYc@|QWe*Sglw@bx5z z$N|N_);e6tw7c`Z$&DOd29yMhIqjf+QnFE$LSx_QI61x(4?4>Z(44j!8qm*Fm!&bm zeoGAc9b&_xct2r;Q71O?&ipJ`yJFMrr|~EWEX3EB7n&)@qe<(tj&DhvCsn*DB_p7` z*CCCM?}9x;5maL6Dsmx z&~coZ%2h;BbKQOI%=A;7Z6!>J_C)a6(|A5WfF@ zOH^~sJIA3ebg@AFteLsX>mwv+$r)?U8NMFbmvHe{`mu%Hr87wvRPL*CF zmC-Coo^Vx6dI!}qjun=p0L6lIMtT3{#(coZhAL@)7wPxwCQz3A7tMKCsQNXx0Te?q zf)9cLGuZK$%^$V(UROKL)`*}0Q_uB2Q(jfJaaj_$><`saCYRN;O=tA zdKmf=4Z;x%2+L)J2|~>fmguwZeCeqvZs*?K5a(fhCHm+7imseu(X`-;zCg9)2k(zD zbN`JJtXQ6^aB8R4OOo4XlQiHOtzP)&7HNR1dA<%?hu}oTjfWb+Zv<-&&oBT01~;HK zzSY?{DZcy90|!1zK;~tE@($2z&PBhK+1v%JPaQa&&%-2iCud*srJFul43`KCS-nqmLhVoUWdRj zgykdIWFZ;-iEHCxn)dmu$~PnCYEYb`V#nv|Jr@Qk5`;q_kp7G)*ioO6D5ugFmV_s> z+Uihl4?J^z$B7fI{PJF!1FzMam`Zte${xIscJ!s|(H2d8rueU^MmB89drlm?{YIc& z;OKq;UjnHjSpA%>l}g9qBo)iXa4ZsXXdCO;ff9(&8bOHN3A^y z=%4(HO8%2U;23ZavsdnF&%|R$#XCd@mKFewU}Os~lEd3toS$bL2|P0=YrH14La!~x zn_#_%_SZgVrlq_9xSxS)xZ+3he7ee__#~W>I*(7**6(zS@W-A zo`$CK4ji44TuI*A?^`Mt7`_{=*Y7uaWxN|*#D@RqFUxL{>9v^4fxI-PQUzc5yO+a+ zTIf!=29|ZSt|(NV=H3Atp<<-yeZ)&W8v96FPYgym&E7rIg0B8Z_Y9T3#; zWQsb=-j29h`XA9x0H_CG1hW_-brU}0IJGU#KP#w3&x@MZJaOiW$!)oME9IQk%yTp- znD_vKK^6Oi%^8$su!6C+3@p!#;*OIhB<4p6+*&O_v@pxgMEjahuA`O6F=O|$k9A{@ zR-$D3t^&cyn)rhHrmJ17UXi*KwAQ=Z#2@MPL)G^7`s5#yUmF@h^k1x=YA)`Wr@S11a+Oj>n(ELq!(Y_&~e)T z2J~V;X>`>4$mH+$%iW_S z?U|(mmR-BAa{Z+N+ECZ{pNn4Yu#1WM)mIOs1q+^An6=onwYlEbnwnPaq8}Vdctd}+ z_gHN_#`HBMl9p;VYTX;KeOYVBcS%QijNK)K^^nSRp>R8D5?Il+iA(3xm%QOS^IMP3 z>*rHFn^)Zpy%Jif*2=nLkRR>f8C_ZX*velyy(vIophOa@RF%&6O*n%X|6vLV3}$hn ze+4W&%Xhsb-74mAtWSGepqoh|ou&VeSO26WTVePq&2O6QJ!qLrcnfvEf|Qd%Y%d zfR+Wb+x;{a-@VuGtoy(_Np}EheiGNCltQu6pc%X&R8t;RMYZfNpwr`r!z1+>L;ub zeT1Ro(+`jPA+P?$T5}ajy;SL;SrxdX(wL^7o59~K)MAv{<5AS@ANN4L<#9{nVscA%~0@8&B-_tC<0zT2F5m6NPNVZjF^@$H+?^}Prc zP2B$LXuG~u{qwbywe=#_1=xjv$dV%--S19V+6uy2+AHZUP+4<%zMiWQAS!m_SNCRKD$VhYcYzL=w-0viyPTG~At(%rgEGOkkt`0^beeoIQWq zSQh{xo0#-YT%<^J>BYbs*AV^(3^pL(MoD#4D)W+6UCZ;Xr4#zz65))haZbqzfa`u> zC4AhAcP1(SDu)~#7odeDn5x1HDT_eD0)}2#IpF@5UK%YPQXvFkGEyp{F@vIdZX(f> z`a2mGecRVtiM0Y=eq<7P9!me~Up_Zl&2|Hpqb>_?M{%s4ROYI z5ry?WtF10Hl2JNSbQ@?KfKLs!_Bk`5TTi9v9aWBa+ccRNU`o@w1;hhus`xvcr2S8{ zXTG%|&>QZY7dfUp?~J1G81eWxw}wk~r;o+;OrxU5bOeDh`7*&ij>tB{MDd-P5c%$z z*YeR240~p_hz(=q08G8n?yAXjj?MQ|&A2McQ&}@0yI}Xn{0ih_6-xKSX-A7J}9`x>^*{iIeJ2%j;MAL9HHkrbyj8Cqt`yG11yL}Fb3_OFB?d>LguLczUztw?@ZY%Zf6T1(S z0Hho!HD7=@1BgZG4W=EK7=v61e$=&uh}QQiyh%FyxZlp9kk93TWD-N6^Rv7g#x~aJ zRD78}y(-ox5@zd%etgu3(u)r!(5h;y?yVmprA&2fgf$2)`M_%Q8FnbDP!)!T-tUb`&2=jFx^ zGs7JMv?@%&)>CjI)_mc;&d6LZFenJ3+vE)*j(tZ#tFE;_p5<5s>3=TuVBc*c5jaA> zCyY?QzZA0C*4){h-IkqNc073dJyZR+Wl+ednwAc5&t<$F`zjfGEZgOGMo=Qm;O}(s zVDH#m4GN4pWA#Vgr3bxAtis4<{S_W%as2D{;*$Oq1?G@G+9 zC&;x8e^Ag%+)t%Sdzhd6fz~-27UJdZ$~zo*_BiYDciX2tbNEyqaV`6GK0A%PLAl&t zP4`_ZZn}CO-IUDT`Q|Y#{{bb602{7Q7Da>*uU~K+x{cvD)>vF0ZLlaGq%9-GNCh1| z;`NoZl zOqMHlRw$NUzE%c-LaVR@(;oQOVgieI1`I41nNum+?1GFE{iCR6e%hWpC-pCPb@^)k z`j>VwXnA_kx36&@8hy_pQ$wiXFe2l z)?MPFC?$V5rlOVds$}Ft;m*40#c+PD=FWL+1AsOb09Caq>8eFC1_=P@7a4Z#+I8nz zD5n@dKmR)_n~r)=^3W^;;=s^sA>kB((n5%Xm`1K|mNN^tbM;QmS`D^)7oSsvRtUC; z;050+KqfOvk~yj};PbZCsCuO{~(dVH% zmUzU$4a>Qzh7RgQ9{X%ud89=cJ6uC{S~7kV;p{e%3*f46$^JJRDSHLeHRw3xY!9=!*I0980$D0Y?5%Gf;MmNh>>_nGB%p$4zj zCyUOx7g4VZ<#Sm)b*lUA#1IkNw2!_JOVxl?1d3dev?9XeAAXV-il=WRf7rNoSW7A$ zZKJME|C~F@5-70IC}0ITCPSuD=f8!U4_X%d2#MbAnfLX90UvqwZ(qLubs2M3FZ> zz6}Fk{3RHKZ3oAm`#aoe;Z?qEo6LiiXHrG+pT z1Jeov)zX3OmsEG-0L=Y&07huF*L;5G9qV%aJUU8Xf@2TCcP>o4Pz523oO$#Z97pFCGTRu7%;{Ba_>k2m+u_%$KAR=z)Q)kE5{tBA9Yz&@@)dnGDp z?_t@=S`pLh#DpMAdc?Wd1teJhb@h_;zlrEn2o?VkZE4369 zaB`m8T2k6tTs*FTga6NZ{Y3S*bZXkY zyJmJcN&G&kep!0==2kz)0S8N@G<3m_-m7K$1O%W^yaQO6lI?OPcZRSP;jk3_cUaOC zwA0&nMnSkKs(GvX_W1MepkF_a_@924?^i$b$yhB9ioDqL3>Ezo*H8jThw!te{JdW25FYVo%eB2TOUlLP9U2*RX2NQ(ncn-wXSvqg+cU2?OR}=bK%!h^K;Q`B z%8ARE4WDq{dxdx7)@#n@IEF)q4$V`z=Fh{zNh;&(<|YfK6<(Pgql}Rh!2Hpv9({Dj z`qr3<{R!1wpLC!9ZDZ}xPfBvVu>0hxrf>UnJydeIvtGePB`|qN;~FXbKu2ACht+VyKvz`on&WFqh1l%X&7pu z=>l<=wWBPk#RpY69(9~<(@M|l-zKzvHFRUMUgd)cPsFjwxqufJf?|>_W`XJ4V8_IS zaV2>3;3}b0#c+$M1@rJ;(hta_NcFFx;ZxXv}Rwt|8oesr%Gb}NP|H;i!R7miSRw^Cv$#eR*bH#xW z3Brh}V1(&Yv$_Hy1gxyAAW9*|_4);g|0mAcb?lC8+KFFrV`|0KWm*+*oTceLq#R4T zpX17EZFu9{f7FV2@yI5r66$oo=)~~OKgu8zXxU}P$fK^2Lp3Q>puu7_L=$U z*&GrwuzzB^vsou1ighPmzzcv>gLlf_9OZYo){NdgE;n$bhI5a^ab(8w#*SN3$ zuPzmrK5t$$-fm^sNnpoq?oQlGKnpZa?h)v-iB_B(sz(oHow>izTC!~Lq~vwS{qGWK zsj`1rE`5?%UGk_+6yW^#$zD9JNb&2<#%s!lPlVW2-1~eM#n`mhFX>XJtuG%>G409y z$?BFZSiIA?KBsYR;DV`uO6UU1tH43HR%d7d1J)@%hq&>*y7I}B=X@9RnqR*Bs=Q!o z(V=<+`Uwp#C^Mk=?cEc@`%l9j!*UYVkkBHb)xj=5UZG3Tw}MiS%kRRH%;d`>~M-~qxkZ|F?LZpAM`b_qzoC~R|>)ChZ#2mOgo3m%(!}v5l#;QA& zj)~FumV8{EadA7{&Y*0$OSZdqRlVTg+#425#y2OZsdqX#=hyy{FV`r#uGO2h03QM~ z&G+H&;dM82tQTmcy>J}igyWO9xt<;{0F=} z1Kp1bN-3FtU5TSFunRWYl@NydoZ0bf)QktvDrGLW_aDGzN@? z-^B)k^egw3^p`tLNaVEC_t@@y@miYPm<;TGd?3Xj?uv@@c+Ir*Ps7BmVYgOn)U%jw zy|Q7)T@L5nKbEAfG#k2=B;nE%UCcY+RF*J?E)aV>lOJ{JuGN$*s@ z`$d#N;M-!Q)gj|ByRU&+x}jB6R5HJ-t$)}RNkP|wauFvM)yemrz5;icy|cYcFYKI| zuJ8Yo_UN58%e4(DhsbUR_2dpta4u0sF}3hMyVtMGyz=(nWAzM!w3aZw!>3E`=nW?Z zrK0eRkWN>^hDVf&Sg^#uqvn37*XPbXj01a&c{)WiiYpY2zxQ6^{_{}D_;0TM`Px&G1P{w!V0 z0h&7ZrqxGJdemn8)9$v6|G-iC&-yGMh4h@3)c4$RiKrNR9MXWzHSYh1srP`!`hWk& z?J_ERl(KGnWQXnu>1~f}*&#%c5wfz%=C);L%ien@dnKXlRT8rI|GM@0{?7lL&ii!E zyYAet*K=IgV_mdet&qmAM*nH&91cFhU$sWz4B}?XO!;0;a?d=~l$ucD4(x5K+7MyVz z4wACJeIbEAp0gGVa)_qtb1-lyP1j=B4ztUS5!Lou%GL_KNkp!fN5H=NG zMIj;&NP5uMil5BoIWYj&^c=nqgmp-+6YMo$Q)WJS)Z=fxf2^BIN;cP*E-}$6Z1VwRXx$3Cm4=%o`5+@aRJx8(uo0>)kS+j0Dk~4?S^ZgzeHZ*fT%> z?U{n~M|tnG^;N#Y(E()%G=Cr_hqc$Hs8CzUfpMRqXu7%l^Z-p^zp99 zk}+aDoGI|Y@y5jdL)}-n;xJwd5(c1K2az&pW#Q(vAC4iXR`F#>@P5CwEa5c#7&j*B5$R43bPvAX6h5$B(exa< zr4&Q*xQPFnuURCEGDl2M1WJt1cg44ds7iOqL#5z;MPo-rgWX+j9;!iI#Nl~spSRd< zeO0AqfhM$@(B3O(&_K8InMiM6>@ zaid~U{T57})SD%GdX(>87+L(hFt*%T0_rI}E z=ae!m)15V+SDHmP+7nV15-OkNgB+CEf@q636|>*^wj1mUBi)C75qjbcQfycugs#J9 z3wM7PZz@hG&)DDBFR~3De>-tCG5qH_l^8OJv8s zYXygl|B5TfyFGf_jnV6W{(oOsS|tM@dpNLBh%$nH3QNjY&=^1i>%O&fWlb|jfqk-O z-h5Kfac+PDP+1u7l?kZX>j|%-)v^*(`{U`qj`u{xoy1+5;-vxThI0}|7ZK}Q#J1M5 zsTtnL`A9ZqP0_TmfX+*YBtZ0Jr;8YN#3H)7=1+Ln|2FwiEDc^B4` zOl&h`!NCTYT8BMAC`@d-p3#u%hetu3vJzO=$j*$itTRoX773c%_MRgiz_ z0m+{(D2B(e{}sa=&^^M};D{l(u)akGo&y@#e17@@x@B~Fng}hHi%yK#SkrEjiL!Bj zTOgUr_KWW;3tMaj%`iSQD9a(iI5y9!kCsH~0R*zZ1&mL6GxT9uk8KrKV}--1O3Mj3 zN3`R8#JVQ3h`{(77*xU#!sRkpEFAGa$&?IY`e_9xHt!vB0((wBWxGT z_MVI)MWtoeTl(V^e|^^D`>&GMMF?)FhzF6KiF=$%c&PjD`z=P&-%3`&m#2)w`}ge$cH}*wz5oIh z1Y~P<(7eO!bAlPRpiKXH*xcn4fRmBBe4fmVTLx?NwHVi8|* zspKwhAQ9?a-6=;`A&a~$@2~qtqt*}O9|R-}w(cKKEEwDCipU&|h@rBr(z$sbW3RXx zQa`~UnBb~g!*>uAlxuBXi?9|q%+u(=%3ps04KbW?plgFEHeEMvGN7-`IGH7vLIGL$ z-7Coin=zXh06d{@yj?Ju^s%-mnEo=2+p1cd1uGtCQV zw^NqtG1%eG)|$@DvBp=r~7Kn$7`&0JSvaSh?K;bOc9IRc9El zC-`wA>6u!~Rv8?W*;cKd8Maqpc%vk7+SGc`OX=cSYYOj#)>bU}srQ1Sb_C}6i0#QQ z9o{T$2X3Pq#e>@xP{0+Ll|;6Yo4kn@YCABN@-GH?LdkkKlb`hXR#NfNf8udimR{7!Tj z$ZeD)%z-h_nyx5V-LLUGE!N=pT&AeS3C;V_X;a0{l6b_yu(MBiyl9I@_RW756VM}B z-R-eS1l&ZQ2Yqx_$}PJL&n33_rl!i1oYtDNsju1z)jT>R8R%X~s3mKWj(x{-^|1aA zaYoENi&vyg14N_dYB~jDexE_MB}puMnKM|d@cYmdpklmochCA>hdvjz)eGpmDorav zTmGA?&AEW+!&p9%NBDSh*|dC?1?sk&B(RqA&@w{X_hERIL^7{>ybZdI@Bc6+s<(Mx zd9@qcc*zf|7esQ$tVtKUiUDmz4uaqf{C}C>go4>a9ePqka7SOJHHUS5SX9JdlbxFo zds(VOp4pi=Tk9v6qm>9ekCnC<{1w24Y=pDCd6$mGycYD*wI4Z|$c%*Dyz>pu`64PN zvSi#^2vAJ8<^a9{_)a;8X*_&E#MFy{q-F4wCfdJlBo-4XyM(WF-Og(#p7l*6B9QzI z`ZBz3z?-N=dW)3s?FHw>PKSG|ii@6^$!>-j_H7BVtmvaA^|S(1$v z^h4I7T=$LN0=32ETr2Gnvrmt4P2vnvzgKmeF*4L9E9cyw|Mm>sd?lG&KyFl>4rFvc zcp$}G;e7}EnI8n-zCIUA?vWn{Jc1bKuXuJyd{mc%QMXsV3;+42lTf$DFwmS|unW*a z&~}Btq!~ya!npPF4s?Y&__4iN72M_pBNpZCdrS@z#Wd#5R}6>%AFnCmTwoxQ1~fML z(ZLZ2_Ws%B0vMp25lbFmYLhL@v_HnimK~zUOhwbBWL~_l zLPd1Y&vm&IYnKU#-^%GBDmNi zp|e&k7<-ThE}?W8-tfV#118y+sp3HDWKL6*kQ*I$5t-Y^wKc_=U?(<#a)X@%^DfdV zLKcQgCzd7y`@FV#DxrKH&0b2YYg2u=b5;Bz(Fj0UNg2P8-hf+Yh2Y<kn$}0I z3|St0?Vs8OW3T^wQh8H_Wzc|qty9#O6Veg@oWTin7Q3lNr7xf?*S7m)azrx2yOtCN z$$&)^9I~MCg@-ceAi50ll?zG*ayw-A6UxG*5^Y9S2wW~dU&%Px$C2f* zEc4?ImD3xN&)9Z$j0AW@Cf$6Qt|WKy_^;bY*OrEw)h(~!H5^}uO76gXMx{@k_8}ng zfI_q8%u%GUNgU&HX;C1yxN_1jo{p`<*z;!PP^anl;MWE%IGj-rKSbuL!iM4+Ao&Mw zsGZo%rsUn9UDJs#ZK-W;hIDX_Cb$mrZ8KJlQf=QB6^z}n+9K$JthR7iN4XL7Ky-Oe* zd=I5aB=aTn4b6RdAAg1v8zluHJi3+I*Be_;w}jc48vEC(xi;paZFBoLvM5Y`E4T6W zt$Bw>b+D<+>!aM>c6`puYjkZ)5nGc{0=;Q2X}H3cl0xunRlQ@5XEjxzSqJ-ovO>z7hJ6;hL{A>8V~J zvTTi$4m-Q-lOIiq6~_%(w>4gsQ}IeYrBCdE1UD7mBLcrGINmk-AwKziTA?lPls-Q7 z!@3y@JO2GJhVx=5lL4*I&?|&+EUk|wi6?C3ae8PxpW@=uv5z(0!y*Jkkp;DTF%8~q zzH_WfP^t5{cMOp{VSklVPG!PDS?QsYl>lpc;|lv3z%B{CR~G5xfSEd5a8U-st@By1wc?aC)) zh4G4+j(+VP%(-kMRR(a2B{{rhIqaDyXnoy|xr?Zl@8$g7Fef0It``+fSjm_wf|8zL z9!{m)!1x47{&vKf?0`Z0J*jFv;dBA>1AULHE`@97Ofm8@@6v&ZLN8#b!9d~9anf8e zUI=yQ>wmP(Q~$Dz#z%Rw$Dg1szc4eI?V`oZ>N7zm6DU6*^8|{@2Q*LDS>YPpxN>ogCQ&GI2K)(YExw?HWCC061B`^8 z_7jwpf=lbb1p^v%E0JSnxU4^-=hq^nx8pIc89dq9IJp~$KeN9DdkKtp3_f4ioEW5~ zIrYAUZQfJM78F@3U`^<3X}$b5?BqY_Ah{{0$;X$s4wO1M7?V#0u({n zWs^WOxx3$X*!KsvJ{M7Z>}BN+y~0>>9mpQ2)tCS8(vKq{C3UzC{7l$TlMc~T&#c5Z z>9K`b11lEob{|)FeJO~TbZ%Glx2^>JJn#wT=23|7s;q`PDdoZOWsWF5VCaCO>gE53 z@d0hgP+ladcP7BwPI?$WP(14-!#oJdl#XIC&bj)0IamR%)EZA#8Aoj*^SfBP=x4TF zkUeX)9!H`thEH4Pk!geFa>kaXA+aQSva*I9_FO@X9@oAs47)d%`J6|aE<8#B zu-oKpV+VN+uE(Z|$`ET$%wT0|0--cGKzGnkcxHKEj&xVUS~%l55H)^OE^B!!T41c~-HS)mFkixH=F+qNBFU~rue`lRDTW|bO{uO1twcWa0-hYT@lgBYjR1vga35p06 zpLEm;o`5#Qr($nfW)z(cC*}^5z1kLmlc)Ro+^@#~e@S^=9WgQZ7(GFfVm&8M`cyoX zs!SM8jc;s@+3iA7bY$G^D>b0c7#W^*IT@B@3u4T);@IQyd6Ee=fpe&57BgvoF24vKg~Kqh&Y6EcZP93ik^u)+@*d!Fs+e2>+<3y#Jx|+ z=XMbIU^Hz6m#Izl^zpF$e)pivcfXgHXse6PYxewX;~Y_uP(_ZS1IYcU`9?)a$$?JE zD>_&J<^Ls^=|})51f?*r(}4N|-3J9RsW&$lluzKIKqOz!eaGu7(Epu4{rV~A5GAPt z^Lrdz?Y`P#nCemz>UMmfcY0784tr=GVLK^g~+AQZh?(=?G%*3BFnr?{x|{Q=rTn$;&6;U8}GLLn+!2)D??4-CRL z#aVm#;p^)zEr|$9^dbiO2FHqBt!Z_o7IwG3JL$(h`9N`vOHU|Wb?5$^&l;+i5c z`8?qDh@li?`!=V>RNCN0Rx2Jy8!Jw>RUknS zK)s&xi00RQ|4OQh^0G!Go=mUj8Gudb1k1tgArK~jOcEqm*l-|Rm?dFu`$G*v*Oa(` zcZnQnFkZ@Is?@1csRta5t48h` zqhVA>i*(nG<(q0T|Dy<$wiSp!t$43ow%F#|rv57~J^y|YdyE}HNfWO$2Bj#}9I^O9bxQjDLHkr_gL-xz`V|WUNSpOb^YG}gvwPx80u<1J;e_)trInh}$(%)+pT$X4G94NBc^Bo=&F0t(J`FTD(DX zOC5cx9)6XI&h=JQZah(?g4}gI+{kshWUhUx$X~BOz6PVBh6q2?hs@+$k57^zcDOnjEts9C0joNYZvll;5uI{Lz%RW5?v8irKa9#T>00AZ*lr7VU_ z+cLBZuI4_hiRB{9=!*q6PW8vJeQG7U)ilHM{(bntU|cN0&Bh8RwVC4Ddnd@VGtM;r z4=_!0f5r>u#G|uq3bi0{0R9WOcRPf+!Jvg<7z*6=aHGIAwQ83u-uv zezZKoI*oj*e{aS{7!0d+KQOK>M4Ng}iu-(xramMDppi^z1~&{m`N z34Vl1M^z^xhH(~|+YzCPV{rorK4~$hTMq$%A;tkyal|zU2LY~vnXa8^4-DUB>jxC7 zol7EN-|mPC1He?M6?NPL%A}3v^Dx8WOS9>(6I>O0E}Nk*)n-BkWck^h|I-4XMKb#2 zjuAPc`1587QCyS@Q0Ip&$bQAs{)H)fpXG7$)wj|jVd|Sg%@w;3R77eU-O6(6QyT>P zh90h`=k)jog#z=QtlSB)EE5wsQ}4AHMn~G8G=bDfhYJV}puvD$1|}@AKO0$XGqyVd z2NW|BjIiL-1QH*rj#|o!eUC;%$ej8aYp2vT&y?}ePLOUCfrG(t8`$yuv3xUA=m)rZ z{f3O~5XCgMxB|g$v!$I&LNQh^0{Q(3O(tLGj(qUzk zUJH50UyDgELE|C250%iv4``3*&&)EtLcas!We8>iUvE}|rg;#+;Do_mKHDkD=*ySd z<+=zEyp zXiTYv{SwuIIy3>6$nT(<1jFYXS(i zQ%v(RQQ%@n^2-VNEJo+(aXmGD{4k@+YUHK$T4C0@XbJ3yz?V6r0O`QV4EorGtpm;K z4Q-Q273I^9+z+9VmP5$~Ku$Z!T@?FV(+*i7BS!XL7F#J_~_>6g^p)o z2)qr=(1+6Rh#;Whx94-z;%)p%Wf30aAbOw(UxDRuDzvQIZo*Hlx*B4r%dW$8Mlj!&aYgxfi6sXyL$(^gb#lfxma5%4L03lJ(63_4 z#C1FSPK8xm|s_Nr{M)X)1gSN64>>?)HmeW2pda)hbcfLZ_wTLl_1 z_YcFl#zH{zPOWS0g;QcLGg!VRD5f!_tI|1q>hjCYz2~87_VP%qXd{0SH-QHIk}FRK zuJ5fp{gEFp4vuoZh%GzE=JhE@K6xQSX+5t~z=nZ*{enZiIzgVy6CkBSI%!S3yNb0% zoQr-}{e=r-%=cg4!~i!N5ZsM zmukTU#XI-K#3gJYS~+C*!MCJb>z51M{6ZL12gOhO2Dt>*L(^hhkm! z7-_TZ;!jl>2OI`@*ee!R`@+hk{${O9o#WJ9DZW+UnxYVg6{ameBO1nTzcPpc$QKwx z+-KtUzaHmzRdq_Vs|VpaByA;G&qv(k|28>^(5LzSIX2xjCAiQpSw5Fw$S9k1b|gJe zZrf1FA2oq1NB5%X?Nx`bS|k`CXBNhzpaBegYQ4(Nu)rp-e385s^7)j3B$_VvG#%PH;J!1VTXt za@0k{PF{?-ga4p@!V)54G2&vy zM9%?ZlV&)F^$PzH*g%Ki1SYQd70e-=rperv61wgUIsov)7KFGDl_c`tfM@Bi{aF-u2#Pu--rkZh7ryp`LGC=%zle1>8|7K_PS`t1jOqKsCd=8cNX z=t#!6M>~I!kesU9YSF@if3wOUlUAP$a|2&Vkv9C=4;J`HM={uxk6gfH2L*2rV!d;G z{k4?>BTOz2!UM`ZbAL;g8ZBMnH?y>2qI>KkEC$QB1)e*Ov+I z1@>qX3iH3q`(>$iuLXDfQt(fqriaa{0j5|0GJ4l`#ML}r{;|H29Nb!pfvgaQhyWNw zg{p4ldk}aoTG_BvGjdZ!=S!)1@y4-KpS>c=Y&7USkbPXe9X_U%HF1W&QwUQS1$Uf2 zzrI|E(2b>NL+-ka9kOxNr4q#B1mz3Z3e@dv+vFSd>=}@`YitfnNnt^0)wX}?bKQ5P z9r;%8P^vzq_R3_y%kCl98@p~dC5b=t{Y74zY4RW=jsKwrj~=SNO>ja(3dk(O2kC0D z=75DKa4)%uq)x=4PwN}A(NB}f6i_!##1j-Fvh%)40>0&l4Wb7$0dzE`zjSx^&<&N{ zD)(N_vca4|t%~#`>(5EUwwO6sgtn5;DibR(m-1=NC*!>NZ{LB+t&?ovV<;5yomafe zOHwg9eL^X(FSn{@fvii%Vn-+~YrBFSN*35G^p}Zo-XP;jtV6x<96}PRNGaPV@mi6W zI09vjc?JB7$2d6k+AHp5^;xJn-||{+a%QLB`lv~ssCtnb7Ub{u6-9sfL1_A5FpI5H zaJnb0i{+hxLEIjJ7#^CF^EB?efCXa3-Rx?06ysjx`x!Ag<9Vzk)=vD@6UgZ;fqz%? zTc3d&X(xIru_8as-$p~E@agd@fLw6F-xYfmQ{#EWw;@c=W*`3f1#T^Qr&4QYeBky+ zlzh{3#R5}JT)`YrCJZ_|HbKva-7l{Wt*G|ySalm$zXL;x!AlV6Wm`FW5x z@T%vZN(*aCipZw@?RW@DJw876d8zpJ>s35#V9e+tJV+}YE%R~s-;?Ob+sk!p%ai6~ zjS3|H#kE>v4M`9n`4WS%;T}EHM%AsOgWT^=NMAG(JXfyRZCd>r;fB@Q6<-PQG8W|t z6}{$h-VT?vuj?kQCXwOUlu;{=YJ4sPpDyqq>&^-@`-KCk3AioF*r0RM5P-g^&Z7QD zPy7mp_~vZj)6xdGx4e`{JF1LNo{Bj2U484D+iJX$q4HklND1J{?AQFF?i@3YQ5`1{S2$$t)9yZPQT}GF4yxfz z52L^6E+S>8;r3%Nk_~L2UYmdV%*qqKNx>M0%_yk1A!sjU1!UPT z@9Z?`OPlPG@08vdOoi+hNzU{GB#OG?C<4*D-4GFH5_WC+Nl#IKSyxY$KQFd>@4K-$ zZ!NJ+2W8#qgWBa%;dHtcA&aKieKU?8MSw^e+FbDLP_yjq?DG@IYvT{DTCJYrFIT47 zik}!=4@ghCG^qyhabSYF@Yk9aTqnYVGR^<|CSs>gxMU?|0!$)XZWpV|-`_`9#9_C5 z%(@%L1(-wREf}3b8!jOxqbhczi|?Oy7J@m`1p>|tyrw}-c)t#GBC}~4M<|w-I+uM9 zI!KTDR|{Xzjg%kRK%}tO43PX6tYy#Cc8=tUpMEp7KDWB~V9lbXB{sq`nCXND7(uNu=2Nfb*qG)86^|7s4%wKn`xib^ z&~T;XH9RR$vp9{HuPs}zWSjqD&nI`Ka4}zl1N8x1C5!Hx=P(f&T5a4i5hZoB{u)GM zg4Zz*hJy^EXpWA`0cxoEf6p!6eit~<0f58$U^Cx-)K`TMee~@ZO z#Em=0nm%pcPqB+f?>v=Y0#GkF)S{mp_Z2R$PE>+sHj z93*}Dk>dHvSuXGebdtKlqXi+XLmkCCe=xYMZ?@Cd4Mi%8E3i#dNp3HQDp z*;91$3)vCCZX(<@IQ!t_5@)%nYE06NmBSQAB)uRF*^c(V&oDR^enjSCbjZFMISl84 zXJbS_nbx4n9wqs{bF5Zn67pQ&m84guRvD>2r^Ug9Htk;+wpIZ^EgA_gm1UAy1QmN_ zvL3;s(G!SgZPWJyL|n&X94GGQ&vRB#F_q=ZE%n0ODp0jF#Hr&1O;i1OzaTO)zz-QH zS1(yvO@U;>Z{T(6`?&kM!J|1T1==6vOiK<%7|NiFy?V{4H%v^A+m7RNRI||$pQkll z-!Xk^v8{DQn4MGVSKKhQAAHhe?RDRT3%T5;xKci;FQ}X=MP)b4l*$Nh$Z7nxLf!7= zuid~1ua8!%Y+VZ`_%CH#p;;Ur%bDo^Jr=y$geZjVT?}ttB6Cg1uLJD@v{=C}ef^aa zv*ECY$_;n$K%KKJE^~n1l9io_QRhUh68L*`c1G%;IrH)NnCsbJCU(N>i#TPt3C95w zg+(yE2_;;lOi?}$OLrstQ)Rp198N&>)p zFmf+%*DBV4UK>0(&+(EXewGL{y`t%EmD(fK%5YJv=#-+Og%g-1kI2ZjQV+rvK*Js$ z)Z?ILNt{iaGK6@O620c2m#47_2K23vSLm^soEz!bvghou!agl*F*zy1d@7x%eT=Gf zuc8#0*g+t%*mcoEfr2>qWf7*u{*Bo;T=Vu*Ho{W+zl#4gx1jd@@!UUch;xjV&LZ2F z<$j;-aOS64{Y&TMgM~ZKvdA761el;rsx$kT_s* zu+cb0I_mpSKB!n&dw5Pg$|pXrxemljWSzg*JO?{3xZ&Zn!bSOJqHART3-XMMyze7+ znn>Vil(7MIne2*Rk^w}(y7hmicobDVtOEz>ne*_ z24zR=>#g2{+5`d{V1Ggn0a6s;qhb7^zt5R=c(Gg=@$#XNEe)c-XF!G~@QGo&27zU< zMBxK>uCRr+<82Q|;*v9chsQmJ3Q1+kt6hf2M?6!XQeB&x&MF>BrQQgWL#5ah^ym|f zJ2B_TzI9J@PFA0K8b;x8H?>^ur0*<+vqyG||GmEMkUb3pA^A4f!7C*WP=A-2SP|mm z!!-IOA&d70oEKP)PCrD+oFXeaM`ZClfyZ!y_O71^RYC zzQ9ijmzS`g2{m{#W$k5NN~`eqvOFKJkOD^l;^0N8&by^I{#RLh{B*yh)E6ffdgx-X z$T6XI#tBlff)Cu0zF z1_1y@lo=K`Rrb+p)~B53fgcHl^hhc`CQqdW-*uQ`i)4NCSykI2VDmb%l5YIv50dP4 zJeNt*4|4w%wEztQ?2uHwW zak2MOvh&zt;)5fhGnIFt8~R0kDsEG_cHC6qZy`>A|JdVf_sn3b(gGe&+5dYyQMZev zj+$=IIRg!6m5AkylLM)p5J}=(e`>j_Uz~=0jdM@M<4+cZVuO~N-G#P`BrEvOEll!t z(Yh9~r>ppPnRlT40E`vp%>t{h#|?N+j#<#FiK+heL0|6 z^?Ari59J4FJUYQpDM>B^b{@EDgHripI%jUCny+j{AH6|2d)U;Rx?kmH+*wx-Y}GXH zS<+34S{>?%Ox67%vA?x1z^lpNmMV+1OR`74-=p#1Ms>{QBd1D6lrxNqtLHTAZMU$G zPBy;{^_b)*3$~htX)AsEx!tvvswMiv$qy|T0_?*eW@q6dbsw$Ns1?E6*^8IwoUN-n zM}r@?{@sULKC_w1DyxuZ_iI-SOgA7Mfs-Cu-YVxlogvQtI(4kzi4~Teao#zoV)*5t zK8HdJ?gf~Y2qu60>MA9SYw2EItWop#((pM^MqG7r-!GCIE(}~I=@E#Xc<5fsCln_c zzFG^xj{?u|XYN)xL#E#KqHe0^fC|TG>Q%i0IRUCR9iOUca7NPxxsTkwx4V#y@(u^l zE?`QEIipg&n$8Xk-MN8G0#wUis`SbF7M?;@3l^K+jRP?h9D?$~a9*SJW2^nonU5;< zJRIdCE!6y2n7lK59!k9Rg5o1wmMsH}Ox$6~a+Wb>oDgZJ>cCS@!1BDr09 z_aqC7YLv3|7AA{?fWCVr!vlj_Q6uK;Ote=pN`GA#PqUs5h;o&;u(1Q0WUy%QQkuZMG$ZXwYMB9ZP-#aolJ%VDq>BSu-A>@?%{FXwRImG zj}Y%Xp5jAB6HxU6 zJhRA@fXF$U(2z_xMmzquUR~(e34^KpVrPCamOaY*?3YS|0UHe%YiR4+=tR?*CR&Z} zVUP;D+4@I6Ou+KJ`6w3;mIC|%fZ)p%cv{`CkRjI!+f0Vjrsm4h;O2z?3wuS1++Z9= ze1Iqy>?9xQE07Sk8tGat!=l}q>Z?oq)Ak-Krfh zBz4$UTzNP@1JIo1x5tBmoTv{wI-9Sez8qNYUGgaE*UCelyJe-~fajjlDZukKo;vE? z;6hdp9Go_W_ZjUXn zsVz`@_%Pu?NFF7hkr!GSJqh5<=$Qd9X-OoE_{Jo^-5+ilrHLj{-8$~wYqD>?|Z2KG)8%Am_;BUzXWtTxb+nHtR5R*IA~KG zZvF-kHB0(Rs!CRp95PWji=Th_%b6}5IwxHJcjyc`U!L9S2#va5lsl@04ptBe11Ba@ zLP;GS6~_JM8DOHrwQ7s5WEXmeV@eRv2V4=peg$4RJjS2&rf%JXBwW7*Nj}(;Y2>e( zCQ@EI`fJ6688CkvYf)lN1F=Ri{IuqhlK-SP43Mc1ns zu;3v2ID>djWZZvUA=gUQuw)7=Yg^-q9qsCE1IvU7#$|c?55sJ1WbYKzuueHd9_F%u zLNQ1;pZ{CnTglWGY#OP`5b^26G`3!QkW!y#@-~Lc1FZOt7E#xc-l~OK&AUoCLqYSdx1dn}=5l~k9#Z=I zA6(E_khfcVpRrT62%ce7hpaaz5kZYaiF7Uak7wLq4Nd z$|4j8`GL9WPZGv)#z-pyHXDG4c1h8u7ub01p9r ziB<61{w(xO*U{vqTVin<91Kd<>)-^eclv6)|EtfbKk;BzQf zF8}Y~Vd&A?;fSF#iSL`7CCKM#n!t*ki-daHhsh}|mB&q_6fEs=my3jdQFL9TFammD zh8v|zp7a?zJY16Ir^6qA`>ekoxIf&w0kO957eCVFyn7$_O(HA@#KEcW5%>TKfUq1) zCTn$<+e?VigQ8%OW|e#>4B+h7a7X6^S*_|5*}fQ}p{ZN_`sm=9zpFvqgpgu}uU8J1 zHv#K1(`K+dkshhz=bStqk^QyB# zrK6NYl;(~YKfN|DwD-0v)b{P+ghn`+Wv#EE6cIOcGVPrbC`s4%jf%(prSzzt>e;q$ z=gZYAu>SVMON&SER5&+!iXSW2LiW*-^+ddl(*0#wS{8Y;u3D> zjV9JDFYj=0#XHAI{DR?$^Q?^QLb2mWoS?{J8q8<~I?yb(4~-rA20YL33xb`?JK4@X z+2!BE&ER%%a?+1WXL{t1#cAcpS#Mq_>Q_$Q?(DFZcPT>-oxuOxUmxK(=S;)H+(asP225 zF7QZ4|9$Ec)b+vj1tDpp(H3ly2d^=;SFLWRjVMg1xD>9sU$RKTSTadD5zBfoTjlQO zkY*AlSr|P+Lzx)QD{Uv#8V8oq{$J3`X5f44I{*WhvVxxgZD(g#?$jo!IgQ};>_*v* znY^`rv_RkEh6*E zxu|&)%xQqzjkp2l|GOX{9sv`Q(bTObwY@#O5WDirP6YXgG&)b1hh{MOwrx8DNe|z^ ztUijiZYf{f^T-7Te}pX{#j>-@TIK~^PF#{)is$ZeLLH%CIw^aAJX1!=UkU;s5CjOo zu?B~J-uGbOR8$CTV%gcvKgXNZjrkXr)N-K*p?nddPWHKM@fa|df+?s{q(CJX=*LmU zgifUdIQjQclb2JO`;U9=6;dUuBb>ou3usfL_I7rInj4uu4$)?gMXx1v6xTq=4j77zGM)D9RG9uk2R0;Puhqh}_ibYEJ%j zORef?-;lQ+iIH>n%4)Y8bpQ(ON8@|n-%+f*>x~y)&4V$+$QDWJWcb?ViC)1N9GM-? z{175zBfR8RIKKACC3Y^WNQJUHQFc~%`ulg;_uZh&jt!7s`mf|?o)3-456`_X3&o`` zZetosPnv$fPgL)~2)vx~pW(TF=u;l7;-`b#9TuJA0;z9Aob-FbY$qK0nWB4O1O&zt;q@xA54+C){%TUtF(2tdn*0X5NM`WC~-c_z;b0>N4e)=>CZm}oNY zWWIEihYV17lgGn%p51Mlp{SdQ|G?1ew_*Dq#P8Mimj6&ub-Bwc`bYL2a`A{2b-#o& zqlfdMyzBa13#E2mvl}p54&=IkOsB4H7Z;mDYrfEBPYc_Hmk1^ky3bJge1K@CNg zXF!q6=RCciv}XkwC2$b~5C#uw=lIm;=`A*G@ubP3XY|703juTj{~T%=+RI^14nkBe zcZE<@&KSf_my5xM9Sk20l>ROE=QE<@_W-+womQ95J1$8T92c^pp`h1j!67Uwj>(p* zliLC!1DIVj7*S=T$ieHHtOeYO{a#u;c zG+?tpuMmus-A;Yy$+VX=ronB&o$KWC^uw@=qe@i=TloW&fh^v(6D zJHW-0S@lfUax}o=2Nyjoa7#ggf^*8-mkKj6=sS5>XSqTEdAX4DXR`@{QxeESvs0j* z1(nb%!+=zWcTMVd?Ru@_5G82ipdR@6PKAZ6!(N{)NU=d?FM#HccHW6)pdMsISy$S@ zU#TLaRO5=y6LD2S3O%gphi3s4{1uo8AQHCCHZw=MMLw4$hdb)owh|@sq4E9-PNZ+sL}qu4Hd{gcC$R8ZvtJAo#YktzhaF#7Mp>H{Vp z5b1(4l}CJYoF`Wti|y{RHJvtw9PiKhfDSzMt)GogBP_{fOgVeXh#-&(jKqLeL7&|) z;ikF8y-v7+Nh)1|g67KVyiTtWtQ)LdNrU6lhvT;v^s>@z*`SsHmEP1kmbc5!?p`vs z$$df?J#jzQ933Sk{5~`yH7-mYhrU=&2|2>AQ9QmhxmelrhoVo_cm>MvCHGkWJBhVd zkIIW>ly*6JV`y?@>20|`+zYyyBN*6fr;;3;E)nd?H_4wN$AP+D(Xh3PY}Vl25-+MA z&m`a;K{GVP<0vbjb`Tv!GaCvnEP(~p zs!R^FCaq$oe#v^4LY#P3r%cJPIZ~a%h+C^v!Kc&o|l`_aJiS-^T3rm z+Mk;r24-TpAMN17rWa2o40OEmq!&S6k?8Y_eNvA4?DKPG_(*^xjJxMVXV87vek8xN zmzM4=zv-gzt2ZAO1Y&tca(&Ij5&-j|lVo7)Gr3ek+e`E3s)e86<=Yu(zvR6<{VJFI z1MWl4job$Qz^F1FVRQ>XDf8`Dd)qvA+s=&~t00JzfEfcPds8nC)~jdCC{hbXlW4`l zd?n5fAQfWP>ukjfO~`;0tJT<;x$HKEaz~|C(?@U2pcS=ZdZ;r25sj?&IzPK>qZc;ZggS8!IqFM@) zj*)L3Twi{&aph(Skh;LdLu`81XkV6e6akLh?X%ymDLC#U0WF&DwxYa)+5p*ov99^Z zHlF&T=(kZj-x-DKmXzfq?@XisppxtnR4w7>uMkm~mk(Qxu{S>yJ_mESRD3O;8&Ui| z6^atU-*PE?pJ1ivSa8bLE&8b0kDTHo2R-g`JrHMgB1M$ zlez7p();uBmI?Z)`Dm|aGArPxz-mF#VS0%xcYGBUxIs4dp%j(JCUV-^q5PVj^9ff@ zVEHMAgpV})5~$dzUZ{;efz}EgbV*eb<^R0ax{B~?6}h^7mT%myknQp>jKON-)7;tJ zMo66h@jNTbI@TPnSy;EGcT9Njy7H^8@l`~vM7pw85JY|)VE|adDu1fgdd*nZo4tBm zqsIzTgN*K=7fA8{4i&q~@B%ql)9^rGE+mZS1i4tpM3U^y@c$Ti;CevYfF7NCovs;u z9X-XG-CD>`5heMW;+CfKIX)9oxZ-?EEAH-3xlFM}7k@U)I;X93y{M+tr2BFNZ5nj>JaINT!Oc zM|}Km3-CKm=|x4b9n)R`6n(HUb4`I$K`|ylZZV#Q!CaKl-N-qR{q>c*QM_yHgARuo z9H9p3j#sb9Ap$0TDH2V}<~Eqz)ryMX-S2F8xO;F&(;G2et-kMev4$8g4xiRE)&YIp zrA&~|v}KO!GmJ!O;7tQQimzVodi}Pq5xa38{vB@VoxdO-0qG@pV%P77cQL_QfUwuZ zY>*6mA>bm0y9r`>W6k|-8=_6up0?@}a0tMa1<*UhDxnad!F+9%jiqgt=f@|Y>WJAn zo-kCf1#k>B0LY_6LD8r2$1+0bm|?JSz}Pp!)(XgidEdX>$uH@`qnvls@fDFF)AG~5 zukh}pKBfh|z3HIH9H6`D`M`3dJftE`@4r+pkB>V~68}G*z5|@<{{8X;cPd!0i@ zp$N&$u|tJac4j2wSY=Ddo<;VIQi$wXBBac6%txURlAV?R{W*Pq|Lbx+*K_4^&S%{3 zd%W(~{kj+V`Y$%1dj*#-leWBL@2ttE_|fjSZ+%p?0fa8S$MZtyCfL9I7UBRZCUG1+ECz9WSSbOo@OiV!RGX`-H_{oyDJ<&svu! zj{g2cM*Bua%7gs?w)KHhB(mY+(&u}Aer>RC*w7G0Q{G=Y-QF+}U|G{_x)a*;>n%t$ z{!joVQIg)?ThdnIGBQ&q@x%5!bq)=OW}bYQKB9cnO%gheE{>wxM#B_M3-tmahU(PX zuHa1-7=r^a-esd5*Rz?NVgU5PJ(a9}c-_(~8Q+9((xE=Yb&@yd{ zSu}QLH0POeXH4$txedDf=HJAc!QoISN}d&ezy!>6B#;@?>rFQe(;X5He;VY@dGy`4 zzUV|)E;hC_v>5cm+gU&yW*kQD*afRT{o2>?f>?dF=n_8OU3K!7iFQ{Bwxg3-?z?-Y!{M)A z4&)M#@{7?BEIP>rjk0a<5oo^Z3qrGbnclck4hJ5_+>22xvRkT?Dd8tqjn^0WL+Dq_ zUr}La)Dx(6>RufV`tIg!(?BsAb(-x|9ci0@KvKlWJWeSr`T=<}CA23$TC6!Qap&$)*Ni4?z6l`2z^Wu(rO#)wuu7iJtqr=C47s%G4tqJ~8r89#93oobsg{I@&1VOrWO#ez zem_lV2sWB8690~M`f9fcW=7;@Iwan=iu?G5ENnt7-=gD0Wgr8b0KDFVc#e1f^+)D) z@^30BC;%|S71Qq6eH7Kq3@t2>20WyPA&ie-#xE`fhtn)KJsHY@|KPPUDZ)P)^z7CcQJh8J;RmTqlps@SMC>gj5@0YBWhg(=0!jn5{ z1j*+&$rRkaI4gCo?HS6&kC#Q8eu?|C$?n4D-#C-c9Z{^J5S4c(I7~(y<|i1WD#HtU zd79KCsXLuZlFC1#VuAJVGq9|;e~_DHoEJ*x-}7@;6%K+t=^$X`Ox*}Sb`{~!LhTDK zlADL;6YCX@x?#t(Bk+PjzYB1W!TI$cr+)+rI5kWh2z$|6q^p3sHk5K8s0Wn|{6KTs z{eJdrU22+JV4zFI5x>bmTfr8O^?Mrocl%2CWnG}DpH8;@{d;?K^yl`3zy1!>2_5u@ z3P{uEz&mVlyEkl+E$8+2*(49F!HdKpJMIVPzk-!%CGJ%c?UpOM`8g;zGjs$Bzo>HJ zjL{D6_MK~qUTmUi_TN-Po|&kV%P7Y_ekp}}5_!cKLs48T`=PaOHjeqIZ3*Q&*a7iI zhrd5i+bGFHJ4OC9CA*XRtFGz!A*KDT67U;4sBPW6k)Mr?qF~d(ZN9Jay8P zxa{#mEj|2{RfNKXHvPE>9fgWehJ8*-Y)A$VMhac0Tp*K3E$N{0ClHpsd_%O*R^Tc@ zye4U{?5>~%9BLT6m|R}5IM}fG)1ma2@aXsj!gNPpXmWFHK-tZl39h2m)8xKBhktK0 z@ouvL`7f%yl_Xtb&6JV>Oufi}7MC{Ka-VMZI>}s>8g6v`nF@=z@k>-7I=8aE4h!T6 znEI1!WQK;RH$PU0z#Pof#cr&Bwo?TqGC+E?)xH!$hO3#o= z^~;Wli_{L815=@N4?l~lEz?eXS$IN6e*98hw&G70n;MM_pMce~yPRK^3A$tKxuLS# zW(*2WhpsBJTn|(HyYrXdLPat1Cf3PF50fgLB(3+s>r3UzwHNVd7MIKe#7MN{ryz6<8=Vc#(9W9u#&huJD6}^i zj;j4m&{9sk&Zx!!%W2`L`b{3}pZ;+;ewu%I7Jx_C1~a*=8^ZyM-V-}b4eNTni{i?AhwE#cmURi94W#0s8QgNFK@ws4hWK& zFHKcZ%qFxv)Ul2K>$fe~-dQHrCrgc;&yQnpm9M@UAl7lY z$D*qMW_lr@*PdRtH)Mz(4SD$P+s$#7se*(mwfEZH=lSD`*0h6&$_4PU(HG#p(^Zx; zwAh=RX1QpN0G|vt^EssDl{#9}(!KlrxP5!z?qn~ezw$A^1&RYB<;Z1kzb;w&`>;VB z7PKrKhcDXO2Wg(cK_=M!0>~nyi#N}lA&bBW5U+&$l?f?w(iOJboM8nOcXRpE%~bX>*4%>$w(&+8n2=q&26yK8E^ z+Y{${a&Y?UsWiH8kETmh&c7(eBlCwdUxp1GN)lV{XKv$qM3)K}wnCW;Y(5Rroi=)~ zzSf`jXkrM72i3VqVq|GS^E2wEzn(C~(#2xc_>TD!# zO|QamRsP(!WQi_3RSwjwUVZ6>%0|g7lXfdjRu{>i!=}Hzz3AE5Tavnmd)K0;FPMr> z_4TFF63q)nocX$L#&3NA2kH>3l~!oy1S1vjLO@?qnVvP_rBlYMeZ89NZF)EBVP*SGwSckSu{$4kHf0-^nIpp{L%F85wxG0sAJjU4PO*XOufG&jT~!HYJE<}nm3}0KgY_Ri=wVRr0q5q zHHcB|>&w4(f=@+4d_B!sPO$B*U~8z1#7sV#XD54q&xxVxlNrt`(mAeyVwM&g62C<{ zfloy*T#C;d`rEvh^{Z-V`gB*^;I(`EJytqf724%O%M_GekFI8+XUK5-AAY(5SW>roz3T@?dk)jB;3>)QPa`y9;dvIy>TQ4nLjAd z)p$QvUm69FU4;nvmQTAEN4YCsVVAGhl^Mi&e;UrKs3dgy>Pnm$kd(rQadrbZoF|0x z>wegeE!o}wuQEU4nehEAiED-d8V3j1x23qLs{Ix|9;XDVKg?H)>mIv@f?wGsB_S)< zTAP}6O@0@Nxh+Lq`zk{ozsI^c`StE`+xjyY>e?RZcpCE5Ijr<1DBOd*>4oR1aKAic z(ZO$K>Ht1SYJk76a^oy$f-)3x8A#C2Hdi_A{j3_;WZ$T}Zg?Cv3?|#Eqd!!9+|wba z%~Zo(V%ZkNfxuy5rs^%r&aKKnmU5>T-wag~c^#v@+^WvY{5hb8S0zm{y~bIqgR2Y^ zoBsP!r)2`^lIsVhgA%l@>S7kjU206Az5u$x z+nXp`QJta&UtwjX9LYnupnNvj!6V_ z=Hkt3-p)$9HyH6~Y#D|=ltW>BNw(rr+O}LD;V?&KGYRH)@xpprg04Q6qwEEe? z==wSg1xV_O!*vC#F5zD-l?QGt3^q(v=iru@0QdFI;-LtRL{)(fH!IEW-@k(ZtvEvy z^Z3B@Z|rR3gd56FL6HBR1e#1#Os{C(l| zx61YDvcR<6jRMl_!`~v-NsNx1BDNuuvI0Jns-u1L2Wt7+H zs`hJJR;xzJdjDoc-|_eHkq~7tUWAZ@_{Vqe4hQp|aXK``&0ADHCb}N(fP%m&@Xi)6 zKP^T+2r@_t=_;+yM54`)KdQ9=j&Oe(6> znGY?gg$FL-N~yazDc|*>Ib=Chc=#Cfomk#KU(13hy=@Oi4&Rw-DaYI6B&(kO-E>*8 zTSya@5rQTTP>vyagtJ~D4NL5kZQoa6L&xvQOBtkXsPO(cw&zGnaXFDx9*3_ zsr0Zp9A?@A`Am&eRyXtcty&$;er&1FR08JO#cWdskp&?5*UllRgm#b7D zt3`qOk;o50Nx(%#0tFIdFed}sLS1Df8@jy`{+vn(x+YxwJzKs5#2NvYfK?_HBA*=T zkWvT*`fGTgbxq3@N?n*_@lLPS8!)~T-vVOdK-fBKmFldN;1yk5{LvS7(y$R!4iwgX ze=aw+T%r&jOJ(yp8Sc!KFe{jsg@#20O&>n>iQ4;k6m!Bx`xtw$?VZwh z55MWRH}no%*kq*ad+ZfgA!1>BC!9$|QC%+tx^GaXm_N*LcZ;5>8X=4DYN-sJ`k7-e zCS^VA4~B=GB~zotqtBmRWQd!U+;3BlV)to%5bge$GosJ|2G?Nu#qw_9D^pN$S@IH! zY>f_pSroeze;LlS&ExREG*@5rkzF(+3Uwo@j=jCT5VbX8Vd52T8$`{Zw+1K*EQ%67 z^Hd7D+b|PSo!$6Ax+v%`sA9nUFws+&BWczfap|!4c^V-o0Hsq+@5!1*;R6UIkeiX+ zZl_&0@BbKZX>%4R%VQcd-XD5Z=i-UQlT2>Ex>Xs^U$#k$h3eS)`WX39U$V&G*Df7F zt#Mb4y?T-h{(L6mpIe7zIxyY~I0F&D=(Gwj6sPy|fh|wSYBV2I}v3 ze_g|h{FNra<$8~WhOp>nJA(R`sbC<#Uh01wFI{U0qh#PZ&w$=r787)}kYdZ7~B zDyyd%EC*wK7$&1szzcOYxDJUW>H%k*bYKUe^w+Yd!(2k)KsCQ}4)n!uh@kwKi2Q+Y zexXk6x3_tp85z#I#FrS6%cUsWcCCh0i#j5lVYO-H-ko51wa)mhWPcNHzx}ML2loJZ z_@95EYlz!V>uZ0)%_JN;4u}{%`M<~t!BsP{Z7)kk&?d!9LbUY^dC>9?ba*`0z!3V& zAP59um(-3aqtXP)2oRBEk3rr`R#~`MJ?rti=xtVj90}W+CJ$?|Ha5S(IrucehQJ># zW|&Y085{ZH$_(fS`~Hjz7{63xy{cHbi*FV@lr<%p=*6=1voA@1Cg6KM^QR{SI29p& z5Au!xSi>XBDImcPDrS@$~f zO#f#Eiwu#(neo22xjXs(=}_>hBAXPU;QR)qjZpW1PCT$sZH=bp=P5zIjlek#)u&Ea z`~|(Pxp01O;*z&AkVWV+R!!?N3KZ4Dm<3nmj+8ljsBh(*VX z3&WDSpLW~m9)HOTp<8|=%}59tcDfwgLn!ahH~GH*%p%I`*4%DO*amAT6f#D2>(#`nV3VO2pVlALX> z{)RZY%)`LzVUkc8qpIiO(X#V*aZ5kF`=Xoioo@qPwj-iqn>I{Tkm}((&;5(QSc(*8 zDUa@VC-{Cv7^tP%n9cpx?I1+2<-yL}Z^$yQnz7U_KJdK`Lf|E7$Q*=UjiC#E$4s-5 z2HGbp)92`~G$^Rgp6s;NWG0(n=ZSMx>L0<#3c`|EcN4bxQOTI?hJ}{$z0znpW@UU7 z!=^`~!7nb#w#SoB9B*&SRnGYOyc9v+X)_dqNF*JhJmPwlUu&g+TKLlmjKU<7orm51 zoOkD@Wu#lx%ZO*44*R?;3}@B9_jBqjnv7{i2v%ZbvCRs1RO)_2T{;@C|51kL(!N=x zW{yVL#jmGOs(R}`{JVFFbRqj$hqd}z?*5c^Q3!-E7t$C;GI#NcQzF@uvbam&1_7sp zy*uD?!PH0YM4RN7IvQN~nebA=+X~Q(SnIR;Ngc^33?2M+ymrXH)8b^!F_ytr6Y0#g z;yc`wltJm*%@!LjKMa#nFQdfp-VlFsda=>|GeIG2kfamDrL zU1y5a8#qxu+?DX*TrN&0&1d!|D87j^$RWX|9Q_x_ZFVA}{l=HK3R#be@zJke$6Cc@ z-Nsslg>yKSQa3!+h;0A`3ljTRIoLrQsV()r8WiY)`B}o7Z)`?XpxUl9V=fxigh)@gTS@Us|0|^8 zcyyfz$@18+YBiVzAV2^XT20+>qos-l&ET_WO7qRPLnYvEcDO1=9=$C!SN*D{;(@bM z6J(96iuIE%@U8Kap_wZ=EgEPnF}$bdeARyhF6aTdQOQa{V2_T!c?CstzsS{>!#)*9u_5DRG%F|IBhBYXrxY(X<&Wf!sGI8b5+aZ2-5jqB zBZUJ3xZpe4Aj$(^4x{jd+lyPi$oE|Dc%DI1>IpaWmkyw1_+ESMgIk41urtiB-r;R0 zrgz}-W<>w}IgXC@>lmv6+&lBADZ7u&>l}?b{c-sGfg}IkPg^Q@A@~M8!^hjkaf;+J zJCEtz07E-kTk6;vqgDXC9H@$2IXhn70#S4l`~g#D#l=^MRYrsSXGXR_o9U+F=}0oj zPC|scmt|sA`r#}&V@PFPSa?qEU7-`#-*NkPQhUSOg{0GjSOEG2^1VP01195#3TS{r zv;py)9}9&J(P&1}qE?vE%@dM1fC)=OLvW|zd^Gw3A@O6OB(rB2P3RZ6J$ygc&6kQJ zBtA}kD9^x%b!rNN0>~!74+M0q%0Yk`5&i`LrzUflf&)kbPzvBjxM%y&7MR4qH8PQ| z(JuV4u@`S>ed*<2>Z^HK^sD_~QP5WkF_L5HByd721|fmKr>g03?whumvfUE3ayCka z2ctd*qzZrvK(Rr0FsIb9Ivd^??Y}$+%^*0_YCdZZFYR@D*Y7KE@7NN-DT$^GlW^~gZ z{QJaksuC)C0cuf%Bm`NFtr0h64KCnb)={G8H=yvVuRpn7=bu)1&&Q|rb`=>47J%!3 z71mk)GdY#n+m+vMRqjXEvBT4Q&unU2@?nh=x>G>BQ19#eb@rkyJ7l52%oB>F?^sz5EC=K3Ir8u6&BZrWXZA`X4pfmn(=nG=1o)P5Nqpga!Zg_* zfzBaM+R3fBA$bOQ59+Ke^2fFyUk3G=E9XOJ{4QW?-(uQ#DmW&JD{$QAYdp*L!;y zoO!2n_Hg!ht9l1^_iPvc%It@JpRI3rz6kg0{V%sNP%OIv*>4jagzY-0c7G5{ix=ZD z!5klrJa8}6&460NAuUZyP-*(FEf;t?p-3|CtnB@AaA&IvfXAWh>^%|!Z(qNx8U=O_ zRpVCM5-$u2^4;!SUWk(}YL(mA8dW{Ef0kfpukjFelyi1Ods5s~rS<08Q5=cIcY5}D zIa{!U8|?JfH#`odX>sw+H{uD$O!J2B3SbqZgM$om;mE5ag+-mv;G=htqMr!puBxD1+YwT^E5QS(A| z7tSd-qRD-yDR0V`WvL=+g!xEuCa#`79{-k(?o03dcoY}Db8?okcR{*;`xeE$pVPTS zRff`e#1oDoF>Pil0rd$f^|tjKBNUEolte8|8eYg?vId#|2?<)MLRfl&~{a{lB2_zCzr1aYk1z+~Aho z@czVdT~5Fa~K{r^HKWZ=RwIt2ee8v&Ndqi#P|BZMNWOg(ZiU zN$?&&9N=ijAV(Wk&p$J$t1VdoRo?vKlYq#Bo?IjIN&dK2&xvz~FSML<%K0?E(iFAP z;x2yL(r4%V&xuZHY{8N@6TTYN$G?!A8F0czi1yG{gA!{;~ zKW5+o{Gevw#UjN;y-(IHeENom;I=7s-5bZPNX}{K65Pba(k`_@40Mx2(#i}jr>PLS z_B&}uY>m>cB{{Zcb>b)zWE-Y>Y0GmSz7WtguAHZ|aMZ5&H8 zeZ7;;qUCC)+d__(oE?A%c)S3#?0g;@j}D9X~y##?El>^fkH;U zf;*FuGrbTbi&_y~;qPt^qaCBhB0(;WS=WJ2TrTxqOv9h9g zxE#PpVGrhnv#tqMP(HKV`2eR_$-0u-t1y=gnxc?oTQMNEO*$ze4hyX~%aUB*^g0R+i<6WVGcJ-lCC;>S{xd^0{Y$HUvW6g`uY>BBh5BbLMpeG9pyC67) z=grOCf*9a@3}Qfh)CD)m;$k0n!S#Xi&{TuLON(W_SpN8UlMb=cr?sa^Pzs|XAQZdr#ZJEVj^PX;a;s{r#D}hhB$3Zk;xbA$#k#I*i z+aRn5JvRViw*8!cE$5e?6<-{B1GIx?kdlX_r1naI|9h`no#HUw0yvu_`!|@K1~6d8 zac)`{{P8B@{LlM(xMrza{I1sJs#W!1;8lxO*l(-0Tf=9?ue}xfsrDISE_{}aW@lX~ z1>N>29oysG<27L+;UM=6EtI6PmHy#8I@i6O0$Me4s?@(okH&`8sMoeBDWMu<5M(p+ zCYRxTz4J7~s96quC@$`qVnvF;ebQ+??j$`04iMAc-y`^Y6x7s$!+yBRyjg4H)2@y# z|8nX0{^hM7O!xq$>V`L-W-yEnP!p6-wZ9g+#eC}_)8yQ423DCour2`iK0C0^IeyzG zW@swRxe90?$BrEXzXL}DhEM?b00q@MJCZiH%ll2vDEKiiq$%Lwls3o-|*-WP)8>u8&?B;kLweqsg z�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 diff --git a/src/assets/pdf4.jpg b/src/assets/pdf4.jpg deleted file mode 100644 index 10166e09eb8fd10c134e9d708fb91017baf0d406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50960 zcmXtg1z6MX_x1-AQBY92L1_V{l@bhMbO}{=AF>r3S{H zd#0uS03wop=Cl?kfPcB*sbS^=LDcl5Ut~~P1`C)D!5-W-4xHJ-2c%d|`K^Z#4`501 zlw28`|4Odj^WIR%B?b-@x)PB7Uh5E&sAI>FZG$6ajAC86Ec)K8d*QIko1nW zg?Ss}rxWsw8C1=L`&FZA4H)WSn{VIS9rBu(!b15I0G5YD$^ZphLCYJv;QGE z`N8h{$5H}IeRLnYO?R{%V|3!J?!;(`HVFag_?!8EFxiiP_26*=U*9T(m)f}6tgo4y zIG1WW$JETB<7<{Y<{9qE5txvM-!0U0JxfMRlE5VJXJv zI?|u4qsgt-dy0M8O}5+Y2J6l352VS^U&-#<4GC#>3Z-UQ^3@1?#J8MUrHh)e6sx%* z`5zV80;2avyeYza1Kr}BLX2!P6!=0C_)Lz-NOPCPv+P1l%^Ly=m+Rrzqy7`j|9CR? zQSrn^wea5D=)~4T*|Ce^v|(Y{Hnxhah3{81HMQadh3V4{#ByP+rnMe%otny|br!vo z@_XAY?*7FX6cVr4RK!bMXG@KW?pG`NSFd;TW)J5|p>rB}2c>fRa9pB{p_-bTngD%Y z7FXIqfO>amyX{&xCogH8oQJCF42bsY@IUDSWf=()LA*vEMmMIy^5vo+9RuiJ#{#x4 z+918apVv*tA~;_T_eizQ5;c>KKl8WR}p6a~qdzlA3@^LnO7Mph)*JT;r4kaHPr;%&a*i(D~OJV6Hx7*{#=>sfD8$p&Gtf~Zf{YxKfaVoWTRCq-AYhma!#^)0!tC`wPw84;f zQTvxiKe=J{c5^kSkK^f-$0=}~n9G^*$-+=B{yFTIDLgcYCBU|Z8T$Em+DcajeJe{l zv9?0H8tY4-WIYazuV`A}Io(Y_DDl7QnJ<61g|BBM86%9N`G_tOOytkRpwD)q2m_31~Q=#z*yMQ$ISfkkNaix?icv|rJ?!qdQb&`2E4 zL=+$yR-;#kybVL)¬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 N-BZ7tciZ^&{{Uk>t+(p@52vPTW~%0g>FMri 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 M07*qoM6N<$f>5XTCIA2c diff --git a/src/assets/wenhao.png b/src/assets/wenhao.png deleted file mode 100644 index 34bd8fc3f6333faee52fc90aa992afc4b48c100c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 846 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 u+I65RmF~U(2CCoxh`{0bz9yu)>;C~>1+!{RRN { - if (process.env.VUE_APP_SSO == 'true') { - console.log("-------单点登录开始-------"); - let token = Vue.ls.get(ACCESS_TOKEN); - let st = getUrlParam("ticket"); - let sevice = "http://" + window.location.host + "/"; - if (token) { - loginSuccess(callback); - } else { - if (st) { - validateSt(st, sevice, callback); - } else { - let serviceUrl = encodeURIComponent(sevice); - window.location.href = window._CONFIG['casPrefixUrl'] + "/login?service=" + serviceUrl; - } - } - console.log("-------单点登录结束-------"); - }else{ - callback && callback() - } -}; -const SSO = { - init: init -}; - -function getUrlParam(paraName) { - let url = document.location.toString(); - let arrObj = url.split("?"); - - if (arrObj.length > 1) { - let arrPara = arrObj[1].split("&"); - let arr; - - for (let i = 0; i < arrPara.length; i++) { - arr = arrPara[i].split("="); - - if (arr != null && arr[0] == paraName) { - return arr[1]; - } - } - return ""; - } - else { - return ""; - } -} - -function validateSt(ticket,service,callback){ - let params = { - ticket: ticket, - service:service - }; - store.dispatch('ValidateLogin',params).then(res => { - //this.departConfirm(res) - if(res.success){ - loginSuccess(callback); - }else{ - let sevice = "http://"+window.location.host+"/"; - let serviceUrl = encodeURIComponent(sevice); - window.location.href = window._CONFIG['casPrefixUrl']+"/login?service="+serviceUrl; - } - }).catch((err) => { - console.log(err); - //that.requestFailed(err); - }); -} - -function loginSuccess (callback) { - callback(); -} -export default SSO; \ No newline at end of file diff --git a/src/components/ChartCard.vue b/src/components/ChartCard.vue deleted file mode 100644 index a03b31d..0000000 --- a/src/components/ChartCard.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/Ellipsis/Ellipsis.vue b/src/components/Ellipsis/Ellipsis.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/Ellipsis/index.js b/src/components/Ellipsis/index.js deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/README.md b/src/components/README.md deleted file mode 100644 index aea9f1c..0000000 --- a/src/components/README.md +++ /dev/null @@ -1,43 +0,0 @@ -####1._util包:存放自定义函数 详细见代码注释 -####2.AvatarList:显示头像群并支持tip,用法参考src\views\Home.vue(如下图) -![输入图片说明](https://static.oschina.net/uploads/img/201904/12181253_O0Xi.png "在这里输入图片标题") -####3.chart包:存放各种图表相关的组件,条形图柱形图折线图等等 具体用法参考首页 -####4.countDown包:一个倒计时组件,用法参考home页,简单描述,该组件有3个属性, -target(时间/毫秒数)必填, -format(function,该方法接收一个毫秒数的参数,用于格式化显示当前倒计时时间)非必填, -onEnd倒计时结束触发函数 -![输入图片说明](https://static.oschina.net/uploads/img/201904/12182046_mwqJ.png "在这里输入图片标题") -####5.dict包:数据字典专用,用法参考文件夹下readme文件 -####6.Ellipsis包:字符串截取组件,可以指定字符串的显示长度,并将全部内容显示到tip中,简单使用参考src\views\system\PermissionList.vue -####7.jero包:该包下自定义了很多列表/表单中用到的组件 参考包下readme文件 -####8.jerobiz包:该包下定义了一些业务相关的组件,比如选择用户弹框,根据部门选择用户等等 -####9.layouts+page包:系统页面布局相关组件,比如登陆进去之后页面顶部显示什么,底部显示什么,菜单点击触发多个tab的布局等等 一般情况不需要修改 -####10.menun包:菜单组件,俩个,一个折叠菜单一个正常显示的菜单 -####11.NumberInfo:数字信息显示组件 如下图 -![输入图片说明](https://static.oschina.net/uploads/img/201904/12185858_uvJ5.png "在这里输入图片标题") -####12.online包:该包下封装了online表单的相关组件,用于展示表单各种控件,验证表单等等,相关用法参考readme -####13.setting包:该包下封装了首页风格切换等功能如下图 -![输入图片说明](https://static.oschina.net/uploads/img/201904/12190520_jySG.png "在这里输入图片标题") -####14.table包:一个二次封装的table组件,用于展示列表,参考readme -####15.tools包: -Breadcrumb.vue:面包屑二次封装,支持路由跳转 -DetailList.vue:详情展示用法参考src\views\profile\advanced\Advanced.vue(效果如下图) -![输入图片说明](https://static.oschina.net/uploads/img/201904/12193954_Uar6.png "在这里输入图片标题") -```` -个人认为该页面代码有两点值得学习: -1.vue provide/inject的使用 -2.该页面css定义方式,只定义一个顶层class,其余样式都定义在其下,这样只要顶层class不和别的页面冲突,整个页面的样式都是唯一生效的 -```` -FooterToolBar.vue:fixed定位的底部,通过是否定义内部控件的属性slot="extra"决定是左浮动或是右浮动 -HeaderNotice.vue:首页通知(如下图) -![输入图片说明](https://static.oschina.net/uploads/img/201904/12195340_fPe0.png "在这里输入图片标题") -HeaderInfo.vue:上下文字布局(如下图) -![输入图片说明](https://static.oschina.net/uploads/img/201904/12195638_dG5o.png "在这里输入图片标题") -Logo.vue:首页左上侧的log图 -![输入图片说明](https://static.oschina.net/uploads/img/201904/12200908_ihv3.png "在这里输入图片标题") -UserMenu.vue:首页右上侧的内容 -![输入图片说明](https://static.oschina.net/uploads/img/201904/12201226_laQK.png "在这里输入图片标题") -####16.trend包 趋势显示组件(如下图) -![输入图片说明](https://static.oschina.net/uploads/img/201904/12201600_Wo8K.png "在这里输入图片标题") -![corn表达式](https://oscimg.oschina.net/oscnet/661f9ac09016395f9f49286143af3241623.jpg) -![corn控件添加清除按钮](https://oscimg.oschina.net/oscnet/15096e49f2e29bd829e304d56770025d03c.jpg) \ No newline at end of file diff --git a/src/components/_util/Area.js b/src/components/_util/Area.js deleted file mode 100644 index 89cba1f..0000000 --- a/src/components/_util/Area.js +++ /dev/null @@ -1,79 +0,0 @@ -import { pcaa } from 'area-data' - -/** - * 省市区 - */ -export default class Area { - /** - * 构造器 - * @param express - */ - constructor() { - let arr = [] - const province = pcaa['86'] - Object.keys(province).map(key=>{ - arr.push({id:key, text:province[key], pid:'86'}); - const city = pcaa[key]; - Object.keys(city).map(key2=>{ - arr.push({id:key2, text:city[key2], pid:key}); - const qu = pcaa[key2]; - Object.keys(qu).map(key3=>{ - arr.push({id:key3, text:qu[key3], pid:key2}); - }) - }) - }) - this.all = arr; - } - - get pca(){ - return this.all; - } - - getCode(text){ - if(!text || text.length==0){ - return '' - } - for(let item of this.all){ - if(item.text === text){ - return item.id; - } - } - } - - getText(code){ - if(!code || code.length==0){ - return '' - } - let arr = [] - this.getAreaBycode(code,arr); - return arr.join('/') - } - - getRealCode(code){ - let arr = [] - this.getPcode(code, arr) - return arr; - } - - getPcode(id, arr){ - for(let item of this.all){ - if(item.id === id){ - arr.unshift(id) - if(item.pid != '86'){ - this.getPcode(item.pid,arr) - } - } - } - } - - getAreaBycode(code,arr){ - //console.log("this.all.length",this.all) - for(let item of this.all){ - if(item.id === code){ - arr.unshift(item.text); - this.getAreaBycode(item.pid,arr) - } - } - } - -} \ No newline at end of file diff --git a/src/components/_util/StringUtil.js b/src/components/_util/StringUtil.js deleted file mode 100644 index 3f52598..0000000 --- a/src/components/_util/StringUtil.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * 获取字符串的长度ascii长度为1 中文长度为2 - * @param str - * @returns {number} - */ -export const getStrFullLength = (str = '') => - str.split('').reduce((pre, cur) => { - const charCode = cur.charCodeAt(0) - if (charCode >= 0 && charCode <= 128) { - return pre + 1 - } - return pre + 2 - }, 0) - -/** - * 给定一个字符串和一个长度,将此字符串按指定长度截取 - * @param str - * @param maxLength - * @returns {string} - */ -export const cutStrByFullLength = (str = '', maxLength) => { - let showLength = 0 - return str.split('').reduce((pre, cur) => { - const charCode = cur.charCodeAt(0) - if (charCode >= 0 && charCode <= 128) { - showLength += 1 - } else { - showLength += 2 - } - if (showLength <= maxLength) { - return pre + cur - } - return pre - }, '') -} \ No newline at end of file diff --git a/src/components/_util/util.js b/src/components/_util/util.js deleted file mode 100644 index 98752a9..0000000 --- a/src/components/_util/util.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * components util - */ - -/** - * 清理空值,对象 - * @param children - * @returns {*[]} - */ -export function filterEmpty (children = []) { - return children.filter(c => c.tag || (c.text && c.text.trim() !== '')) -} \ No newline at end of file diff --git a/src/components/chart/AreaChartTy.vue b/src/components/chart/AreaChartTy.vue deleted file mode 100644 index 3d201e7..0000000 --- a/src/components/chart/AreaChartTy.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/Bar.vue b/src/components/chart/Bar.vue deleted file mode 100644 index 52832d4..0000000 --- a/src/components/chart/Bar.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/chart/BarAndLine.vue b/src/components/chart/BarAndLine.vue deleted file mode 100644 index 549a31c..0000000 --- a/src/components/chart/BarAndLine.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/chart/BarMultid.vue b/src/components/chart/BarMultid.vue deleted file mode 100644 index 029a5d2..0000000 --- a/src/components/chart/BarMultid.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/DashChartDemo.vue b/src/components/chart/DashChartDemo.vue deleted file mode 100644 index c2ebf08..0000000 --- a/src/components/chart/DashChartDemo.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/src/components/chart/IndexBar.vue b/src/components/chart/IndexBar.vue deleted file mode 100644 index 2e44d96..0000000 --- a/src/components/chart/IndexBar.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/chart/LineChartMultid.vue b/src/components/chart/LineChartMultid.vue deleted file mode 100644 index 90698f4..0000000 --- a/src/components/chart/LineChartMultid.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/Liquid.vue b/src/components/chart/Liquid.vue deleted file mode 100644 index 85e5b61..0000000 --- a/src/components/chart/Liquid.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/MiniArea.vue b/src/components/chart/MiniArea.vue deleted file mode 100644 index 97c8ff7..0000000 --- a/src/components/chart/MiniArea.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/MiniBar.vue b/src/components/chart/MiniBar.vue deleted file mode 100644 index 9dd6bca..0000000 --- a/src/components/chart/MiniBar.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/MiniProgress.vue b/src/components/chart/MiniProgress.vue deleted file mode 100644 index e666828..0000000 --- a/src/components/chart/MiniProgress.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/Pie.vue b/src/components/chart/Pie.vue deleted file mode 100644 index 750e203..0000000 --- a/src/components/chart/Pie.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/chart/README.md b/src/components/chart/README.md deleted file mode 100644 index 9aacf09..0000000 --- a/src/components/chart/README.md +++ /dev/null @@ -1,367 +0,0 @@ -# 报表组件文档 - -## 柱状图 - -##### 引用方式 - -```js -import Bar from '@/components/chart/Bar' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|------------| -| title | string | | 报表标题 | -| dataSource | array | ✔️ | 报表数据源 | -| height | number | | 报表高度,默认254 | - -##### dataSource 示例 - -```json -[ - { - "x": "1月", - "y": 320 - }, - { - "x": "2月", - "y": 457 - }, - { - "x": "3月", - "y": 182 - } -] -``` - -##### 代码示例 - -```html - - - - - -``` - -## 多列柱状图 - -##### 引用方式 - -```js -import BarMultid from '@/components/chart/BarMultid' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|------------| -| title | string | | 报表标题 | -| fields | array | | 主列字段列表 | -| dataSource | array | | 报表数据源 | -| height | number | | 报表高度,默认254 | - -##### fields 示例 - -```json -["Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.", "Jul.", "Aug."] -``` - -##### dataSource 示例 - -```json -[ - { - "type": "jero", // 列名 - "Jan.": 18.9, - "Feb.": 28.8, - "Mar.": 39.3, - "Apr.": 81.4, - "May": 47, - "Jun.": 20.3, - "Jul.": 24, - "Aug.": 35.6 - }, - { - "type": "jeroTwo", - "Jan.": 12.4, - "Feb.": 23.2, - "Mar.": 34.5, - "Apr.": 99.7, - "May": 52.6, - "Jun.": 35.5, - "Jul.": 37.4, - "Aug.": 42.4 - } -] -``` - -## 迷你柱状图 - -不带标题和数据轴的柱状图 - -##### 引用方式 - -```js -import MiniBar from '@/components/chart/MiniBar' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|---------------| -| width | number | | 报表宽度度,默认自适应宽度 | -| height | number | | 报表高度,默认200 | -| dataSource | array | | 报表数据源 | - -##### dataSource 示例 - -```json -[ - { - "x": "1月", - "y": 320 - }, - { - "x": "2月", - "y": 457 - }, - { - "x": "3月", - "y": 182 - } -] -``` - -## 面积图 - -##### 引用方式 - -```js -import AreaChartTy from '@/components/chart/AreaChartTy' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|------------| -| title | string | | 报表标题 | -| dataSource | array | ✔️ | 报表数据源 | -| height | number | | 报表高度,默认254 | -| lineSize | number | | 线的粗细,默认2 | - -##### dataSource 示例 - -```json -[ - { - "x": "1月", - "y": 320 - }, - { - "x": "2月", - "y": 457 - }, - { - "x": "3月", - "y": 182 - } -] -``` - -## 多行折线图 - -##### 引用方式 - -```js -import LineChartMultid from '@/components/chart/LineChartMultid' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|------------| -| title | string | | 报表标题 | -| fields | array | | 主列字段列表 | -| dataSource | array | | 报表数据源 | -| height | number | | 报表高度,默认254 | - -##### fields 示例 - -```json -["jero", "jeroTwo"] -``` - -##### dataSource 示例 - -```json -[ - { - "type": "Jan", // 列名 - "jero": 7, - "jeroTwo": 3.9 - }, - { "type": "Feb", "jero": 6.9, "jeroTwo": 4.2 }, - { "type": "Mar", "jero": 9.5, "jeroTwo": 5.7 }, - { "type": "Apr", "jero": 14.5, "jeroTwo": 8.5 }, - { "type": "May", "jero": 18.4, "jeroTwo": 11.9 }, - { "type": "Jun", "jero": 21.5, "jeroTwo": 15.2 }, - { "type": "Jul", "jero": 25.2, "jeroTwo": 17 }, - { "type": "Aug", "jero": 26.5, "jeroTwo": 16.6 }, - { "type": "Sep", "jero": 23.3, "jeroTwo": 14.2 }, - { "type": "Oct", "jero": 18.3, "jeroTwo": 10.3 }, - { "type": "Nov", "jero": 13.9, "jeroTwo": 6.6 }, - { "type": "Dec", "jero": 9.6, "jeroTwo": 4.8 } -] -``` - -## 饼状图 - -##### 引用方式 - -```js -import Pie from '@/components/chart/Pie' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|------------| -| dataSource | array | | 报表数据源 | -| height | number | | 报表高度,默认254 | - -##### dataSource 示例 - -```json -[ - // 所有的 percent 相加等于 100 - { "item": "一月", "percent": 40 }, - { "item": "二月", "percent": 21 }, - { "item": "三月", "percent": 17 }, - { "item": "四月", "percent": 13 }, - { "item": "五月", "percent": 9 } -] -``` - -## 雷达图 - -##### 引用方式 - -```js -import Radar from '@/components/chart/Radar' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|------------| -| dataSource | array | | 报表数据源 | -| height | number | | 报表高度,默认254 | - -##### dataSource 示例 - -```json -[ - // score 最小值为 0,最大值为 100 - { "item": "一月", "score": 40 }, - { "item": "二月", "score": 20 }, - { "item": "三月", "score": 67 }, - { "item": "四月", "score": 43 }, - { "item": "五月", "score": 90 } -] -``` - -## 进度条 - -##### 引用方式 - -```js -import MiniProgress from '@/components/chart/MiniProgress' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|------------|--------|----|-------------------| -| percentage | number | | 当前进度百分比,默认0,最高100 | -| target | number | | 目标值,默认10 | -| height | number | | 进度条高度,默认10 | -| color | string | | 进度条颜色,默认 #13C2C2 | - -## 仪表盘 - -##### 引用方式 - -```js -import DashChartDemo from '@/components/chart/DashChartDemo' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|--------|--------|----|----------------| -| title | string | | 报表标题 | -| value | number | | 当前值,默认6.7,最大为9 | -| height | number | | 报表高度,默认254 | - -## 排名列表 - -##### 引用方式 - -```js -import RankList from '@/components/chart/RankList' -``` - -##### 参数列表 - -| 参数名 | 类型 | 必填 | 说明 | -|--------|--------|----|--------------| -| title | string | | 报表标题 | -| list | array | | 排名列表数据 | -| height | number | | 报表高度,默认自适应高度 | - -##### list 示例 - -```json -[ - { - "name": "北京朝阳 1 号店", - "total": 1981 - }, - { "name": "北京朝阳 2 号店", "total": 1359 }, - { "name": "北京朝阳 3 号店", "total": 1354 }, - { "name": "北京朝阳 4 号店", "total": 263 }, - { "name": "北京朝阳 5 号店", "total": 446 }, - { "name": "北京朝阳 6 号店", "total": 796 } -] -``` \ No newline at end of file diff --git a/src/components/chart/Radar.vue b/src/components/chart/Radar.vue deleted file mode 100644 index b7b30b0..0000000 --- a/src/components/chart/Radar.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/RankList.vue b/src/components/chart/RankList.vue deleted file mode 100644 index f5d68fe..0000000 --- a/src/components/chart/RankList.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/StackBar.vue b/src/components/chart/StackBar.vue deleted file mode 100644 index 01b566f..0000000 --- a/src/components/chart/StackBar.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/chart/TransferBar.vue b/src/components/chart/TransferBar.vue deleted file mode 100644 index bb953e9..0000000 --- a/src/components/chart/TransferBar.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/chart/Trend.vue b/src/components/chart/Trend.vue deleted file mode 100644 index 1ca1deb..0000000 --- a/src/components/chart/Trend.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/chart/chart.less b/src/components/chart/chart.less deleted file mode 100644 index e04fa09..0000000 --- a/src/components/chart/chart.less +++ /dev/null @@ -1,13 +0,0 @@ -.antv-chart-mini { - position: relative; - width: 100%; - - .chart-wrapper { - position: absolute; - bottom: -28px; - width: 100%; - -/* margin: 0 -5px; - overflow: hidden;*/ - } -} \ No newline at end of file diff --git a/src/components/chart/mixins/ChartMixins.js b/src/components/chart/mixins/ChartMixins.js deleted file mode 100644 index f99c0bd..0000000 --- a/src/components/chart/mixins/ChartMixins.js +++ /dev/null @@ -1,10 +0,0 @@ -export const ChartEventMixins = { - methods: { - handleClick(event, chart) { - this.handleEvent('click', event, chart) - }, - handleEvent(eventName, event, chart) { - this.$emit(eventName, event, chart) - }, - } -} \ No newline at end of file diff --git a/src/components/dict/JDictSelectTag.vue b/src/components/dict/JDictSelectTag.vue deleted file mode 100644 index 78a01d3..0000000 --- a/src/components/dict/JDictSelectTag.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/dict/JDictSelectUtil.js b/src/components/dict/JDictSelectUtil.js deleted file mode 100644 index a735f3f..0000000 --- a/src/components/dict/JDictSelectUtil.js +++ /dev/null @@ -1,147 +0,0 @@ -/** - * 字典 util - * author: scott - * date: 20190109 - */ - -import {ajaxGetDictItems,getDictItemsFromCache} from '@/api/api' -import {getAction} from '@/api/manage' - -/** - * 获取字典数组 - * @param dictCode 字典Code - * @return List - */ -export async function initDictOptions(dictCode) { - if (!dictCode) { - return '字典Code不能为空!'; - } - //优先从缓存中读取字典配置 - if(getDictItemsFromCache(dictCode)){ - let res = {} - res.result = getDictItemsFromCache(dictCode); - res.success = true; - return res; - } - //获取字典数组 - let res = await ajaxGetDictItems(dictCode); - return res; -} - -/** - * 字典值替换文本通用方法 - * @param dictOptions 字典数组 - * @param text 字典值 - * @return String - */ -export function filterDictText(dictOptions, text) { - // --update-begin----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 --- - if (text != null && Array.isArray(dictOptions)) { - let result = [] - // 允许多个逗号分隔,允许传数组对象 - let splitText - if (Array.isArray(text)) { - splitText = text - } else { - splitText = text.toString().trim().split(',') - } - for (let txt of splitText) { - let dictText = txt - for (let dictItem of dictOptions) { - if (txt.toString() === dictItem.value.toString()) { - dictText = (dictItem.text || dictItem.title || dictItem.label) - break - } - } - result.push(dictText) - } - return result.join(',') - } - return text - // --update-end----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 --- -} - -/** - * 字典值替换文本通用方法(多选) - * @param dictOptions 字典数组 - * @param text 字典值 - * @return String - */ -export function filterMultiDictText(dictOptions, text) { - //js “!text” 认为0为空,所以做提前处理 - if(text === 0 || text === '0'){ - if(dictOptions){ - for (let dictItem of dictOptions) { - if (text == dictItem.value) { - return dictItem.text - } - } - } - } - - if(!text || text=='null' || !dictOptions || dictOptions.length==0){ - return "" - } - let re = ""; - text = text.toString() - let arr = text.split(",") - dictOptions.forEach(function (option) { - if(option){ - for(let i=0;i t["value"] == key) - if(item && item.length>0){ - return item[0]["text"] - } - } -} - -/** 通过code获取字典数组 */ -export async function getDictItems(dictCode, params) { - //优先从缓存中读取字典配置 - if(getDictItemsFromCache(dictCode)){ - let desformDictItems = getDictItemsFromCache(dictCode).map(item => ({...item, label: item.text})) - return desformDictItems; - } - - //缓存中没有,就请求后台 - return await ajaxGetDictItems(dictCode, params).then(({success, result}) => { - if (success) { - let res = result.map(item => ({...item, label: item.text})) - console.log('------- 从DB中获取到了字典-------dictCode : ', dictCode, res) - return Promise.resolve(res) - } else { - console.error('getDictItems error: : ', res) - return Promise.resolve([]) - } - }).catch((res) => { - console.error('getDictItems error: ', res) - return Promise.resolve([]) - }) -} \ No newline at end of file diff --git a/src/components/dict/JMultiSelectTag.vue b/src/components/dict/JMultiSelectTag.vue deleted file mode 100644 index 66f9ba9..0000000 --- a/src/components/dict/JMultiSelectTag.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - diff --git a/src/components/dict/JSearchSelectTag.vue b/src/components/dict/JSearchSelectTag.vue deleted file mode 100644 index 077530b..0000000 --- a/src/components/dict/JSearchSelectTag.vue +++ /dev/null @@ -1,246 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/dict/README.md b/src/components/dict/README.md deleted file mode 100644 index 4106df0..0000000 --- a/src/components/dict/README.md +++ /dev/null @@ -1,181 +0,0 @@ -# JDictSelectTag 组件用法 ----- -- 从字典表获取数据,dictCode格式说明: 字典code -```html - -``` - -v-decorator用法: -```html - -``` - -- 从数据库表获取字典数据,dictCode格式说明: 表名,文本字段,取值字段 -```html - -``` - - - -# JDictSelectUtil.js 列表字典函数用法 ----- - -- 第一步: 引入依赖方法 -```html - import {initDictOptions, filterDictText} from '@/components/dict/JDictSelectUtil' -``` - -- 第二步: 在created()初始化方法执行字典配置方法 -```html - //初始化字典配置 - this.initDictConfig(); -``` - -- 第三步: 实现initDictConfig方法,加载列表所需要的字典(列表上有多个字典项,就执行多次initDictOptions方法) - -```html - initDictConfig() { - //初始化字典 - 性别 - initDictOptions('sex').then((res) => { - if (res.success) { - this.sexDictOptions = res.result; - } - }); - }, -``` - -- 第四步: 实现字段的customRender方法 -```html - customRender: (text, record, index) => { - //字典值替换通用方法 - return filterDictText(this.sexDictOptions, text); - } -``` - - -# JMultiSelectTag 多选组件 -下拉/checkbox - -## 参数配置 -| 参数 | 类型 | 必填 |说明| -|--------------|---------|----|---------| -| placeholder |string | | placeholder | -| disabled |Boolean | | 是否禁用 | -| type |string | | 多选类型 select/checkbox 默认是select | -| dictCode |string | | 数据字典编码或者表名,显示字段名,存储字段名拼接而成的字符串,如果提供了options参数 则此参数可不填| -| options |Array | | 多选项,如果dictCode参数未提供,可以设置此参数加载多选项 | - -使用示例 ----- -```vue - - - -``` - -# JSearchSelectTag 字典表的搜索组件 -下拉搜索组件,支持异步加载,异步加载用于大数据量的字典表 - -## 参数配置 -| 参数 | 类型 | 必填 |说明| -|--------------|---------|----|---------| -| placeholder |string | | placeholder | -| disabled |Boolean | | 是否禁用 | -| dict |string | | 表名,显示字段名,存储字段名拼接而成的字符串,如果提供了dictOptions参数 则此参数可不填| -| dictOptions |Array | | 多选项,如果dict参数未提供,可以设置此参数加载多选项 | -| async |Boolean | | 是否支持异步加载,设置成true,则通过输入的内容加载远程数据,否则在本地过滤数据,默认false| - -使用示例 ----- -```vue - - - -``` - diff --git a/src/components/dict/index.js b/src/components/dict/index.js deleted file mode 100644 index 23400a7..0000000 --- a/src/components/dict/index.js +++ /dev/null @@ -1,16 +0,0 @@ -import JDictSelectTag from './JDictSelectTag.vue' -import JMultiSelectTag from './JMultiSelectTag.vue' -import JSearchSelectTag from './JSearchSelectTag.vue' -import { filterMultiDictText,filterDictText,initDictOptions,filterDictTextByCache } from './JDictSelectUtil' - -export default { - install: function (Vue) { - Vue.component('JDictSelectTag',JDictSelectTag); - Vue.component('JMultiSelectTag',JMultiSelectTag); - Vue.component('JSearchSelectTag',JSearchSelectTag); - Vue.prototype.$initDictOptions = (dictCode) => initDictOptions(dictCode) - Vue.prototype.$filterMultiDictText = (dictOptions, text) => filterMultiDictText(dictOptions, text) - Vue.prototype.$filterDictText = (dictOptions, text) => filterDictText(dictOptions, text) - Vue.prototype.$filterDictTextByCache = (...param) => filterDictTextByCache(...param) - } -} \ No newline at end of file diff --git a/src/components/index.less b/src/components/index.less deleted file mode 100644 index d8c97bb..0000000 --- a/src/components/index.less +++ /dev/null @@ -1,4 +0,0 @@ -@import "~ant-design-vue/lib/style/index"; - -// The prefix to use on all css classes from ant-pro. -@ant-pro-prefix : ant-pro; \ No newline at end of file diff --git a/src/components/jero/JAreaLinkage.vue b/src/components/jero/JAreaLinkage.vue deleted file mode 100644 index b46e3ce..0000000 --- a/src/components/jero/JAreaLinkage.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JCategorySelect.vue b/src/components/jero/JCategorySelect.vue deleted file mode 100644 index cab251f..0000000 --- a/src/components/jero/JCategorySelect.vue +++ /dev/null @@ -1,269 +0,0 @@ - - diff --git a/src/components/jero/JCheckbox.vue b/src/components/jero/JCheckbox.vue deleted file mode 100644 index e87f5b5..0000000 --- a/src/components/jero/JCheckbox.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/src/components/jero/JCodeEditor.vue b/src/components/jero/JCodeEditor.vue deleted file mode 100644 index ffdc79f..0000000 --- a/src/components/jero/JCodeEditor.vue +++ /dev/null @@ -1,479 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JCron.vue b/src/components/jero/JCron.vue deleted file mode 100644 index 39c279e..0000000 --- a/src/components/jero/JCron.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - diff --git a/src/components/jero/JDate.vue b/src/components/jero/JDate.vue deleted file mode 100644 index e1bb728..0000000 --- a/src/components/jero/JDate.vue +++ /dev/null @@ -1,160 +0,0 @@ - - diff --git a/src/components/jero/JEditableTable.vue b/src/components/jero/JEditableTable.vue deleted file mode 100644 index 4e0550b..0000000 --- a/src/components/jero/JEditableTable.vue +++ /dev/null @@ -1,3222 +0,0 @@ - - - - - - - - diff --git a/src/components/jero/JEditor.vue b/src/components/jero/JEditor.vue deleted file mode 100644 index 7055907..0000000 --- a/src/components/jero/JEditor.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/jero/JEllipsis.vue b/src/components/jero/JEllipsis.vue deleted file mode 100644 index 2a7404c..0000000 --- a/src/components/jero/JEllipsis.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/src/components/jero/JFormContainer.vue b/src/components/jero/JFormContainer.vue deleted file mode 100644 index 8daf9b2..0000000 --- a/src/components/jero/JFormContainer.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/jero/JImageUpload.vue b/src/components/jero/JImageUpload.vue deleted file mode 100644 index e6e66a5..0000000 --- a/src/components/jero/JImageUpload.vue +++ /dev/null @@ -1,233 +0,0 @@ - - - - - diff --git a/src/components/jero/JImportModal.vue b/src/components/jero/JImportModal.vue deleted file mode 100644 index 0ed7646..0000000 --- a/src/components/jero/JImportModal.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JInput.vue b/src/components/jero/JInput.vue deleted file mode 100644 index 8774ee8..0000000 --- a/src/components/jero/JInput.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JModal/index.vue b/src/components/jero/JModal/index.vue deleted file mode 100644 index 7c6322e..0000000 --- a/src/components/jero/JModal/index.vue +++ /dev/null @@ -1,228 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JPopup.vue b/src/components/jero/JPopup.vue deleted file mode 100644 index 50f0398..0000000 --- a/src/components/jero/JPopup.vue +++ /dev/null @@ -1,221 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/jero/JSelectMultiple.vue b/src/components/jero/JSelectMultiple.vue deleted file mode 100644 index e47804d..0000000 --- a/src/components/jero/JSelectMultiple.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/src/components/jero/JSlider.vue b/src/components/jero/JSlider.vue deleted file mode 100644 index 18fda68..0000000 --- a/src/components/jero/JSlider.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JSuperQuery.vue b/src/components/jero/JSuperQuery.vue deleted file mode 100644 index c751b14..0000000 --- a/src/components/jero/JSuperQuery.vue +++ /dev/null @@ -1,677 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JSwitch.vue b/src/components/jero/JSwitch.vue deleted file mode 100644 index dd15370..0000000 --- a/src/components/jero/JSwitch.vue +++ /dev/null @@ -1,102 +0,0 @@ - - diff --git a/src/components/jero/JTable.vue b/src/components/jero/JTable.vue deleted file mode 100644 index 43c2a1d..0000000 --- a/src/components/jero/JTable.vue +++ /dev/null @@ -1,398 +0,0 @@ - - - - - diff --git a/src/components/jero/JTime.vue b/src/components/jero/JTime.vue deleted file mode 100644 index 0615e8a..0000000 --- a/src/components/jero/JTime.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JTreeDict.vue b/src/components/jero/JTreeDict.vue deleted file mode 100644 index cec5e63..0000000 --- a/src/components/jero/JTreeDict.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/jero/JTreeSelect.vue b/src/components/jero/JTreeSelect.vue deleted file mode 100644 index f68a467..0000000 --- a/src/components/jero/JTreeSelect.vue +++ /dev/null @@ -1,338 +0,0 @@ - - diff --git a/src/components/jero/JTreeTable.vue b/src/components/jero/JTreeTable.vue deleted file mode 100644 index bf14b81..0000000 --- a/src/components/jero/JTreeTable.vue +++ /dev/null @@ -1,180 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/JUpload.vue b/src/components/jero/JUpload.vue deleted file mode 100644 index 7631f7c..0000000 --- a/src/components/jero/JUpload.vue +++ /dev/null @@ -1,295 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/README.md b/src/components/jero/README.md deleted file mode 100644 index e0c22c8..0000000 --- a/src/components/jero/README.md +++ /dev/null @@ -1,512 +0,0 @@ -# JDate 日期组件 使用文档 - -###### 说明: antd-vue日期组件需要用moment中转一下,用起来不是很方便,特二次封装,使用时只需要传字符串即可 -## 参数配置 -| 参数 | 类型 | 必填 |说明| -|--------------|---------|----|---------| -| placeholder |string | | placeholder | -| readOnly | boolean | | true/false 默认false | -| value | string | | 绑定v-model或是v-decorator后不需要设置 | -| showTime | boolean | | 是否展示时间true/false 默认false | -| dateFormat | string | |日期格式 默认'YYYY-MM-DD' 若showTime设置为true则需要将其设置成对应的时间格式(如:YYYY-MM-DD HH:mm:ss) | -| triggerChange | string | |触发组件值改变的事件是否是change,当使用v-decorator时且没有设置decorator的option.trigger为input需要设置该值为true | -使用示例 ----- -1.组件带有v-model的使用方法 -```vue - -``` - -2.组件带有v-decorator的使用方法 - a).设置trigger-change属性为true - ```vue - - ``` - - b).设置decorator的option.trigger为input - ```vue - - ``` - -3.其他使用 -添加style -```vue - -``` -添加placeholder -```vue - -``` -添加readOnly -```vue - -``` - -备注: -script内需引入jdate -```vue - -``` - - - --- - - -# JSuperQuery 高级查询 使用文档 -## 参数配置 -| 参数 | 类型 | 必填 | 说明 | -|--------------|---------|----|----------------------| -| fieldList | array |✔| 需要查询的列集合示例如下,type类型有:date/datetime/string/int/number | -| callback | array | | 回调函数名称(非必须)默认handleSuperQuery | - -fieldList结构示例: -```vue - const superQueryFieldList=[{ - type:"date", - value:"birthday", - text:"生日" - },{ - type:"string", - value:"name", - text:"用户名" - },{ - type:"int", - value:"age", - text:"年龄" - }] -``` -页面代码概述: ----- -1.import之后再components之内声明 -```vue -import JSuperQuery from '@/components/jeecg/JSuperQuery.vue'; - export default { - name: "JeroDemoList", - components: { - JSuperQuery - }, - -``` -2.页面引用 -```vue - - -``` -3.list页面data中需要定义三个属性: -```vue - fieldList:superQueryFieldList, - superQueryFlag:false, - superQueryParams:"" -``` -4.list页面声明回调事件handleSuperQuery(与组件的callback对应即可) -```vue -//高级查询方法 -handleSuperQuery(arg) { - if(!arg){ - this.superQueryParams='' - this.superQueryFlag = false - }else{ - this.superQueryFlag = true - this.superQueryParams=JSON.stringify(arg) - } - this.loadData() -}, -``` -5.改造list页面方法 -```vue - // 获取查询条件 - getQueryParams() { - let sqp = {} - if(this.superQueryParams){ - sqp['superQueryParams']=encodeURI(this.superQueryParams) - } - var param = Object.assign(sqp, this.queryParam, this.isorter); - param.field = this.getQueryField(); - param.pageNo = this.ipagination.current; - param.pageSize = this.ipagination.pageSize; - return filterObj(param); - }, -``` -6.打开弹框调用show方法: -```vue -this.$refs.superQueryModal.show(); -``` - -# JEllipsis 字符串超长截取省略号显示 - -###### 说明: 遇到超长文本展示,通过此标签可以截取省略号显示,鼠标放置会提示全文本 -## 参数配置 -| 参数 | 类型 | 必填 | 说明 | -|--------|---------|----|----------------| -| value |string | 必填 | 字符串文本| -| length | number | 非必填 | 默认25 | -使用示例 ----- -1.组件带有v-model的使用方法 -```vue - - - -# Modal弹框实现最大化功能 - -1.定义modal的宽度: -```vue - -``` -2.自定义modal的title,居右显示切换图标 -```vue - -``` -3.定义toggleScreen事件,用于切换modal宽度 -```vue - toggleScreen(){ - if(this.modaltoggleFlag){ - this.modalWidth = window.innerWidth; - }else{ - this.modalWidth = 800; - } - this.modaltoggleFlag = !this.modaltoggleFlag; - }, -``` -4.data中声明上述用到的属性 -```vue - data () { - return { - modalWidth:800, - modaltoggleFlag:true, -``` - -# 下拉选项滚动错位的解决方法 - -## 问题描述 - -当使用了 `a-modal` 或其他带有滚动条的组件时,使用`a-select`组件并打开下拉框时滚动滚动条,就会导致错位的问题产生。 - -## 解决方法 - -大多数情况下,在 `a-select` 上添加一个 `getPopupContainer` 属性,值为`node => node.parentNode`即可解决。 -但是如果遇到 `a-select` 标签层级过深的情况,可能仍然会显示异常,只需要多加几个`.parentNode` (例:node => node.parentNode.parentNode.parentNode)多尝试几次直到解决问题即可。 - -### 代码示例 - -```html - -``` - -# JAsyncTreeList 异步数列表组件使用说明 - -## 引入组件 - -```js -import JTreeTable from '@/components/jero/JTreeTable' -export default { - components: { JTreeTable } -} -``` - -## 所需参数 - -| 参数 | 类型 | 必填 | 说明 | -|-------------|--------|--------|--------------------------------------------------------------| -| rowKey | String | 非必填 | 表格行 key 的取值,默认为"id" | -| columns | Array | 必填 | 表格列的配置描述,具体见Antd官方文档 | -| url | String | 必填 | 数据查询url | -| childrenUrl | String | 非必填 | 查询子级时的url,若不填则使用url参数查询子级 | -| queryKey | String | 非必填 | 根据某个字段查询,如果传递 id 就根据 id 查询,默认为parentId | -| queryParams | Object | 非必填 | 查询参数,当查询参数改变的时候会自动重新查询,默认为{} | -| topValue | String | 非必填 | 查询顶级时的值,如果顶级为0,则传0,默认为null | -| tableProps | Object | 非必填 | 自定义给内部table绑定的props | - -## 代码示例 - -```html - - - -``` - -# JCheckbox 使用文档 - -###### 说明: antd-vue checkbox组件处理的是数组,用起来不是很方便,特二次封装,使用时只需处理字符串即可 -## 参数配置 -| 参数 | 类型 | 必填 |说明| -|--------------|---------|----|---------| -| options |array |✔| checkbox需要配置的项,是个数组,数组中每个对象包含两个属性:label(用于显示)和value(用于存储) | - -使用示例 ----- -```vue - - - -``` - -# JCodeEditor 使用文档 - -###### 说明: 一个简易版的代码编辑器,支持语法高亮 -## 参数配置 -| 参数 | 类型 | 必填 |说明| -|--------------|---------|----|---------| -| language |string | | 表示当前编写代码的类型 javascript/html/css/sql | -| placeholder |string | | placeholder | -| lineNumbers |Boolean | | 是否显示行号 | -| fullScreen |Boolean | | 是否显示全屏按钮 | -| zIndex |string | | 全屏以后的z-index | - -使用示例 ----- -```vue - - - -``` - -# JFormContainer 使用文档 - -###### 说明: 暂用于表单禁用 - -使用示例 ----- -```vue - - - - - - -``` - -# JImportModal 使用文档 - -###### 说明: 用于列表页面导入excel功能 - -使用示例 ----- -```vue - - - - -``` - -# JSelectMultiple 多选下拉组件 -online用 实际开发请使用components/dict/JMultiSelectTag - -# JSlider 滑块验证码 - -使用示例 ----- -```vue - - - -``` - - -# JTreeSelect 树形下拉组件 -异步加载的树形下拉组件 - -## 参数配置 -| 参数 | 类型 | 必填 |说明| -|--------------|---------|----|---------| -| placeholder |string | | placeholder | -| dict |string | ✔| 表名,显示字段名,存储字段名拼接的字符串 | -| pidField |string | ✔| 父ID的字段名 | -| pidValue |string | | 根节点父ID的值 默认'0' 不可以设置为空,如果想使用此组件,而数据库根节点父ID为空,请修改之 | -| multiple |boolean | |是否支持多选 | - -使用示例 ----- -```vue - - - -``` - - diff --git a/src/components/jero/README_JEditableTable.md b/src/components/jero/README_JEditableTable.md deleted file mode 100644 index 4bfa596..0000000 --- a/src/components/jero/README_JEditableTable.md +++ /dev/null @@ -1,577 +0,0 @@ -# JEditableTable 帮助文档 - -## 参数配置 - -| 参数 | 类型 | 必填 | 说明 | -|--------------|---------|------|---------------------------------------------------------------------------------| -| columns | array | ✔️ | 表格列的配置描述,具体项见下表 | -| dataSource | array | ✔️ | 表格数据 | -| loading | boolean | | 是否正在加载,加载中不会显示任何行,默认false | -| actionButton | boolean | | 是否显示操作按钮,包括"新增"、"删除",默认false | -| rowNumber | boolean | | 是否显示行号,默认false | -| rowSelection | boolean | | 是否可选择行,默认false | -| dragSort | boolean | | 是否可拖动排序,默认false | -| dragSortKey | string | | 拖动排序存储的Key,无需定义在columns内也能在getValues()时获取到值,默认orderNum | -| maxHeight | number | | 设定最大高度(px),默认400 | -| disabledRows | object | | 设定禁用的行,被禁用的行无法被选择和编辑,配置方法可以查看示例 | -| disabled | boolean | | 是否禁用所有行,默认false | - -### columns 参数详解 - -| 参数 | 类型 | 必填 | 说明 | -|---------------|---------|------|--------------------------------------------------------------------------------------------------------------------------------------------------------| -| title | string | ✔️ | 表格列头显示的问题 | -| key | string | ✔️ | 列数据在数据项中对应的 key,必须是唯一的 | -| type | string | ✔️ | 表单的类型,可以通过`JEditableTableUtil.FormTypes`赋值 | -| width | string | | 列的宽度,可以是百分比,也可以是`px`或其他单位,建议设置为百分比,且每一列的宽度加起来不应超过100%,否则可能会不能达到预期的效果。留空会自动计算百分比 | -| placeholder | string | | 表单预期值的提示信息,可以使用`${...}`变量替换文本(详见`${...} 变量使用方式`) | -| defaultValue | string | | 默认值,在新增一行时生效 | -| validateRules | array | | 表单验证规则,配置方式见[validateRules 配置规则](#validaterules-配置规则) | -| props | object | | 设置添加给表单元素的自定义属性,例如:`props:{title: 'show title'}` | -| disabled | boolean | | 是否禁用当前列,默认false | - -#### 当 type=checkbox 时所需的参数 - -| 参数 | 类型 | 必填 | 说明 | -|----------------|---------|------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| defaultChecked | boolean | | 默认值是否选中 | -| customValue | array | | 自定义值,checkbox需要的是boolean值,如果数据是其他值(例如`'Y' or 'N'`)时,就会导致错误,所以提供了该属性进行转换,例:`customValue: ['Y','N']`,会将`true`转换为`'Y'`,`false`转换为`'N'`,反之亦然 | - -#### 当 type=select 时所需的参数 - -| 参数 | 类型 | 必填 | 说明 | -|------------|---------|------|----------------------------------------------------| -| options | array | ✔️ | 下拉选项列表,详见下表 | -| allowInput | boolean | | 是否允许用户输入内容,并创建新的内容 | -| dictCode | String | | 数据字典Code,若options也有值,则拼接在options后面 | - -##### options 所需参数 - -| 参数 | 类型 | 必填 | 说明 | -|-----------|------------|------|----------------------------------------------------------------------| -| text | string | ✔️ | 显示标题 | -| value | string | ✔️ | 真实值 | -| ~~title~~ | ~~string~~ | | ~~显示标题(已废弃,若同时填写了 title 和 text 那么优先使用 text)~~ | - -#### 当 type=upload 时所需的参数 - -| 参数 | 类型 | 必填 | 说明 | -|--------------|---------|------|--------------------------------------------------------------------------------------| -| action | string | ✔️ | 上传文件路径 | -| token | boolean | | 上传的时候是否传递token | -| responseName | string | ✔️ | 若要从上传成功后从response中取出返回的文件名,那么这里填后台返回的包含文件名的字段名 | - -#### 当 type=slot 时所需的参数 - -| 参数 | 类型 | 必填 | 说明 | -|----------|--------|------|------------| -| slotName | string | ✔️ | slot的名称 | - -### validateRules 配置规则 - -`validateRules` 需要的是一个数组,数组里每项都是一个规则,规则是object类型,规则的各个参数如下 - -- `required` 是否必填,可选值为`true`or`false` -- `pattern` 正则表达式验证,只有成功匹配该正则的值才能成功通过验证 -- `handler` 自定义函数校验,使用方法请见[示例五](#示例五) -- `message` 当验证未通过时显示的提示文本,可以使用`${...}`变量替换文本(详见`${...} 变量使用方式`) -- 配置示例请看[示例二](#示例二) - -## 事件 - -| 事件名 | 触发时机 | 参数 | -|-----------------|----------------------------------------------------|--------------------------------------------------| -| added | 当添加行操作完成后触发 | | -| deleted | 当删除行操作完成后触发(批量删除操作只会触发一次) | `deleteIds` 被逻辑删除的id | -| selectRowChange | 当行被选中或取消选中时触发 | `selectedRowIds` 被选中行的id | -| valueChange | 当数据发生改变的时候触发的事件 | `{ type, row, column, value, target }` Event对象 | - -## 方法 - -关于方法的如何调用的问题,请在**FAQ**中查看[方法如何调用](#方法如何调用) - -### initialize - -用于初始化表格(清空表格) - -- `参数:` 无 -- `返回值:` 无 - -### resetScrollTop - -重置滚动条Top位置 - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|--------|--------|------|--------------------------------------------------------------------------------------------------------| -| top | number | | 新top位置,留空则滚动到上次记录的位置,用于解决切换tab选项卡时导致白屏以及自动将滚动条滚动到顶部的问题 | - -- `返回值:` 无 - -### add - -主动添加行,默认情况下,当用户的滚动条已经在底部的时候,会将滚动条固定在底部,即添加后无需用户手动滚动,而会自动滚动到底部 - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|---------------------|---------|------|---------------------------------------------------------------------| -| num | number | | 添加几行,默认为1 | -| forceScrollToBottom | boolean | | 是否在添加后无论用户的滚动条在什么位置都强制滚动到底部,默认为false | - -- `返回值:` 无 - -### removeRows - -主动删除一行或多行 - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|--------|-----------------|------|--------------------------------------------------------------------------------------------| -| id | string 或 array | ✔️ | 被删除行的id。如果要删除一个,可以直接传id,如果要删除多个,需要将多个id封装成一个数组传入 | - -- `返回值:` 无 - -### removeSelectedRows - -主动删除被选中的行 - -- `参数:` 无 -- `返回值:` 无 - -### getValues - -用于获取表格里所有表单的值,可进行表单验证 - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|----------|----------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| -| callback | function | ✔️ | 获取值的回调方法,会传入`error`和`values`两个参数。`error`:未通过验证的数量,当等于`0`时代表验证通过;`values`:获取的值(即使未通过验证该字段也有数据) | -| validate | boolean | | 是否进行表单验证,默认为`true`,设为`false`则代表忽略表单验证 | -| rowIds | array | | 默认返回所有行的数据,如果传入了`rowIds`,那么就会只返回与该`rowIds`相匹配的数据,如果没有匹配的数据,就会返回空数组 | - -- `返回值:` 无 - - -### getValuesSync - -`getValues`的同步版,会直接将获取到的数据返回 - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|---------|--------|------|------------------------| -| options | object | | 选项,详见下方所需参数 | - -- - `options` 所需参数 - -| 参数名 | 类型 | 必填 | 说明 | -|----------|---------|------|----------------------------------------------------------------------------------------------------------------------| -| validate | boolean | | 是否进行表单验证,默认为`true`,设为`false`则代表忽略表单验证 | -| rowIds | array | | 默认返回所有行的数据,如果传入了`rowIds`,那么就会只返回与该`rowIds`相匹配的数据,如果没有匹配的数据,就会返回空数组 | - -- `返回值:` object - - `error` 未通过验证的数量,当等于`0`时代表验证通过 - - `values` 获取的值(即使未通过验证该字段也有数据) - -- `使用示例` - -```js -let { error, values } = this.$refs.editableTable.getValuesSync({ validate: true, rowIds: ['rowId1', 'rowId2'] }) -if (error === 0) { - console.log('表单验证通过,数据:', values); -} else { - console.log('未通过表单验证,数据:', values); -} -``` - -### getValuesPromise - -`getValues`的promise版,会在`resolve`中传入获取到的值,会在`reject`中传入失败原因,例如`VALIDATE_NO_PASSED` - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|----------|---------|------|----------------------------------------------------------------------------------------------------------------------| -| validate | boolean | | 同`getValues`的`validate`参数 | -| rowIds | array | | 默认返回所有行的数据,如果传入了`rowIds`,那么就会只返回与该`rowIds`相匹配的数据,如果没有匹配的数据,就会返回空数组 | - -- `返回值:` Promise - -### getDeleteIds - -用于获取被逻辑删除的行的id,返回一个数组,用户可将该数组传入后台,并进行批量删除 - -- `参数:` 无 -- `返回值:` array - -### getAll - -获取所有的数据,包括values、deleteIds -会在`resolve`中传入获取到的值:`{values, deleteIds}` -会在`reject`中传入失败原因,例如`VALIDATE_NO_PASSED` - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|----------|---------|------|-------------------------------| -| validate | boolean | | 同`getValues`的`validate`参数 | - -- `返回值:` Promise - -### setValues - -主动设置表格中某行某列的值 - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|--------|-------|------|------------------------------------------------------------| -| values | array | | 传入一个数组,数组中的每项都是一行的新值,具体见下面的示例 | - -- `返回值:` 无 -- `示例:` - -```js -setValues([ - { - rowKey: id1, // 行的id - values: { // 在这里 values 中的 name 是你 columns 中配置的 key - 'name': 'zhangsan', - 'age': '20' - } - }, - { - rowKey: id2, - values: { - 'name': 'lisi', - 'age': '23' - } - } -]) -``` -### clearSelection - -主动清空选择的行 - -- `参数:` 无 -- `返回值:` 无 - -## 内置插槽 - -| 插槽名 | 说明 | -|--------------|------------------------------------------------------| -| buttonBefore | 在操作按钮的**前面**插入插槽,不受`actionButton`属性的影响 | -| buttonAfter | 在操作按钮的**后面**插入插槽,不受`actionButton`属性的影响 | - -## ${...} 变量使用方式 - -在`placeholder`和`message`这两个属性中可以使用`${...}`变量来替换文本 -在[示例二](#示例二)中,配置了`title`为`名称`的一列,而`placeholder`配置成了`请输入${title}`,那么最终显示效果为`请输入名称` -这就是`${...}`变量的使用方式,在`${}`中可以使用的变量有`title`、`key`、`defaultValue`这三个属性的值 - -## JEditableTableUtil 使用说明 - -在之前配置`columns`时提到过`JEditableTableUtil`这个工具类,那么如果想要知道详细的使用说明就请看这里 - -### export 的常量 - -#### FormTypes - -这是配置`columns.type`时用到的常量值,其中包括 - -- `normal` 默认,直接显示值,不渲染表单 -- `input` 显示输入框 -- `inputNumber` 显示数字输入框 -- `checkbox` 显示多选框 -- `select` 显示选择器(下拉框) -- `date` 日期选择器 -- `datetime` 日期时间选择器 -- `upload` 上传组件(文件域) -- `slot` 自定义插槽 - -### VALIDATE_NO_PASSED - -在判断表单验证是否通过时使用,如果 reject 的值 === VALIDATE_NO_PASSED 则代表表单验证未通过,你可以做相应的其他处理,反之则可能是发生了报错,可以使用 `console.error` 输出 - -### 封装的方法 - -#### validateTables - -当你的页面中存在多个JEditableTable实例的时候,如果要获取每个实例的值、判断表单验证是否通过,就会让代码变得极其冗余、繁琐,于是我们就将该操作封装成了一个函数供你调用,它可以同时获取并验证多个JEditableTable实例的值,只有当所有实例的表单验证都通过后才会返回值,否则将会告诉你具体哪个实例没有通过验证。具体使用方法请看下面的示例 - -- `参数:` - -| 参数名 | 类型 | 必填 | 说明 | -|--------|-------|------|--------------------------------------------------------| -| cases | array | | 传入一个数组,数组中的每项都是一个JEditableTable的实例 | - -- `返回值:` Promise -- `示例:` - -```js -import { validateTables, VALIDATE_NO_PASSED } from '@/utils/JEditableTableUtil' -// 封装cases -let cases = [] -cases.push(this.$refs.editableTable1) -cases.push(this.$refs.editableTable2) -cases.push(this.$refs.editableTable3) -cases.push(this.$refs.editableTable4) -cases.push(this.$refs.editableTable5) -// 同时验证并获取多个实例的值 -validateTables(cases).then((all) => { - // all 是一个数组,每项都对应传入cases的下标,包含values和deleteIds - console.log('所有实例的值:', all) -}).catch((e = {}) => { - // 判断表单验证是否未通过 - if (e.error === VALIDATE_NO_PASSED) { - console.log('未通过验证的实例下标:', e.index) - } else { - console.error('发生异常:', e) - } -}) -``` - -## FAQ - -### 方法如何调用? - -在[示例一](#示例一)中,设定了一个 `ref="editableTable"` 的属性,那么在vue中就可以使用`this.$refs.editableTable`获取到该表格的实例,并调取其中的方法。 -假如我要调取`initialize`方法,就可以这么写:`this.$refs.editableTable.initialize()` - -### 如何获取表单的值? - -使用`getValue`方法进行获取,详见[示例三](#示例三) - -### 如何进行表单验证? - -在获取值的时候默认会进行表单验证操作,用户在输入的时候也会对正在输入的表单进行验证,只要配置好规则就可以了 - -### 如何添加或删除一行? - -该功能已封装到组件中,你只需要将 `actionButton` 设置为 `true` 即可,当然你也可以在代码中主动调用新增方法或修改,具体见上方的方法介绍。 - -### 为什么使用了ATab组件后,切换选项卡会导致白屏或滚动条位置会归零? - -在ATab组件中确实会导致滚动条位置归零,且不会触发`onscroll`方法,所以无法动态加载行,导致白屏的问题出现。 -解决方法是在ATab组件的`onChange`事件触发时执行实例提供的`resetScrollTop()`方法即可,但是需要注意的是:代码主动改变ATab的`activeKey`不会触发`onChange`事件,还需要你手动调用下。 - -- `示例` - -```html - -``` - -```js -/*--- 忽略部分代码片段 ---*/ -methods: { - - /** 切换tab选项卡的时候重置editableTable的滚动条状态 */ - handleChangeTab(key) { - this.$refs[`editableTable${key}`].resetScrollTop() - } - -} -/*--- 忽略部分代码片段 ---*/ -``` - -### slot(自定义插槽)如何使用? - -代码示例请看:[示例四(slot)](#示例四(slot)) - ----------------------------------------------------------------------------------------- - -## 示例一 - -```html - -``` - -## 示例二 - -```js - -import { FormTypes } from '@/utils/JEditableTableUtil' - -/*--- 忽略部分代码片断 ---*/ -columns: [ - { - title: '名称', - key: 'name', - type: FormTypes.input, - placeholder: '请输入${title}', - defaultValue: '称名', - // 表单验证规则 - validateRules: [ - { - required: true, // 必填 - message: '${title}不能为空' // 提示的文本 - }, - { - pattern: /^[a-z|A-Z][a-z|A-Z\d_-]{0,}$/, // 正则 - message: '${title}必须以字母开头,可包含数字、下划线、横杠' - } - ] - }, - { - title: '年龄', - key: 'age', - type: FormTypes.inputNumber, - placeholder: '请输入${title}', - defaultValue: 18, - validateRules: [{required: true, message: '${title}不能为空'}] - } -] -/*--- 忽略部分代码片断 ---*/ -``` - -## 示例三 - -```js -// 获取被逻辑删除的字段id -let deleteIds = this.$refs.editableTable.getDeleteIds(); -// 获取所有表单的值,并进行验证 -this.$refs.editableTable.getValues((error, values) => { - // 错误数 = 0 则代表验证通过 - if (error === 0) { - this.$message.success('验证通过') - // 将通过后的数组提交到后台或自行进行其他处理 - console.log(deleteIds, values) - } else { - this.$message.error('验证未通过') - } -}) -``` - -## 示例四(slot) - -```html - - -``` - -## 示例五 - -```js -// 该示例是自定义函数校验 -columns: [ - { - title: '字段名称', - key: 'dbFieldName', - type: FormTypes.input, - defaultValue: '', - validateRules: [ - { - // 自定义函数校验 handler - handler(type, value, row, column, callback, target) { - // type 触发校验的类型(input、change、blur) - // value 当前校验的值 - // callback(flag, message) 方法必须执行且只能执行一次 - // flag = 是否通过了校验,不填写或者填写 null 代表不进行任何操作 - // message = 提示的类型,默认使用配置的 message - // target 行编辑的实例对象 - - if (type === 'blur') { - - if (value === 'abc') { - callback(false, '${title}不能是abc') // false = 未通过,可以跟自定义提示 - return - } - - let { values } = target.getValuesSync({ validate: false }) - let count = 0 - for (let val of values) { - if (val['dbFieldName'] === value) { - if (++count >= 2) { - callback(false, '${title}不能重复') - return - } - } - } - callback(true) // true = 通过验证 - } else { - callback() // 不填写或者填写 null 代表不进行任何操作 - } - }, - message: '${title}默认提示' - } - ] - }, -] -``` \ No newline at end of file diff --git a/src/components/jero/README_JPopup.md b/src/components/jero/README_JPopup.md deleted file mode 100644 index 0b454a6..0000000 --- a/src/components/jero/README_JPopup.md +++ /dev/null @@ -1,65 +0,0 @@ -# JPopup 弹窗选择组件 - -## 参数配置 -| 参数 | 类型 | 必填 |说明| -|--------------|---------|----|---------| -| placeholder |string | | placeholder | -| code |string | | online报表编码 | -| orgFields |string | | online报表中显示的列,多个以逗号隔开 | -| destFields |string | | 回调对象的属性,多个以逗号隔开,其顺序和orgFields一一对应 | -| field |string | | v-model模式专用,表示从destFields中选择一个属性的值返回给当前组件 | -| triggerChange |Boolean | | v-decorator模式下需设置成true | -| callback(事件) |function | | 回调事件,v-decorator模式下用到,用于设置form控件的值 | - -使用示例 ----- -```vue - - - diff --git a/src/components/jero/index.js b/src/components/jero/index.js deleted file mode 100644 index 7508509..0000000 --- a/src/components/jero/index.js +++ /dev/null @@ -1,59 +0,0 @@ -import JModal from './JModal' -import JFormContainer from './JFormContainer.vue' -import JPopup from './JPopup.vue' -import JCodeEditor from './JCodeEditor.vue' -import JEditor from './JEditor.vue' -import JEditableTable from './JEditableTable.vue' -import JAreaLinkage from './JAreaLinkage.vue' -import JSuperQuery from './JSuperQuery.vue' -import JUpload from './JUpload.vue' -import JTreeSelect from './JTreeSelect.vue' -import JCategorySelect from './JCategorySelect.vue' -import JImageUpload from './JImageUpload.vue' -import JImportModal from './JImportModal.vue' -import JTreeDict from './JTreeDict.vue' -import JCheckbox from './JCheckbox.vue' -import JCron from './JCron.vue' -import JDate from './JDate.vue' -import JEllipsis from './JEllipsis.vue' -import JInput from './JInput.vue' -import JPopupOnlReport from './modal/JPopupOnlReport.vue' -import JFilePop from './minipop/JFilePop.vue' -import JInputPop from './minipop/JInputPop.vue' -import JSelectMultiple from './JSelectMultiple.vue' -import JSlider from './JSlider.vue' -import JSwitch from './JSwitch.vue' -import JTime from './JTime.vue' -import JTreeTable from './JTreeTable.vue' - -export default { - install(Vue) { - Vue.component(JModal.name, JModal) - Vue.component('JPopupOnlReport', JPopupOnlReport) - Vue.component('JFilePop', JFilePop) - Vue.component('JInputPop', JInputPop) - Vue.component('JAreaLinkage', JAreaLinkage) - Vue.component('JCategorySelect', JCategorySelect) - Vue.component('JCheckbox', JCheckbox) - Vue.component('JCodeEditor', JCodeEditor) - Vue.component('JCron', JCron) - Vue.component('JDate', JDate) - Vue.component('JEditableTable', JEditableTable) - Vue.component('JEditor', JEditor) - Vue.component('JEllipsis', JEllipsis) - Vue.component('JFormContainer', JFormContainer) - Vue.component('JImageUpload', JImageUpload) - Vue.component('JImportModal', JImportModal) - Vue.component('JInput', JInput) - Vue.component('JPopup', JPopup) - Vue.component('JSelectMultiple', JSelectMultiple) - Vue.component('JSlider', JSlider) - Vue.component('JSuperQuery', JSuperQuery) - Vue.component('JSwitch', JSwitch) - Vue.component('JTime', JTime) - Vue.component('JTreeDict', JTreeDict) - Vue.component('JTreeSelect', JTreeSelect) - Vue.component('JTreeTable', JTreeTable) - Vue.component('JUpload', JUpload) - } -} \ No newline at end of file diff --git a/src/components/jero/minipop/JFilePop.vue b/src/components/jero/minipop/JFilePop.vue deleted file mode 100644 index 0f5350f..0000000 --- a/src/components/jero/minipop/JFilePop.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/minipop/JInputPop.vue b/src/components/jero/minipop/JInputPop.vue deleted file mode 100644 index 1f6a6d7..0000000 --- a/src/components/jero/minipop/JInputPop.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/jero/modal/JCronModal.vue b/src/components/jero/modal/JCronModal.vue deleted file mode 100644 index c336189..0000000 --- a/src/components/jero/modal/JCronModal.vue +++ /dev/null @@ -1,928 +0,0 @@ - - - - - diff --git a/src/components/jero/modal/JPopupOnlReport.vue b/src/components/jero/modal/JPopupOnlReport.vue deleted file mode 100644 index 38e7a00..0000000 --- a/src/components/jero/modal/JPopupOnlReport.vue +++ /dev/null @@ -1,395 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/layouts/BasicLayout.vue b/src/components/layouts/BasicLayout.vue deleted file mode 100644 index 65b40cd..0000000 --- a/src/components/layouts/BasicLayout.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/layouts/BlankLayout.vue b/src/components/layouts/BlankLayout.vue deleted file mode 100644 index 90c0399..0000000 --- a/src/components/layouts/BlankLayout.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/layouts/IframeFReportView.vue b/src/components/layouts/IframeFReportView.vue deleted file mode 100644 index c51e5b1..0000000 --- a/src/components/layouts/IframeFReportView.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/layouts/IframePageView.vue b/src/components/layouts/IframePageView.vue deleted file mode 100644 index 5043442..0000000 --- a/src/components/layouts/IframePageView.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/layouts/PageView.vue b/src/components/layouts/PageView.vue deleted file mode 100644 index fc330a0..0000000 --- a/src/components/layouts/PageView.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/layouts/RouteView.vue b/src/components/layouts/RouteView.vue deleted file mode 100644 index 73237de..0000000 --- a/src/components/layouts/RouteView.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/layouts/TabLayout.vue b/src/components/layouts/TabLayout.vue deleted file mode 100644 index ebdcf94..0000000 --- a/src/components/layouts/TabLayout.vue +++ /dev/null @@ -1,428 +0,0 @@ - - - - - diff --git a/src/components/layouts/UserLayout.vue b/src/components/layouts/UserLayout.vue deleted file mode 100644 index 71b0790..0000000 --- a/src/components/layouts/UserLayout.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/layouts/index.js b/src/components/layouts/index.js deleted file mode 100644 index 7cf0f77..0000000 --- a/src/components/layouts/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import UserLayout from '@/components/layouts/UserLayout' -import BlankLayout from '@/components/layouts/BlankLayout' -import BasicLayout from '@/components/layouts/BasicLayout' -import RouteView from '@/components/layouts/RouteView' -import PageView from '@/components/layouts/PageView' -import TabLayout from '@/components/layouts/TabLayout' - -export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView, TabLayout } \ No newline at end of file diff --git a/src/components/lazy_antd.js b/src/components/lazy_antd.js deleted file mode 100644 index f5b338c..0000000 --- a/src/components/lazy_antd.js +++ /dev/null @@ -1,124 +0,0 @@ -/** - * 按需加载antd组件 - */ -import Vue from 'vue' - -// base library -import { - ConfigProvider, - Layout, - Input, - InputNumber, - Button, - Switch, - Radio, - Checkbox, - Select, - Card, - Form, - Row, - Col, - Modal, - Table, - Tabs, - Icon, - Badge, - Popover, - Dropdown, - List, - Avatar, - Breadcrumb, - Steps, - Spin, - Menu, - Drawer, - Tooltip, - Alert, - Tag, - Divider, - DatePicker, - TimePicker, - Upload, - Progress, - Skeleton, - Popconfirm, - PageHeader, - Result, - Statistic, - Descriptions, - message, - notification, - Empty, - Tree, - TreeSelect, - Carousel, - Pagination, - FormModel, - Cascader, - Slider, - Transfer, - Rate -} from 'ant-design-vue' -import Viser from 'viser-vue' - -Vue.use(ConfigProvider) -Vue.use(Layout) -Vue.use(Input) -Vue.use(InputNumber) -Vue.use(Button) -Vue.use(Switch) -Vue.use(Radio) -Vue.use(Checkbox) -Vue.use(Select) -Vue.use(Card) -Vue.use(Form) -Vue.use(Row) -Vue.use(Col) -Vue.use(Modal) -Vue.use(Table) -Vue.use(Tabs) -Vue.use(Icon) -Vue.use(Badge) -Vue.use(Popover) -Vue.use(Dropdown) -Vue.use(List) -Vue.use(Avatar) -Vue.use(Breadcrumb) -Vue.use(Steps) -Vue.use(Spin) -Vue.use(Menu) -Vue.use(Drawer) -Vue.use(Tooltip) -Vue.use(Alert) -Vue.use(Tag) -Vue.use(Divider) -Vue.use(DatePicker) -Vue.use(TimePicker) -Vue.use(Upload) -Vue.use(Progress) -Vue.use(Skeleton) -Vue.use(Popconfirm) -Vue.use(PageHeader) -Vue.use(Result) -Vue.use(Statistic) -Vue.use(Descriptions) -Vue.use(Empty) -Vue.use(Tree) -Vue.use(TreeSelect) -Vue.use(Carousel) -Vue.use(Pagination) -Vue.use(FormModel) -Vue.use(Cascader) -Vue.use(Slider) -Vue.use(Transfer) -Vue.use(Rate) - -Vue.prototype.$confirm = Modal.confirm -Vue.prototype.$message = message -Vue.prototype.$notification = notification -Vue.prototype.$info = Modal.info -Vue.prototype.$success = Modal.success -Vue.prototype.$error = Modal.error -Vue.prototype.$warning = Modal.warning - -process.env.NODE_ENV !== 'production' && console.warn('[jero-boot-vue] NOTICE: Antd use lazy-load.') \ No newline at end of file diff --git a/src/components/menu/Contextmenu.vue b/src/components/menu/Contextmenu.vue deleted file mode 100644 index f88f7b4..0000000 --- a/src/components/menu/Contextmenu.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - diff --git a/src/components/menu/SideMenu.vue b/src/components/menu/SideMenu.vue deleted file mode 100644 index c920136..0000000 --- a/src/components/menu/SideMenu.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - diff --git a/src/components/menu/index.js b/src/components/menu/index.js deleted file mode 100644 index 2710d3b..0000000 --- a/src/components/menu/index.js +++ /dev/null @@ -1,188 +0,0 @@ -import Menu from 'ant-design-vue/es/menu' -import Icon from 'ant-design-vue/es/icon' - -const { Item, SubMenu } = Menu - -export default { - name: 'SMenu', - props: { - menu: { - type: Array, - required: true - }, - theme: { - type: String, - required: false, - default: 'dark' - }, - mode: { - type: String, - required: false, - default: 'inline' - }, - collapsed: { - type: Boolean, - required: false, - default: false - } - }, - data () { - return { - openKeys: [], - selectedKeys: [], - cachedOpenKeys: [] - } - }, - computed: { - rootSubmenuKeys: vm => { - const keys = [] - vm.menu.forEach(item => keys.push(item.path)) - return keys - } - }, - mounted () { - this.updateMenu() - }, - watch: { - collapsed (val) { - if (val) { - this.cachedOpenKeys = this.openKeys.concat() - this.openKeys = [] - } else { - this.openKeys = this.cachedOpenKeys - } - }, - $route: function () { - this.updateMenu() - } - }, - methods: { - // select menu item - onOpenChange (openKeys) { - - // 在水平模式下时执行,并且不再执行后续 - if (this.mode === 'horizontal') { - this.openKeys = openKeys - return - } - // 非水平模式时 - const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) - if (!this.rootSubmenuKeys.includes(latestOpenKey)) { - this.openKeys = openKeys - } else { - this.openKeys = latestOpenKey ? [latestOpenKey] : [] - } - }, - updateMenu () { - const routes = this.$route.matched.concat() - const { hidden } = this.$route.meta - if (routes.length >= 3 && hidden) { - routes.pop() - this.selectedKeys = [routes[routes.length - 1].path] - } else { - this.selectedKeys = [routes.pop().path] - } - const openKeys = [] - if (this.mode === 'inline') { - routes.forEach(item => { - openKeys.push(item.path) - }) - } - //update-begin-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 - if(!this.selectedKeys || this.selectedKeys[0].indexOf(":")<0){ - this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) - } - //update-end-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 - }, - - // render - renderItem (menu) { - if (!menu.hidden) { - return menu.children && !menu.alwaysShow ? this.renderSubMenu(menu) : this.renderMenuItem(menu) - } - return null - }, - renderMenuItem (menu) { - const target = menu.meta.target || null - const tag = target && 'a' || 'router-link' - let props = { to: { name: menu.name } } - if(menu.route && menu.route === '0'){ - props = { to: { path: menu.path } } - } - - const attrs = { href: menu.path, target: menu.meta.target } - - if (menu.children && menu.alwaysShow) { - // 把有子菜单的 并且 父菜单是要隐藏子菜单的 - // 都给子菜单增加一个 hidden 属性 - // 用来给刷新页面时, selectedKeys 做控制用 - menu.children.forEach(item => { - item.meta = Object.assign(item.meta, { hidden: true }) - }) - } - - return ( - - - {this.renderIcon(menu.meta.icon)} - {menu.meta.title} - - - ) - }, - renderSubMenu (menu) { - const itemArr = [] - if (!menu.alwaysShow) { - menu.children.forEach(item => itemArr.push(this.renderItem(item))) - } - return ( - - - {this.renderIcon(menu.meta.icon)} - {menu.meta.title} - - {itemArr} - - ) - }, - renderIcon (icon) { - if (icon === 'none' || icon === undefined) { - return null - } - const props = {} - typeof (icon) === 'object' ? props.component = icon : props.type = icon - return ( - - ) - } - }, - - render () { - const { mode, theme, menu } = this - const props = { - mode: mode, - theme: theme, - openKeys: this.openKeys - } - const on = { - select: obj => { - this.selectedKeys = obj.selectedKeys - this.$emit('select', obj) - }, - openChange: this.onOpenChange - } - - const menuTree = menu.map(item => { - if (item.hidden) { - return null - } - return this.renderItem(item) - }) - // {...{ props, on: on }} - return ( -

    - {menuTree} - - ) - } -} diff --git a/src/components/page/GlobalFooter.vue b/src/components/page/GlobalFooter.vue deleted file mode 100644 index 48c88cf..0000000 --- a/src/components/page/GlobalFooter.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/page/GlobalHeader.vue b/src/components/page/GlobalHeader.vue deleted file mode 100644 index 74354c7..0000000 --- a/src/components/page/GlobalHeader.vue +++ /dev/null @@ -1,205 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/page/GlobalLayout.vue b/src/components/page/GlobalLayout.vue deleted file mode 100644 index 3743c7f..0000000 --- a/src/components/page/GlobalLayout.vue +++ /dev/null @@ -1,699 +0,0 @@ - - - - - diff --git a/src/components/page/PageHeader.vue b/src/components/page/PageHeader.vue deleted file mode 100644 index f7e86b5..0000000 --- a/src/components/page/PageHeader.vue +++ /dev/null @@ -1,238 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/page/PageLayout.vue b/src/components/page/PageLayout.vue deleted file mode 100644 index 191fd8a..0000000 --- a/src/components/page/PageLayout.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/page/SHeaderNotice.vue b/src/components/page/SHeaderNotice.vue deleted file mode 100644 index 5e874e8..0000000 --- a/src/components/page/SHeaderNotice.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/tools/Breadcrumb.vue b/src/components/tools/Breadcrumb.vue deleted file mode 100644 index 3bd067f..0000000 --- a/src/components/tools/Breadcrumb.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/tools/DetailList.vue b/src/components/tools/DetailList.vue deleted file mode 100644 index bd74971..0000000 --- a/src/components/tools/DetailList.vue +++ /dev/null @@ -1,147 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/tools/DynamicNotice.vue b/src/components/tools/DynamicNotice.vue deleted file mode 100644 index 02cb7fc..0000000 --- a/src/components/tools/DynamicNotice.vue +++ /dev/null @@ -1,36 +0,0 @@ - - \ No newline at end of file diff --git a/src/components/tools/FooterToolBar.vue b/src/components/tools/FooterToolBar.vue deleted file mode 100644 index 63b3c1b..0000000 --- a/src/components/tools/FooterToolBar.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/tools/HeadInfo.vue b/src/components/tools/HeadInfo.vue deleted file mode 100644 index f4f6bbc..0000000 --- a/src/components/tools/HeadInfo.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/tools/HeaderNotice.vue b/src/components/tools/HeaderNotice.vue deleted file mode 100644 index 8a2faca..0000000 --- a/src/components/tools/HeaderNotice.vue +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/components/tools/Logo.vue b/src/components/tools/Logo.vue deleted file mode 100644 index ac19d58..0000000 --- a/src/components/tools/Logo.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/tools/ShowAnnouncement.vue b/src/components/tools/ShowAnnouncement.vue deleted file mode 100644 index b2c6d88..0000000 --- a/src/components/tools/ShowAnnouncement.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - diff --git a/src/components/tools/TwoStepCaptcha.vue b/src/components/tools/TwoStepCaptcha.vue deleted file mode 100644 index 8b4c94d..0000000 --- a/src/components/tools/TwoStepCaptcha.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/tools/UserMenu.vue b/src/components/tools/UserMenu.vue deleted file mode 100644 index a93a7af..0000000 --- a/src/components/tools/UserMenu.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/components/tools/UserPassword.vue b/src/components/tools/UserPassword.vue deleted file mode 100644 index ff2cc79..0000000 --- a/src/components/tools/UserPassword.vue +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - diff --git a/src/components/tools/setting.js b/src/components/tools/setting.js deleted file mode 100644 index fdfc396..0000000 --- a/src/components/tools/setting.js +++ /dev/null @@ -1,95 +0,0 @@ -import { message } from 'ant-design-vue/es'; -// import defaultSettings from '../defaultSettings'; - -let lessNodesAppended; - -const colorList = [ - { - key: '薄暮', color: '#F5222D', - }, - { - key: '火山', color: '#FA541C', - }, - { - key: '日暮', color: '#FAAD14', - }, - { - key: '明青', color: '#13C2C2', - }, - { - key: '极光绿', color: '#52C41A', - }, - { - key: '拂晓蓝(默认)', color: '#1890FF', - }, - { - key: '极客蓝', color: '#2F54EB', - }, - { - key: '酱紫', color: '#722ED1', - }, -]; - -const updateTheme = primaryColor => { - // Don't compile less in production! - /* if (process.env.NODE_ENV === 'production') { - return; - } */ - // Determine if the component is remounted - if (!primaryColor) { - return; - } - const hideMessage = message.loading('正在编译主题!', 0); - console.info(`正在编译主题!`) - function buildIt() { - // 正确的判定less是否已经加载less.modifyVars可用 - if (!window.less || !window.less.modifyVars) { - return; - } - // less.modifyVars可用 - window.less.modifyVars({ - '@primary-color': primaryColor, - }) - .then(() => { - hideMessage(); - }) - .catch(() => { - message.error('Failed to update theme'); - hideMessage(); - }); - } - if (!lessNodesAppended) { - // insert less.js and color.less - const lessStyleNode = document.createElement('link'); - const lessConfigNode = document.createElement('script'); - const lessScriptNode = document.createElement('script'); - lessStyleNode.setAttribute('rel', 'stylesheet/less'); - lessStyleNode.setAttribute('href', __webpack_public_path__ + 'color.less') - lessConfigNode.innerHTML = ` - window.less = { - async: true, - env: 'production', - javascriptEnabled: true - }; - `; - lessScriptNode.src = 'https://gw.alipayobjects.com/os/lib/less.js/3.8.1/less.min.js'; - lessScriptNode.async = true; - lessScriptNode.onload = () => { - buildIt(); - lessScriptNode.onload = null; - }; - document.body.appendChild(lessStyleNode); - document.body.appendChild(lessConfigNode); - document.body.appendChild(lessScriptNode); - lessNodesAppended = true; - } else { - buildIt(); - } -}; - -const updateColorWeak = colorWeak => { - // document.body.className = colorWeak ? 'colorWeak' : ''; - colorWeak ? document.body.classList.add('colorWeak') : document.body.classList.remove('colorWeak') -}; - -export { updateTheme, colorList, updateColorWeak } \ No newline at end of file diff --git a/src/config/index.js b/src/config/index.js deleted file mode 100644 index e69de29..0000000 diff --git a/src/config/router.config.js b/src/config/router.config.js deleted file mode 100644 index 30d3836..0000000 --- a/src/config/router.config.js +++ /dev/null @@ -1,366 +0,0 @@ -import { UserLayout, TabLayout, RouteView, BlankLayout, PageView } from '@/components/layouts' - -/** - * 走菜单,走权限控制 - * @type {[null,null]} - */ -export const asyncRouterMap = [ - - { - path: '/', - name: 'dashboard', - component: TabLayout, - meta: { title: '首页' }, - redirect: '/dashboard/analysis', - children: [ - - // // dashboard - // { - // path: '/dashboard', - // name: 'dashboard', - // redirect: '/dashboard/workplace', - // component: RouteView, - // meta: { title: '仪表盘', icon: 'dashboard', permission: [ 'dashboard' ] }, - // children: [ - // { - // path: '/dashboard/analysis', - // name: 'Analysis', - // component: () => import('@/views/dashboard/Analysis'), - // meta: { title: '分析页', permission: [ 'dashboard' ] } - // }, - // { - // path: '/dashboard/monitor', - // name: 'Monitor', - // hidden: true, - // component: () => import('@/views/dashboard/Monitor'), - // meta: { title: '监控页', permission: [ 'dashboard' ] } - // }, - // { - // path: '/dashboard/workplace', - // name: 'Workplace', - // component: () => import('@/views/dashboard/Workplace'), - // meta: { title: '工作台', permission: [ 'dashboard' ] } - // } - // ] - // }, - // - // // forms - // { - // path: '/form', - // redirect: '/form/basic-form', - // component: PageView, - // meta: { title: '表单页', icon: 'form', permission: [ 'form' ] }, - // children: [ - // { - // path: '/form/base-form', - // name: 'BaseForm', - // component: () => import('@/views/form/BasicForm'), - // meta: { title: '基础表单', permission: [ 'form' ] } - // }, - // { - // path: '/form/step-form', - // name: 'StepForm', - // component: () => import('@/views/form/stepForm/StepForm'), - // meta: { title: '分步表单', permission: [ 'form' ] } - // }, - // { - // path: '/form/advanced-form', - // name: 'AdvanceForm', - // component: () => import('@/views/form/advancedForm/AdvancedForm'), - // meta: { title: '高级表单', permission: [ 'form' ] } - // } - // ] - // }, - // - // // list - // { - // path: '/list', - // name: 'list', - // component: PageView, - // redirect: '/list/query-list', - // meta: { title: '列表页', icon: 'table', permission: [ 'table' ] }, - // children: [ - // { - // path: '/list/query-list', - // name: 'QueryList', - // component: () => import('@/views/list/TableList'), - // meta: { title: '查询表格', permission: [ 'table' ] } - // }, - // { - // path: '/list/edit-table', - // name: 'EditList', - // component: () => import('@/views/list/TableInnerEditList'), - // meta: { title: '内联编辑表格', permission: [ 'table' ] } - // }, - // { - // path: '/list/user-list', - // name: 'UserList', - // component: () => import('@/views/list/UserList'), - // meta: { title: '用户列表', permission: [ 'table' ] } - // }, - // { - // path: '/list/role-list', - // name: 'RoleList', - // component: () => import('@/views/list/RoleList'), - // meta: { title: '角色列表', permission: [ 'table' ] } - // }, - // { - // path: '/list/permission-list', - // name: 'PermissionList', - // component: () => import('@/views/list/PermissionList'), - // meta: { title: '权限列表', permission: [ 'table' ] } - // }, - // { - // path: '/list/basic-list', - // name: 'BasicList', - // component: () => import('@/views/list/StandardList'), - // meta: { title: '标准列表', permission: [ 'table' ] } - // }, - // { - // path: '/list/card', - // name: 'CardList', - // component: () => import('@/views/list/CardList'), - // meta: { title: '卡片列表', permission: [ 'table' ] } - // }, - // { - // path: '/list/search', - // name: 'SearchList', - // component: () => import('@/views/list/search/SearchLayout'), - // redirect: '/list/search/article', - // meta: { title: '搜索列表', permission: [ 'table' ] }, - // children: [ - // { - // path: '/list/search/article', - // name: 'SearchArticles', - // component: () => import('../views/list/TableList'), - // meta: { title: '搜索列表(文章)', permission: [ 'table' ] } - // }, - // { - // path: '/list/search/project', - // name: 'SearchProjects', - // component: () => import('../views/list/TableList'), - // meta: { title: '搜索列表(项目)', permission: [ 'table' ] } - // }, - // { - // path: '/list/search/application', - // name: 'SearchApplications', - // component: () => import('../views/list/TableList'), - // meta: { title: '搜索列表(应用)', permission: [ 'table' ] } - // }, - // ] - // }, - // ] - // }, - // - // // profile - // { - // path: '/profile', - // name: 'profile', - // component: RouteView, - // redirect: '/profile/basic', - // meta: { title: '详情页', icon: 'profile', permission: [ 'profile' ] }, - // children: [ - // { - // path: '/profile/basic', - // name: 'ProfileBasic', - // component: () => import('@/views/profile/basic/Index'), - // meta: { title: '基础详情页', permission: [ 'profile' ] } - // }, - // { - // path: '/profile/advanced', - // name: 'ProfileAdvanced', - // component: () => import('@/views/profile/advanced/Advanced'), - // meta: { title: '高级详情页', permission: [ 'profile' ] } - // } - // ] - // }, - // - // // result - // { - // path: '/result', - // name: 'result', - // component: PageView, - // redirect: '/result/success', - // meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] }, - // children: [ - // { - // path: '/result/success', - // name: 'ResultSuccess', - // component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), - // meta: { title: '成功', hiddenHeaderContent: true, permission: [ 'result' ] } - // }, - // { - // path: '/result/fail', - // name: 'ResultFail', - // component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), - // meta: { title: '失败', hiddenHeaderContent: true, permission: [ 'result' ] } - // } - // ] - // }, - // - // // Exception - // { - // path: '/exception', - // name: 'exception', - // component: RouteView, - // redirect: '/exception/403', - // meta: { title: '异常页', icon: 'warning', permission: [ 'exception' ] }, - // children: [ - // { - // path: '/exception/403', - // name: 'Exception403', - // component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'), - // meta: { title: '403', permission: [ 'exception' ] } - // }, - // { - // path: '/exception/404', - // name: 'Exception404', - // component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'), - // meta: { title: '404', permission: [ 'exception' ] } - // }, - // { - // path: '/exception/500', - // name: 'Exception500', - // component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'), - // meta: { title: '500', permission: [ 'exception' ] } - // } - // ] - // }, - // - // // account - // { - // path: '/account', - // component: RouteView, - // name: 'account', - // meta: { title: '个人页', icon: 'user', keepAlive: true, permission: [ 'user' ] }, - // children: [ - // { - // path: '/account/center', - // name: 'center', - // component: () => import('@/views/account/center/Index'), - // meta: { title: '个人中心', keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings', - // name: 'settings', - // component: () => import('@/views/account/settings/Index'), - // meta: { title: '个人设置', hideHeader: true, keepAlive: true, permission: [ 'user' ] }, - // redirect: '/account/settings/base', - // alwaysShow: true, - // children: [ - // { - // path: '/account/settings/base', - // name: 'BaseSettings', - // component: () => import('@/views/account/settings/BaseSetting'), - // meta: { title: '基本设置', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/security', - // name: 'SecuritySettings', - // component: () => import('@/views/account/settings/Security'), - // meta: { title: '安全设置', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/custom', - // name: 'CustomSettings', - // component: () => import('@/views/account/settings/Custom'), - // meta: { title: '个性化设置', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/binding', - // name: 'BindingSettings', - // component: () => import('@/views/account/settings/Binding'), - // meta: { title: '账户绑定', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // { - // path: '/account/settings/notification', - // name: 'NotificationSettings', - // component: () => import('@/views/account/settings/Notification'), - // meta: { title: '新消息通知', hidden: true, keepAlive: true, permission: [ 'user' ] } - // }, - // ] - // }, - // ] - // } - ] - }, - { - path: '*', redirect: '/404', hidden: true - } -] - -/** - * 基础路由 - * @type { *[] } - */ -export const constantRouterMap = [ - { - path: '/user', - component: UserLayout, - redirect: '/user/login', - hidden: true, - children: [ - { - path: 'login', - name: 'login', - component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login') - }, - { - path: 'register', - name: 'register', - component: () => import(/* webpackChunkName: "user" */ '@/views/user/register/Register') - }, - { - path: 'register-result', - name: 'registerResult', - component: () => import(/* webpackChunkName: "user" */ '@/views/user/register/RegisterResult') - }, - { - path: 'alteration', - name: 'alteration', - component: () => import(/* webpackChunkName: "user" */ '@/views/user/alteration/Alteration') - }, - ] - }, - - // { - // path: '/', - // name: 'index', - // component: TabLayout, - // meta: {title: '首页'}, - // redirect: '/dashboard/workplace', - // children: [ - // { - // path: '/online', - // name: 'online', - // redirect: '/online', - // component: RouteView, - // meta: {title: '在线开发', icon: 'dashboard', permission: ['dashboard']}, - // children: [ - // { - // path: '/online/auto/:code', - // name: 'report', - // component: () => import('@/views/modules/online/cgreport/OnlCgreportAutoList') - // }, - // ] - // }, - // ] - // }, - - { - path: '/test', - component: BlankLayout, - redirect: '/test/home', - children: [ - { - path: 'home', - name: 'TestHome', - component: () => import('@/views/Home') - } - ] - }, - { - path: '/404', - component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404') - }, -] diff --git a/src/defaultSettings.js b/src/defaultSettings.js deleted file mode 100644 index fa2f344..0000000 --- a/src/defaultSettings.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * 项目默认配置项 - * primaryColor - 默认主题色 - * navTheme - sidebar theme ['dark', 'light'] 两种主题 - * colorWeak - 色盲模式 - * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 - * fixedHeader - 固定 Header : boolean - * fixSiderbar - 固定左侧菜单栏 : boolean - * autoHideHeader - 向下滚动时,隐藏 Header : boolean - * contentWidth - 内容区布局: 流式 | 固定 - * - * storageOptions: {} - Vue-ls 插件配置项 (localStorage/sessionStorage) - * - */ - -export default { - primaryColor: '#1890FF', // primary color of ant design - navTheme: 'light', // theme for nav menu - layout: 'topmenu', // nav menu position: sidemenu or topmenu - contentWidth: 'Fixed', // layout of content: Fluid or Fixed, only works when layout is topmenu - fixedHeader: false, // sticky header - fixSiderbar: false, // sticky siderbar - autoHideHeader: false, // auto hide header - colorWeak: false, - multipage: true, //默认多页签模式 - // vue-ls options - storageOptions: { - namespace: 'pro__', // key prefix - name: 'ls', // name variable Vue.[ls] or this.[$ls], - storage: 'local', // storage name session, local, memory - } -} \ No newline at end of file diff --git a/src/icons.js b/src/icons.js deleted file mode 100644 index 7c62954..0000000 --- a/src/icons.js +++ /dev/null @@ -1,15 +0,0 @@ -// src/icons.js - -// export what you need -export { - default as SmileOutline -} from '@ant-design/icons/lib/outline/SmileOutline'; -export { - default as MehOutline -} from '@ant-design/icons/lib/outline/MehOutline'; - -// export what antd other components need -export { - default as CloseOutline -} from '@ant-design/icons/lib/outline/CloseOutline'; -// and other icons... \ No newline at end of file diff --git a/src/main.js b/src/main.js deleted file mode 100644 index 5183022..0000000 --- a/src/main.js +++ /dev/null @@ -1,84 +0,0 @@ -/** init domain config */ -import './config' - -import Vue from 'vue' -import App from './App.vue' -import Storage from 'vue-ls' -import router from './router' -import store from './store/' -import { - VueAxios -} from "@/utils/request" - -import Antd, { version } from 'ant-design-vue' -console.log('ant-design-vue version:', version) - -import Viser from 'viser-vue' -import 'ant-design-vue/dist/antd.less'; // or 'ant-design-vue/dist/antd.less' - -import '@/permission' // permission control -import '@/utils/filter' // base filtermybatis-plus -import Print from 'vue-print-nb-jeecg' -/*import '@babel/polyfill'*/ -import preview from 'vue-photo-preview' -import 'vue-photo-preview/dist/skin.css' -import SSO from '@/cas/sso.js' -import { - ACCESS_TOKEN, - DEFAULT_COLOR, - DEFAULT_THEME, - DEFAULT_LAYOUT_MODE, - DEFAULT_COLOR_WEAK, - SIDEBAR_TYPE, - DEFAULT_FIXED_HEADER, - DEFAULT_FIXED_HEADER_HIDDEN, - DEFAULT_FIXED_SIDEMENU, - DEFAULT_CONTENT_WIDTH_TYPE, - DEFAULT_MULTI_PAGE -} from "@/store/mutation-types" -import config from '@/defaultSettings' - -import JDictSelectTag from './components/dict/index.js' -import hasPermission from '@/utils/hasPermission' -import vueBus from '@/utils/vueBus'; -import JeroComponents from '@/components/jero/index' -import '@/assets/less/JAreaLinkage.less' -import VueAreaLinkage from 'vue-area-linkage' - -Vue.config.productionTip = false -Vue.use(Storage, config.storageOptions) -Vue.use(Antd) -Vue.use(VueAxios, router) -Vue.use(Viser) -Vue.use(hasPermission) -Vue.use(JDictSelectTag) -Vue.use(Print) -Vue.use(preview) -Vue.use(vueBus); -Vue.use(JeroComponents); -Vue.use(VueAreaLinkage); - -SSO.init(() => { - main() -}) - -function main() { - new Vue({ - router, - store, - mounted() { - store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true)) - store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme)) - store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout)) - store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader)) - store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar)) - store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth)) - store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader)) - store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak)) - store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor)) - store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN)) - store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, config.multipage)) - }, - render: h => h(App) - }).$mount('#app') -} diff --git a/src/mixins/DisabledAuthFilterMixin.js b/src/mixins/DisabledAuthFilterMixin.js deleted file mode 100644 index 26aca74..0000000 --- a/src/mixins/DisabledAuthFilterMixin.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * - */ -import { disabledAuthFilter } from "@/utils/authFilter" - -export const DisabledAuthFilterMixin = { - props: ['formData'], - data(){ - return { - - } - }, - methods:{ - isDisabledAuth(code){ - return disabledAuthFilter(code,this.formData); - }, - } - -} \ No newline at end of file diff --git a/src/mixins/JEditableTableMixin.js b/src/mixins/JEditableTableMixin.js deleted file mode 100644 index 682e621..0000000 --- a/src/mixins/JEditableTableMixin.js +++ /dev/null @@ -1,182 +0,0 @@ -import JEditableTable from '@/components/jero/JEditableTable' -import { VALIDATE_NO_PASSED, getRefPromise, validateFormAndTables } from '@/utils/JEditableTableUtil' -import { httpAction, getAction } from '@/api/manage' - -export const JEditableTableMixin = { - components: { - JEditableTable - }, - data() { - return { - title: '操作', - visible: false, - form: this.$form.createForm(this), - confirmLoading: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 6 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 18 } - } - } - }, - methods: { - - /** 获取所有的editableTable实例 */ - getAllTable() { - if (!(this.refKeys instanceof Array)) { - throw this.throwNotArray('refKeys') - } - let values = this.refKeys.map(key => getRefPromise(this, key)) - return Promise.all(values) - }, - - /** 遍历所有的JEditableTable实例 */ - eachAllTable(callback) { - // 开始遍历 - this.getAllTable().then(tables => { - tables.forEach((item, index) => { - if (typeof callback === 'function') { - callback(item, index) - } - }) - }) - }, - - /** 当点击新增按钮时调用此方法 */ - add() { - //update-begin-author:lvdandan date:20201113 for:LOWCOD-1049 JEditaTable,子表默认添加一条数据,addDefaultRowNum设置无效 #1930 - return new Promise((resolve) => { - this.tableReset(); - resolve(); - }).then(() => { - // 默认新增空数据 - let rowNum = this.addDefaultRowNum - if (typeof rowNum !== 'number') { - rowNum = 1 - console.warn('由于你没有在 data 中定义 addDefaultRowNum 或 addDefaultRowNum 不是数字,所以默认添加一条空数据,如果不想默认添加空数据,请将定义 addDefaultRowNum 为 0') - } - this.eachAllTable((item) => { - item.add(rowNum) - }) - if (typeof this.addAfter === 'function') this.addAfter(this.model) - this.edit({}) - }) - //update-end-author:lvdandan date:20201113 for:LOWCOD-1049 JEditaTable,子表默认添加一条数据,addDefaultRowNum设置无效 #1930 - }, - /** 当点击了编辑(修改)按钮时调用此方法 */ - edit(record) { - if(record && '{}'!=JSON.stringify(record)){ - this.tableReset(); - } - if (typeof this.editBefore === 'function') this.editBefore(record) - this.visible = true - this.activeKey = this.refKeys[0] - this.form.resetFields() - this.model = Object.assign({}, record) - if (typeof this.editAfter === 'function') this.editAfter(this.model) - }, - /** 关闭弹窗,并将所有JEditableTable实例回归到初始状态 */ - close() { - this.visible = false - this.$emit('close') - }, - //清空子表table的数据 - tableReset(){ - this.eachAllTable((item) => { - item.clearRow() - }) - }, - /** 查询某个tab的数据 */ - requestSubTableData(url, params, tab, success) { - tab.loading = true - getAction(url, params).then(res => { - let { result } = res - let dataSource = [] - if (result) { - if (Array.isArray(result)) { - dataSource = result - } else if (Array.isArray(result.records)) { - dataSource = result.records - } - } - tab.dataSource = dataSource - typeof success === 'function' ? success(res) : '' - }).finally(() => { - tab.loading = false - }) - }, - /** 发起请求,自动判断是执行新增还是修改操作 */ - request(formData) { - let url = this.url.add, method = 'post' - if (this.model.id) { - url = this.url.edit - method = 'put' - } - this.confirmLoading = true - httpAction(url, formData, method).then((res) => { - if (res.success) { - this.$message.success(res.message) - this.$emit('ok') - this.close() - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.confirmLoading = false - }) - }, - - /* --- handle 事件 --- */ - - /** ATab 选项卡切换事件 */ - handleChangeTabs(key) { - // 自动重置scrollTop状态,防止出现白屏 - getRefPromise(this, key).then(editableTable => { - editableTable.resetScrollTop() - }) - }, - /** 关闭按钮点击事件 */ - handleCancel() { - this.close() - }, - /** 确定按钮点击事件 */ - handleOk() { - /** 触发表单验证 */ - this.getAllTable().then(tables => { - /** 一次性验证主表和所有的次表 */ - return validateFormAndTables(this.form, tables) - }).then(allValues => { - if (typeof this.classifyIntoFormData !== 'function') { - throw this.throwNotFunction('classifyIntoFormData') - } - let formData = this.classifyIntoFormData(allValues) - // 发起请求 - return this.request(formData) - }).catch(e => { - if (e.error === VALIDATE_NO_PASSED) { - // 如果有未通过表单验证的子表,就自动跳转到它所在的tab - this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index] - } else { - console.error(e) - } - }) - }, - - /* --- throw --- */ - - /** not a function */ - throwNotFunction(name) { - return `${name} 未定义或不是一个函数` - }, - - /** not a array */ - throwNotArray(name) { - return `${name} 未定义或不是一个数组` - } - - } -} \ No newline at end of file diff --git a/src/mixins/JVxeTableMixin.js b/src/mixins/JVxeTableMixin.js deleted file mode 100644 index 851d13e..0000000 --- a/src/mixins/JVxeTableMixin.js +++ /dev/null @@ -1,170 +0,0 @@ -import { VALIDATE_FAILED, getRefPromise, validateFormAndTables} from '@/components/jero/JVxeTable/utils/vxeUtils.js' -import { httpAction, getAction } from '@/api/manage' - -export const JVxeTableMixin = { - data() { - return { - title: '操作', - visible: false, - form: this.$form.createForm(this), - confirmLoading: false, - scrolling: true, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 6 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 18 } - } - } - }, - methods: { - - /** 获取所有的JVxeTable实例 */ - getAllTable() { - if (!(this.refKeys instanceof Array)) { - throw this.throwNotArray('refKeys') - } - let values = this.refKeys.map(key => getRefPromise(this, key)) - return Promise.all(values) - }, - - /** 遍历所有的JVxeTable实例 */ - eachAllTable(callback) { - // 开始遍历 - this.getAllTable().then(tables => { - tables.forEach((item, index) => { - if (typeof callback === 'function') { - callback(item, index) - } - }) - }) - }, - - /** 当点击新增按钮时调用此方法 */ - add() { - if (typeof this.addBefore === 'function') this.addBefore() - // 默认新增空数据 - let rowNum = this.addDefaultRowNum - if (typeof rowNum !== 'number') { - rowNum = 1 - console.warn('由于你没有在 data 中定义 addDefaultRowNum 或 addDefaultRowNum 不是数字,所以默认添加一条空数据,如果不想默认添加空数据,请将定义 addDefaultRowNum 为 0') - } - this.eachAllTable((item) => { - item.addRows() - //item.add(rowNum) - }) - if (typeof this.addAfter === 'function') this.addAfter(this.model) - this.edit({}) - }, - /** 当点击了编辑(修改)按钮时调用此方法 */ - edit(record) { - if (typeof this.editBefore === 'function') this.editBefore(record) - this.visible = true - this.activeKey = this.refKeys[0] - this.form.resetFields() - this.model = Object.assign({}, record) - if (typeof this.editAfter === 'function') this.editAfter(this.model) - }, - /** 关闭弹窗,并将所有JVxeTable实例回归到初始状态 */ - close() { - this.visible = false - this.eachAllTable((item) => { - item._remove() - }) - this.$emit('close') - }, - - /** 查询某个tab的数据 */ - requestSubTableData(url, params, tab, success) { - tab.loading = true - getAction(url, params).then(res => { - let { result } = res - let dataSource = [] - if (result) { - if (Array.isArray(result)) { - dataSource = result - } else if (Array.isArray(result.records)) { - dataSource = result.records - } - } - tab.dataSource = dataSource - typeof success === 'function' ? success(res) : '' - }).finally(() => { - tab.loading = false - }) - }, - /** 发起请求,自动判断是执行新增还是修改操作 */ - request(formData) { - let url = this.url.add, method = 'post' - if (this.model.id) { - url = this.url.edit - method = 'put' - } - this.confirmLoading = true - console.log("formData===>",formData); - httpAction(url, formData, method).then((res) => { - if (res.success) { - this.$message.success(res.message) - this.$emit('ok') - this.close() - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.confirmLoading = false - }) - }, - - /* --- handle 事件 --- */ - - /** ATab 选项卡切换事件 */ - handleChangeTabs(key) { - // 自动重置scrollTop状态,防止出现白屏 - getRefPromise(this, key).then(vxeTable => { - vxeTable.resetScrollTop() - }) - }, - /** 关闭按钮点击事件 */ - handleCancel() { - this.close() - }, - /** 确定按钮点击事件 */ - handleOk() { - /** 触发表单验证 */ - this.getAllTable().then(tables => { - /** 一次性验证主表和所有的次表 */ - return validateFormAndTables(this.form, tables) - }).then(allValues => { - if (typeof this.classifyIntoFormData !== 'function') { - throw this.throwNotFunction('classifyIntoFormData') - } - let formData = this.classifyIntoFormData(allValues) - // 发起请求 - return this.request(formData) - }).catch(e => { - if (e.error === VALIDATE_NO_PASSED) { - // 如果有未通过表单验证的子表,就自动跳转到它所在的tab - this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index] - } else { - console.error(e) - } - }) - }, - - /* --- throw --- */ - - /** not a function */ - throwNotFunction(name) { - return `${name} 未定义或不是一个函数` - }, - - /** not a array */ - throwNotArray(name) { - return `${name} 未定义或不是一个数组` - } - - } -} \ No newline at end of file diff --git a/src/mixins/JeroListMixin.js b/src/mixins/JeroListMixin.js deleted file mode 100644 index da891cd..0000000 --- a/src/mixins/JeroListMixin.js +++ /dev/null @@ -1,350 +0,0 @@ -/** - * 新增修改完成调用 modalFormOk方法 编辑弹框组件ref定义为modalForm - * 高级查询按钮调用 superQuery方法 高级查询组件ref定义为superQueryModal - * data中url定义 list为查询列表 delete为删除单条记录 deleteBatch为批量删除 - */ -import { filterObj } from '@/utils/util'; -import { deleteAction, getAction,downloadFile,getFileAccessHttpUrl } from '@/api/manage' -import Vue from 'vue' -import { ACCESS_TOKEN, TENANT_ID } from "@/store/mutation-types" -import store from '@/store' -import {Modal} from 'ant-design-vue' - -export const JeroListMixin = { - data(){ - return { - /* 查询条件-请不要在queryParam中声明非字符串值的属性 */ - queryParam: {}, - // 记录上一次查询的条件,防止查询处输入框的数据发生变化,未点击查询按钮,再点击分页的时候数据发生变化 - lastQueryParam: {}, - /* 数据源 */ - dataSource:[], - /* 分页参数 */ - ipagination:{ - current: 1, - pageSize: 10, - pageSizeOptions: ['2','10', '20', '30'], - showTotal: (total, range) => { - return range[0] + "-" + range[1] + " 共" + total + "条" - }, - showQuickJumper: true, - showSizeChanger: true, - total: 0 - }, - /* 排序参数 */ - isorter:{ - column: 'createTime', - order: 'desc', - }, - /* 筛选参数 */ - filters: {}, - /* table加载状态 */ - loading:false, - /* table选中keys*/ - selectedRowKeys: [], - /* table选中records*/ - selectionRows: [], - /* 查询折叠 */ - toggleSearchStatus:false, - /* 高级查询条件生效状态 */ - superQueryFlag:false, - /* 高级查询条件 */ - superQueryParams: '', - /** 高级查询拼接方式 */ - superQueryMatchType: 'and', - } - }, - created() { - if(!this.disableMixinCreated){ - this.loadData(); - //初始化字典配置 在自己页面定义 - this.initDictConfig(); - } - }, - computed: { - //token header - tokenHeader(){ - let head = {'X-Access-Token': Vue.ls.get(ACCESS_TOKEN)} - let tenantid = Vue.ls.get(TENANT_ID) - if(tenantid){ - head['tenant_id'] = tenantid - } - return head; - } - }, - methods:{ - loadData(arg) { - if(!this.url.list){ - this.$message.error("请设置url.list属性!") - return - } - //加载数据 若传入参数1则加载第一页的内容 - if (arg === 1) { - this.ipagination.current = 1; - } - var params = this.getQueryParams();//查询条件 - this.loading = true; - getAction(this.url.list, params).then((res) => { - if (res.success) { - //update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ - this.dataSource = res.result.records||res.result; - if(res.result.total) - { - this.ipagination.total = res.result.total; - //清空列表选中 - this.onClearSelected() - }else{ - this.ipagination.total = 0; - } - //update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ - } - if(res.code===510){ - this.$message.warning(res.message) - } - this.loading = false; - }) - }, - initDictConfig(){ - - }, - handleSuperQuery(params, matchType) { - //高级查询方法 - if(!params){ - this.superQueryParams='' - this.superQueryFlag = false - }else{ - this.superQueryFlag = true - this.superQueryParams=JSON.stringify(params) - this.superQueryMatchType = matchType - } - this.loadData(1) - }, - getQueryParams() { - //获取查询条件 - let sqp = {} - if(this.superQueryParams){ - sqp['superQueryParams']=encodeURI(this.superQueryParams) - sqp['superQueryMatchType'] = this.superQueryMatchType - } - // var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters); - var param = Object.assign(sqp, this.lastQueryParam, this.isorter ,this.filters); - param.field = this.getQueryField(); - param.pageNo = this.ipagination.current; - param.pageSize = this.ipagination.pageSize; - return filterObj(param); - }, - getQueryField() { - //TODO 字段权限控制 - var str = "id,"; - this.columns.forEach(function (value) { - str += "," + value.dataIndex; - }); - return str; - }, - - onSelectChange(selectedRowKeys, selectionRows) { - this.selectedRowKeys = selectedRowKeys; - this.selectionRows = selectionRows; - }, - onClearSelected() { - this.selectedRowKeys = []; - this.selectionRows = []; - }, - searchQuery() { - this.lastQueryParam = { ...this.queryParam } - this.loadData(1); - }, - superQuery() { - this.$refs.superQueryModal.show(); - }, - searchReset() { - this.queryParam = {} - this.lastQueryParam = {} - this.loadData(1); - }, - batchDel: function () { - if(!this.url.deleteBatch){ - this.$message.error("请设置url.deleteBatch属性!") - return - } - if (this.selectedRowKeys.length <= 0) { - this.$message.warning('请选择一条记录!'); - return; - } else { - var ids = ""; - for (var a = 0; a < this.selectedRowKeys.length; a++) { - ids += this.selectedRowKeys[a] + ","; - } - var that = this; - this.$confirm({ - title: "确认删除", - content: "是否删除选中数据?", - onOk: function () { - that.loading = true; - deleteAction(that.url.deleteBatch, {ids: ids}).then((res) => { - if (res.success) { - that.$message.success(res.message); - // 判断当前删除的数据是否是最后一页的全部数据,如果是的话页码减一 - if (that.ipagination.current > 1 && (that.ipagination.current === Math.ceil(that.ipagination.total / that.ipagination.pageSize)) && - that.selectedRowKeys.length === that.dataSource.length - ) { - that.ipagination.current -= 1 - } - that.loadData(); - that.onClearSelected(); - } else { - that.$message.warning(res.message); - } - }).finally(() => { - that.loading = false; - }); - } - }); - } - }, - handleDelete: function (id) { - if(!this.url.delete){ - this.$message.error("请设置url.delete属性!") - return - } - var that = this; - deleteAction(that.url.delete, {id: id}).then((res) => { - if (res.success) { - that.$message.success(res.message); - // 判断当前删除的数据是否是最后一页的最后一条数据,如果是的话页码减一 - if (that.ipagination.current > 1 && ((that.ipagination.current - 1) * that.ipagination.pageSize) + 1 === that.ipagination.total) { - that.ipagination.current -= 1 - } - that.loadData(); - } else { - that.$message.warning(res.message); - } - }); - }, - handleEdit: function (record) { - this.$refs.modalForm.edit(record); - this.$refs.modalForm.title = "编辑"; - this.$refs.modalForm.disableSubmit = false; - }, - handleAdd: function () { - this.$refs.modalForm.add(); - this.$refs.modalForm.title = "新增"; - this.$refs.modalForm.disableSubmit = false; - }, - handleTableChange(pagination, filters, sorter) { - //分页、排序、筛选变化时触发 - //TODO 筛选 - if (Object.keys(sorter).length > 0) { - this.isorter.column = sorter.field; - this.isorter.order = "ascend" == sorter.order ? "asc" : "desc" - } - this.ipagination = pagination; - this.loadData(); - }, - handleToggleSearch(){ - this.toggleSearchStatus = !this.toggleSearchStatus; - }, - // 给popup查询使用(查询区域不支持回填多个字段,限制只返回一个字段) - getPopupField(fields){ - return fields.split(',')[0] - }, - modalFormOk() { - // 新增/修改 成功时,重载列表 - this.loadData(); - //清空列表选中 - this.onClearSelected() - }, - handleDetail:function(record){ - this.$refs.modalForm.edit(record); - this.$refs.modalForm.title="详情"; - this.$refs.modalForm.disableSubmit = true; - }, - /* 导出 */ - handleExportXls2(){ - let paramsStr = encodeURI(JSON.stringify(this.getQueryParams())); - let url = `${window._CONFIG['domianURL']}/${this.url.exportXlsUrl}?paramsStr=${paramsStr}`; - window.location.href = url; - }, - handleExportXls(fileName){ - if(!fileName || typeof fileName != "string"){ - fileName = "导出文件" - } - let param = this.getQueryParams(); - if(this.selectedRowKeys && this.selectedRowKeys.length>0){ - param['selections'] = this.selectedRowKeys.join(",") - } - console.log("导出参数",param) - downloadFile(this.url.exportXlsUrl, fileName+'.xls', param) - }, - /* 导入 */ - handleImportExcel(info){ - if (info.file.status !== 'uploading') { - console.log(info.file, info.fileList); - } - if (info.file.status === 'done') { - if (info.file.response.success) { - // this.$message.success(`${info.file.name} 文件上传成功`); - if (info.file.response.code === 201) { - let { message, result: { msg, fileUrl, fileName } } = info.file.response - let href = window._CONFIG['domianURL'] + fileUrl - this.$warning({ - title: message, - content: ( - ) - }) - } else { - this.$message.success(info.file.response.message || `${info.file.name} 文件上传成功`) - } - this.loadData() - } else { - this.$message.error(`${info.file.name} ${info.file.response.message}.`); - } - } else if (info.file.status === 'error') { - if (info.file.response.status === 500) { - let data = info.file.response - const token = Vue.ls.get(ACCESS_TOKEN) - if (token && data.message.includes("Token失效")) { - Modal.error({ - title: '登录已过期', - content: '很抱歉,登录已过期,请重新登录', - okText: '重新登录', - mask: false, - onOk: () => { - store.dispatch('Logout').then(() => { - Vue.ls.remove(ACCESS_TOKEN) - window.location.reload(); - }) - } - }) - } - } else { - this.$message.error(`文件上传失败: ${info.file.msg} `); - } - } - }, - /* 图片预览 */ - getImgView(text){ - if(text && text.indexOf(",")>0){ - text = text.substring(0,text.indexOf(",")) - } - return getFileAccessHttpUrl(text) - }, - /* 文件下载 */ - // update--autor:lvdandan-----date:20200630------for:修改下载文件方法名uploadFile改为downloadFile------ - downloadFile(text){ - if(!text){ - this.$message.warning("未知的文件") - return; - } - if(text.indexOf(",")>0){ - text = text.substring(0,text.indexOf(",")) - } - let url = getFileAccessHttpUrl(text) - window.open(url); - }, - } - -} diff --git a/src/mixins/OnlineCommonUtil.js b/src/mixins/OnlineCommonUtil.js deleted file mode 100644 index 7de0b6d..0000000 --- a/src/mixins/OnlineCommonUtil.js +++ /dev/null @@ -1,26 +0,0 @@ -import { formatDate } from '@/utils/util' -import Area from '@/components/_util/Area' - -const onlUtil = { - data(){ - return { - mixin_pca:'' - } - }, - created(){ - this.mixin_pca = new Area() - }, - methods:{ - simpleDateFormat(millisecond, format){ - return formatDate(millisecond, format) - }, - getPcaText(code){ - return this.mixin_pca.getText(code); - }, - getPcaCode(text){ - return this.mixin_pca.getCode(text) - } - } -} - -export { onlUtil } \ No newline at end of file diff --git a/src/mixins/WebsocketMixin.js b/src/mixins/WebsocketMixin.js deleted file mode 100644 index ee03f8c..0000000 --- a/src/mixins/WebsocketMixin.js +++ /dev/null @@ -1,63 +0,0 @@ -import store from '@/store/' -import { ACCESS_TOKEN } from '@/store/mutation-types' -import Vue from 'vue' - -export const WebsocketMixin = { - mounted() { - this.initWebSocket(); - }, - destroyed: function () { - // 离开页面生命周期函数 - this.websocketOnclose(); - }, - methods:{ - initWebSocket: function () { - let token = Vue.ls.get(ACCESS_TOKEN) - console.log("------------WebSocket连接成功"); - // WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https - var userId = store.getters.userInfo.id; - if(!this.socketUrl.startsWith('/')){ - this.socketUrl = '/' + this.socketUrl - } - if(!this.socketUrl.endsWith('/')){ - this.socketUrl = this.socketUrl + '/' - } - var url = window._CONFIG['domianURL'].replace("https://","wss://").replace("http://","ws://") + this.socketUrl + userId + "/" + token; - this.websock = new WebSocket(url); - this.websock.onopen = this.websocketOnopen; - this.websock.onerror = this.websocketOnerror; - this.websock.onmessage = this.websocketOnmessage; - this.websock.onclose = this.websocketOnclose; - }, - websocketOnopen: function () { - console.log("WebSocket连接成功"); - }, - websocketOnerror: function (e) { - console.log("WebSocket连接发生错误"); - this.reconnect(); - }, - websocketOnclose: function (e) { - this.reconnect(); - }, - websocketSend(text) { - // 数据发送 - try { - this.websock.send(text); - } catch (err) { - console.log("send failed (" + err.code + ")"); - } - }, - reconnect() { - var that = this; - if(that.lockReconnect) return; - that.lockReconnect = true; - //没连接上会一直重连,设置延迟避免请求过多 - setTimeout(function () { - console.info("尝试重连..."); - that.initWebSocket(); - that.lockReconnect = false; - }, 5000); - }, - } - -} \ No newline at end of file diff --git a/src/permission.js b/src/permission.js deleted file mode 100644 index 3e8108e..0000000 --- a/src/permission.js +++ /dev/null @@ -1,76 +0,0 @@ -import Vue from 'vue' -import router from './router' -import store from './store' -import NProgress from 'nprogress' // progress bar -import 'nprogress/nprogress.css' // progress bar style -import notification from 'ant-design-vue/es/notification' -import { ACCESS_TOKEN,INDEX_MAIN_PAGE_PATH } from '@/store/mutation-types' -import { generateIndexRouter } from "@/utils/util" - -NProgress.configure({ showSpinner: false }) // NProgress Configuration - -const whiteList = ['/user/login', '/user/register', '/user/register-result','/user/alteration'] // no redirect whitelist - -router.beforeEach((to, from, next) => { - NProgress.start() // start progress bar - - if (Vue.ls.get(ACCESS_TOKEN)) { - /* has token */ - - - - - if (to.path === '/user/login') { - next({ path: INDEX_MAIN_PAGE_PATH }) - NProgress.done() - } else { - if (store.getters.permissionList.length === 0) { - store.dispatch('GetPermissionList').then(res => { - const menuData = res.result.menu; - if (menuData === null || menuData === "" || menuData === undefined) { - return; - } - let constRoutes = []; - constRoutes = generateIndexRouter(menuData); - // 添加主界面路由 - store.dispatch('UpdateAppRouter', { constRoutes }).then(() => { - // 根据roles权限生成可访问的路由表 - // 动态添加可访问路由表 - router.addRoutes(store.getters.addRouters) - const redirect = decodeURIComponent(from.query.redirect || to.path) - if (to.path === redirect) { - // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record - next({ ...to, replace: true }) - } else { - // 跳转到目的路由 - next({ path: redirect }) - } - }) - }) - .catch(() => { - /* notification.error({ - message: '系统提示', - description: '请求用户信息失败,请重试!' - })*/ - store.dispatch('Logout').then(() => { - next({ path: '/user/login', query: { redirect: to.fullPath } }) - }) - }) - } else { - next() - } - } - } else { - if (whiteList.indexOf(to.path) !== -1) { - // 在免登录白名单,直接进入 - next() - } else { - next({ path: '/user/login', query: { redirect: to.fullPath } }) - NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it - } - } -}) - -router.afterEach(() => { - NProgress.done() // finish progress bar -}) diff --git a/src/router/README.md b/src/router/README.md deleted file mode 100644 index 9e82538..0000000 --- a/src/router/README.md +++ /dev/null @@ -1,139 +0,0 @@ -路由/菜单说明 -==== - - - -配置文件路径 ----- - -`@/config/router.config.js` - - - -格式和说明 ----- - -```javascript -/** - * 路由配置说明: - * 建议:sider menu 请不要超过三级菜单,若超过三级菜单,则应该设计为顶部主菜单 配合左侧次级菜单 - * - **/ - { - redirect: noredirect, - name: 'router-name', - hidden: true, - meta: { - title: 'title', - icon: 'a-icon', - keepAlive: true, - hiddenHeaderContent: true, - } -} -``` - - - -`{ Route }` 对象 - -| 参数 | 说明 | 类型 | 默认值 | -| -------- | ----------------------------------------- | ------- | ------ | -| hidden | 控制路由是否显示在 sidebar | boolean | falase | -| redirect | 重定向地址, 访问这个路由时,自定进行重定向 | string | - | -| name | 路由名称, 建议设置,且不能重名 | string | - | -| meta | 路由元信息(路由附带扩展信息) | object | {} | - - - -`{ Meta }` 路由元信息对象 - -| 参数 | 说明 | 类型 | 默认值 | -| ------------------- | ------------------------------------------------------------ | ------- | ------ | -| title | 路由标题, 用于显示面包屑, 页面标题 *推荐设置 | string | - | -| icon | 路由在 menu 上显示的图标 | string | - | -| keepAlive | 缓存该路由 | boolean | false | -| hiddenHeaderContent | *特殊 隐藏 [PageHeader](https://github.com/sendya/ant-design-pro-vue/blob/master/src/components/layout/PageHeader.vue#L14) 组件中的页面带的 面包屑和页面标题栏 | boolean | false | -| permission | 与项目提供的权限拦截匹配的权限,如果不匹配,则会被禁止访问该路由页面 | array | [] | - - - -路由例子 ----- - -```ecmascript 6 -const asyncRouterMap = [ - { - path: '/', - name: 'index', - component: BasicLayout, - meta: { title: '首页' }, - redirect: '/dashboard/analysis', - children: [ - { - path: '/dashboard', - component: Layout, - name: 'dashboard', - redirect: '/dashboard/workplace', - meta: {title: '仪表盘', icon: 'dashboard', permission: ['dashboard']}, - children: [ - { - path: '/dashboard/analysis', - name: 'Analysis', - component: () => import('@/views/dashboard/Analysis'), - meta: {title: '分析页', permission: ['dashboard']} - }, - { - path: '/dashboard/monitor', - name: 'Monitor', - hidden: true, - component: () => import('@/views/dashboard/Monitor'), - meta: {title: '监控页', permission: ['dashboard']} - }, - { - path: '/dashboard/workplace', - name: 'Workplace', - component: () => import('@/views/dashboard/Workplace'), - meta: {title: '工作台', permission: ['dashboard']} - } - ] - }, - - // result - { - path: '/result', - name: 'result', - component: PageView, - redirect: '/result/success', - meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] }, - children: [ - { - path: '/result/success', - name: 'ResultSuccess', - component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), - // 该页面隐藏面包屑和页面标题栏 - meta: { title: '成功', hiddenHeaderContent: true, permission: [ 'result' ] } - }, - { - path: '/result/fail', - name: 'ResultFail', - component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), - // 该页面隐藏面包屑和页面标题栏 - meta: { title: '失败', hiddenHeaderContent: true, permission: [ 'result' ] } - } - ] - }, - ... - ] - }, -] -``` - -> 1. 请注意 `component: () => import('..') ` 方式引入路由的页面组件为 懒加载模式。具体可以看 [Vue 官方文档](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) -> 2. 增加新的路由应该增加在 '/' (index) 路由的 `children` 内 -> 3. `permission` 可以进行自定义修改,只需要对这个模块进行自定义修改即可 [src/store/modules/permission.js#L10](https://github.com/sendya/ant-design-pro-vue/blob/master/src/store/modules/permission.js#L10) - - - -附权限路由结构: - -![权限结构](https://static-2.loacg.com/open/static/github/permissions.png) \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js deleted file mode 100644 index 791a550..0000000 --- a/src/router/index.js +++ /dev/null @@ -1,18 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' -import { constantRouterMap } from '@/config/router.config' - -Vue.use(Router) - -const originalPush = Router.prototype.push -Router.prototype.push = function push(location, onResolve, onReject) { - if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) - return originalPush.call(this, location).catch(err => err) -} - -export default new Router({ - mode: 'history', - base: process.env.BASE_URL, - scrollBehavior: () => ({ y: 0 }), - routes: constantRouterMap -}) \ No newline at end of file diff --git a/src/store/getters.js b/src/store/getters.js deleted file mode 100644 index 6e295d3..0000000 --- a/src/store/getters.js +++ /dev/null @@ -1,23 +0,0 @@ -import Vue from 'vue' -import { USER_INFO, ENHANCE_PRE } from "@/store/mutation-types" -const getters = { - device: state => state.app.device, - theme: state => state.app.theme, - color: state => state.app.color, - token: state => state.user.token, - avatar: state => {state.user.avatar = Vue.ls.get(USER_INFO).avatar; return state.user.avatar}, - username: state => state.user.username, - nickname: state => {state.user.realname = Vue.ls.get(USER_INFO).realname; return state.user.realname}, - welcome: state => state.user.welcome, - permissionList: state => state.user.permissionList, - userInfo: state => {state.user.info = Vue.ls.get(USER_INFO); return state.user.info}, - addRouters: state => state.permission.addRouters, - onlAuthFields: state => {return state.online.authFields }, - enhanceJs:(state) => (code) => { - state.enhance.enhanceJs[code] = Vue.ls.get(ENHANCE_PRE+code); - return state.enhance.enhanceJs[code] - } - -} - -export default getters diff --git a/src/store/index.js b/src/store/index.js deleted file mode 100644 index ee4e41e..0000000 --- a/src/store/index.js +++ /dev/null @@ -1,31 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' - -import app from './modules/app' -import user from './modules/user' -import permission from './modules/permission' -import enhance from './modules/enhance' -import online from './modules/online' -import getters from './getters' - -Vue.use(Vuex) - -export default new Vuex.Store({ - modules: { - app, - user, - permission, - enhance, - online - }, - state: { - - }, - mutations: { - - }, - actions: { - - }, - getters -}) diff --git a/src/store/modules/app.js b/src/store/modules/app.js deleted file mode 100644 index e7912e6..0000000 --- a/src/store/modules/app.js +++ /dev/null @@ -1,126 +0,0 @@ -import Vue from 'vue' -import { - SIDEBAR_TYPE, - DEFAULT_THEME, - DEFAULT_LAYOUT_MODE, - DEFAULT_COLOR, - DEFAULT_COLOR_WEAK, - DEFAULT_FIXED_HEADER, - DEFAULT_FIXED_SIDEMENU, - DEFAULT_FIXED_HEADER_HIDDEN, - DEFAULT_CONTENT_WIDTH_TYPE, - DEFAULT_MULTI_PAGE -} from "@/store/mutation-types" - -const app = { - state: { - sidebar: { - opened: true, - withoutAnimation: false - }, - device: 'desktop', - theme: '', - layout: '', - contentWidth: '', - fixedHeader: false, - fixSiderbar: false, - autoHideHeader: false, - color: null, - weak: false, - multipage: true //默认多页签模式 - }, - mutations: { - SET_SIDEBAR_TYPE: (state, type) => { - state.sidebar.opened = type - Vue.ls.set(SIDEBAR_TYPE, type) - }, - CLOSE_SIDEBAR: (state, withoutAnimation) => { - Vue.ls.set(SIDEBAR_TYPE, true) - state.sidebar.opened = false - state.sidebar.withoutAnimation = withoutAnimation - }, - TOGGLE_DEVICE: (state, device) => { - state.device = device - }, - TOGGLE_THEME: (state, theme) => { - // setStore('_DEFAULT_THEME', theme) - Vue.ls.set(DEFAULT_THEME, theme) - state.theme = theme - }, - TOGGLE_LAYOUT_MODE: (state, layout) => { - Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) - state.layout = layout - }, - TOGGLE_FIXED_HEADER: (state, fixed) => { - Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) - state.fixedHeader = fixed - }, - TOGGLE_FIXED_SIDERBAR: (state, fixed) => { - Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) - state.fixSiderbar = fixed - }, - TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { - Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) - state.autoHideHeader = show - }, - TOGGLE_CONTENT_WIDTH: (state, type) => { - Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) - state.contentWidth = type - }, - TOGGLE_COLOR: (state, color) => { - Vue.ls.set(DEFAULT_COLOR, color) - state.color = color - }, - TOGGLE_WEAK: (state, flag) => { - Vue.ls.set(DEFAULT_COLOR_WEAK, flag) - state.weak = flag - }, - SET_MULTI_PAGE (state, multipageFlag) { - Vue.ls.set(DEFAULT_MULTI_PAGE, multipageFlag) - state.multipage = multipageFlag - } - }, - actions: { - setSidebar: ({ commit }, type) => { - commit('SET_SIDEBAR_TYPE', type) - }, - CloseSidebar({ commit }, { withoutAnimation }) { - commit('CLOSE_SIDEBAR', withoutAnimation) - }, - ToggleDevice({ commit }, device) { - commit('TOGGLE_DEVICE', device) - }, - ToggleTheme({ commit }, theme) { - commit('TOGGLE_THEME', theme) - }, - ToggleLayoutMode({ commit }, mode) { - commit('TOGGLE_LAYOUT_MODE', mode) - }, - ToggleFixedHeader({ commit }, fixedHeader) { - if (!fixedHeader) { - commit('TOGGLE_FIXED_HEADER_HIDDEN', false) - } - commit('TOGGLE_FIXED_HEADER', fixedHeader) - }, - ToggleFixSiderbar({ commit }, fixSiderbar) { - commit( 'TOGGLE_FIXED_SIDERBAR', fixSiderbar) - }, - ToggleFixedHeaderHidden({ commit }, show) { - commit('TOGGLE_FIXED_HEADER_HIDDEN', show) - }, - ToggleContentWidth({ commit }, type) { - commit('TOGGLE_CONTENT_WIDTH', type) - }, - ToggleColor({ commit }, color) { - commit('TOGGLE_COLOR', color) - }, - ToggleWeak({ commit }, weakFlag) { - commit('TOGGLE_WEAK', weakFlag) - }, - ToggleMultipage({ commit }, multipageFlag) { - commit('SET_MULTI_PAGE', multipageFlag) - } - } -} - -export default app \ No newline at end of file diff --git a/src/store/modules/enhance.js b/src/store/modules/enhance.js deleted file mode 100644 index e7c254d..0000000 --- a/src/store/modules/enhance.js +++ /dev/null @@ -1,37 +0,0 @@ -import Vue from 'vue' -const enhance = { - state: { - enhanceJs:{ - - } - }, - mutations: { - ADD_TABLE_ENHANCE: (state, record) => { - if(!state.enhanceJs){ - let obj = {} - let arr = [] - arr.push({...record}) - obj[record.code] = arr - state.enhanceJs = obj - }else{ - if(!state.enhanceJs[record.code]){ - let arr = [] - arr.push({...record}) - state.enhanceJs[record.code] = arr - } - state.enhanceJs[record.code].push({...record}) - } - let arr = state.enhanceJs[record.code] - while(arr.length>16){ - arr.shift() - } - Vue.ls.set('enhance_'+record['code'], arr) - } - }, - actions: { - addEhanceRecord({ commit }, record) { - commit('ADD_TABLE_ENHANCE', record) - } - } -} -export default enhance \ No newline at end of file diff --git a/src/store/modules/online.js b/src/store/modules/online.js deleted file mode 100644 index de6b26f..0000000 --- a/src/store/modules/online.js +++ /dev/null @@ -1,25 +0,0 @@ -import Vue from 'vue' -import { ONL_AUTH_FIELDS } from "@/store/mutation-types" -import { getAction } from '@/api/manage' - - -const online = { - state: { - //存储对象属性 value,text - authFields: [], - }, - mutations: { - SET_AUTHFIELDS: (state, fields) => { - console.log('fields',fields) - Vue.set(state, 'authFields', fields) - } - }, - actions: { - // TODO 如果没找到可以尝试请求一下 - xxxxxx({ commit }, userInfo) { - } - - } -} - -export default online \ No newline at end of file diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js deleted file mode 100644 index 0f9d720..0000000 --- a/src/store/modules/permission.js +++ /dev/null @@ -1,87 +0,0 @@ -import { asyncRouterMap, constantRouterMap } from "@/config/router.config" - -/** - * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 - * - * @param permission - * @param route - * @returns {boolean} - */ -function hasPermission(permission, route) { - if (route.meta && route.meta.permission) { - let flag = -1 - for (let i = 0, len = permission.length; i < len; i++) { - flag = route.meta.permission.indexOf(permission[i]) - if (flag >= 0) { - return true - } - } - return false - } - return true -} - -/** - * 单账户多角色时,使用该方法可过滤角色不存在的菜单 - * - * @param roles - * @param route - * @returns {*} - */ -// eslint-disable-next-line -function hasRole(roles, route) { - if (route.meta && route.meta.roles) { - return route.meta.roles.indexOf(roles.id) - } else { - return true - } -} - -function filterAsyncRouter(routerMap, roles) { - const accessedRouters = routerMap.filter(route => { - if (hasPermission(roles.permissionList, route)) { - if (route.children && route.children.length) { - route.children = filterAsyncRouter(route.children, roles) - } - return true - } - return false - }) - return accessedRouters -} - - -const permission = { - state: { - routers: constantRouterMap, - addRouters: [] - }, - mutations: { - SET_ROUTERS: (state, data) => { - state.addRouters = data - state.routers = constantRouterMap.concat(data) - } - }, - actions: { - GenerateRoutes({ commit }, data) { - return new Promise(resolve => { - const { roles } = data - let accessedRouters - accessedRouters = filterAsyncRouter(asyncRouterMap, roles) - commit('SET_ROUTERS', accessedRouters) - resolve() - }) - }, - // 动态添加主界面路由,需要缓存 - UpdateAppRouter({ commit }, routes) { - return new Promise(resolve => { - //const [ roles ] = routes.constRoutes - let routelist = routes.constRoutes; - commit('SET_ROUTERS', routelist) - resolve() - }) - } - } -} - -export default permission \ No newline at end of file diff --git a/src/store/modules/user.js b/src/store/modules/user.js deleted file mode 100644 index 60f194b..0000000 --- a/src/store/modules/user.js +++ /dev/null @@ -1,235 +0,0 @@ -import Vue from 'vue' -import { login, logout, phoneLogin, thirdLogin } from "@/api/login" -import { ACCESS_TOKEN, USER_NAME,USER_INFO,USER_AUTH,SYS_BUTTON_AUTH,UI_CACHE_DB_DICT_DATA,TENANT_ID,CACHE_INCLUDED_ROUTES } from "@/store/mutation-types" -import { welcome } from "@/utils/util" -import { queryPermissionsByUser } from '@/api/api' -import { getAction } from '@/api/manage' - -const user = { - state: { - token: '', - username: '', - realname: '', - tenantid:'', - welcome: '', - avatar: '', - permissionList: [], - info: {} - }, - - mutations: { - SET_TOKEN: (state, token) => { - state.token = token - }, - SET_NAME: (state, { username, realname, welcome }) => { - state.username = username - state.realname = realname - state.welcome = welcome - }, - SET_AVATAR: (state, avatar) => { - state.avatar = avatar - }, - SET_PERMISSIONLIST: (state, permissionList) => { - state.permissionList = permissionList - }, - SET_INFO: (state, info) => { - state.info = info - }, - SET_TENANT: (state, id) => { - state.tenantid = id - }, - }, - - actions: { - // CAS验证登录 - ValidateLogin({ commit }, userInfo) { - return new Promise((resolve, reject) => { - getAction("/sys/cas/client/validateLogin",userInfo).then(response => { - console.log("----cas 登录--------",response); - if(response.success){ - const result = response.result - const userInfo = result.userInfo - Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) - commit('SET_TOKEN', result.token) - commit('SET_INFO', userInfo) - commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() }) - commit('SET_AVATAR', userInfo.avatar) - resolve(response) - }else{ - resolve(response) - } - }).catch(error => { - reject(error) - }) - }) - }, - // 登录 - Login({ commit }, userInfo) { - return new Promise((resolve, reject) => { - login(userInfo).then(response => { - if(response.code =='200'){ - const result = response.result - const userInfo = result.userInfo - Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(UI_CACHE_DB_DICT_DATA, result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) - commit('SET_TOKEN', result.token) - commit('SET_INFO', userInfo) - commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() }) - commit('SET_AVATAR', userInfo.avatar) - resolve(response) - }else{ - reject(response) - } - }).catch(error => { - reject(error) - }) - }) - }, - //手机号登录 - PhoneLogin({ commit }, userInfo) { - return new Promise((resolve, reject) => { - phoneLogin(userInfo).then(response => { - if(response.code =='200'){ - const result = response.result - const userInfo = result.userInfo - Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(UI_CACHE_DB_DICT_DATA, result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) - commit('SET_TOKEN', result.token) - commit('SET_INFO', userInfo) - commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() }) - commit('SET_AVATAR', userInfo.avatar) - resolve(response) - }else{ - reject(response) - } - }).catch(error => { - reject(error) - }) - }) - }, - // 获取用户信息 - GetPermissionList({ commit }) { - return new Promise((resolve, reject) => { - queryPermissionsByUser().then(response => { - // 路由菜单数组--前端维护菜单数据 - const menuData = [ - { - "redirect": null, - "path": "/dashboard/analysis", - "component": "dashboard/Analysis", - "route": "1", - "meta": { - "icon": "home", // 菜单前图标 - "componentName": "Analysis", - "title": "首页" // 菜单名称 - }, - "name": "dashboard-analysis", - "id": "1" - }, - { - "redirect": null, - "path": "", - "component": "", - "route": "1", - "meta": { - "icon": "home", // 菜单前图标 - "componentName": "Analysis", - "title": "菜单2" // 菜单名称 - }, - "name": "dashboard-analysis", - "id": "2" - } - ] - const authData = []; - const allAuthData = []; - //Vue.ls.set(USER_AUTH,authData); - sessionStorage.setItem(USER_AUTH,JSON.stringify(authData)); - sessionStorage.setItem(SYS_BUTTON_AUTH,JSON.stringify(allAuthData)); - if (menuData && menuData.length > 0) { - //update--begin--autor:qinfeng-----date:20200109------for:JEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------ - menuData.forEach((item, index) => { - if (item["children"]) { - let hasChildrenMenu = item["children"].filter((i) => { - return !i.hidden || i.hidden == false - }) - if (hasChildrenMenu == null || hasChildrenMenu.length == 0) { - item["hidden"] = true - } - } - }) - //console.log(" menu show json ", menuData) - //update--end--autor:qinfeng-----date:20200109------for:JEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------ - commit('SET_PERMISSIONLIST', menuData) - } else { - reject('getPermissionList: permissions must be a non-null array !') - } - resolve(response) - }).catch(error => { - reject(error) - }) - }) - }, - - // 登出 - Logout({ commit, state }) { - return new Promise((resolve) => { - let logoutToken = state.token; - commit('SET_TOKEN', '') - commit('SET_PERMISSIONLIST', []) - Vue.ls.remove(ACCESS_TOKEN) - Vue.ls.remove(USER_INFO) - Vue.ls.remove(USER_NAME) - Vue.ls.remove(UI_CACHE_DB_DICT_DATA) - Vue.ls.remove(CACHE_INCLUDED_ROUTES) - //console.log('logoutToken: '+ logoutToken) - logout(logoutToken).then(() => { - if (process.env.VUE_APP_SSO == 'true') { - let sevice = 'http://' + window.location.host + '/' - let serviceUrl = encodeURIComponent(sevice) - window.location.href = process.env.VUE_APP_CAS_BASE_URL + '/logout?service=' + serviceUrl - } - resolve() - }).catch(() => { - resolve() - }) - }) - }, - // 第三方登录 - ThirdLogin({ commit }, param) { - return new Promise((resolve, reject) => { - thirdLogin(param.token,param.thirdType).then(response => { - if(response.code =='200'){ - const result = response.result - const userInfo = result.userInfo - Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) - commit('SET_TOKEN', result.token) - commit('SET_INFO', userInfo) - commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() }) - commit('SET_AVATAR', userInfo.avatar) - resolve(response) - }else{ - reject(response) - } - }).catch(error => { - reject(error) - }) - }) - }, - saveTenant({ commit }, id){ - Vue.ls.set(TENANT_ID, id, 7 * 24 * 60 * 60 * 1000) - commit('SET_TENANT', id) - } - - - } -} - -export default user \ No newline at end of file diff --git a/src/store/mutation-types.js b/src/store/mutation-types.js deleted file mode 100644 index f58bdd9..0000000 --- a/src/store/mutation-types.js +++ /dev/null @@ -1,27 +0,0 @@ -export const ACCESS_TOKEN = 'Access-Token' -export const SIDEBAR_TYPE = 'SIDEBAR_TYPE' -export const DEFAULT_THEME = 'DEFAULT_THEME' -export const DEFAULT_LAYOUT_MODE = 'DEFAULT_LAYOUT_MODE' -export const DEFAULT_COLOR = 'DEFAULT_COLOR' -export const DEFAULT_COLOR_WEAK = 'DEFAULT_COLOR_WEAK' -export const DEFAULT_FIXED_HEADER = 'DEFAULT_FIXED_HEADER' -export const DEFAULT_FIXED_SIDEMENU= 'DEFAULT_FIXED_SIDEMENU' -export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN' -export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE' -export const DEFAULT_MULTI_PAGE = 'DEFAULT_MULTI_PAGE' -export const USER_NAME = 'Login_Username' -export const USER_INFO = 'Login_Userinfo' -export const USER_AUTH = 'LOGIN_USER_BUTTON_AUTH' -export const SYS_BUTTON_AUTH = 'SYS_BUTTON_AUTH' -export const ENCRYPTED_STRING = 'ENCRYPTED_STRING' -export const ENHANCE_PRE = 'enhance_' -export const UI_CACHE_DB_DICT_DATA = 'UI_CACHE_DB_DICT_DATA' -export const INDEX_MAIN_PAGE_PATH = '/dashboard/analysis' -export const TENANT_ID = 'TENANT_ID' -export const ONL_AUTH_FIELDS = 'ONL_AUTH_FIELDS' -//路由缓存问题,关闭了tab页时再打开就不刷新 #842 -export const CACHE_INCLUDED_ROUTES = 'CACHE_INCLUDED_ROUTES' -export const CONTENT_WIDTH_TYPE = { - Fluid: 'Fluid', - Fixed: 'Fixed' -} \ No newline at end of file diff --git a/src/utils/JEditableTableUtil.js b/src/utils/JEditableTableUtil.js deleted file mode 100644 index d18d858..0000000 --- a/src/utils/JEditableTableUtil.js +++ /dev/null @@ -1,122 +0,0 @@ -import { getVmParentByName } from '@/utils/util' - -const FormTypes = { - normal: 'normal', - input: 'input', - inputNumber: 'inputNumber', - checkbox: 'checkbox', - select: 'select', - date: 'date', - datetime: 'datetime', - upload: 'upload', - file: 'file', - image: 'image', - popup:'popup', - list_multi:"list_multi", - sel_search:"sel_search", - radio:'radio', - checkbox_meta:"checkbox_meta", - input_pop:'input_pop', - sel_depart: 'sel_depart', - sel_user: 'sel_user', - slot: 'slot', - hidden: 'hidden' -} -const VALIDATE_NO_PASSED = Symbol() -export { FormTypes, VALIDATE_NO_PASSED } - -/** - * 获取指定的 $refs 对象 - * 有时候可能会遇到组件未挂载到页面中的情况,导致无法获取 $refs 中的某个对象 - * 这个方法可以等待挂载完成之后再返回 $refs 的对象,避免报错 - * @author sunjianlei - **/ -export function getRefPromise(vm, name) { - return new Promise((resolve) => { - (function next() { - let ref = vm.$refs[name] - if (ref) { - resolve(ref) - } else { - setTimeout(() => { - next() - }, 10) - } - })() - }) -} - -/** - * 一次性验证主表单和所有的次表单 - * @param form 主表单 form 对象 - * @param cases 接收一个数组,每项都是一个JEditableTable实例 - * @returns {Promise} - * @author sunjianlei - */ -export function validateFormAndTables(form, cases) { - - if (!(form && typeof form.validateFields === 'function')) { - throw `form 参数需要的是一个form对象,而传入的却是${typeof form}` - } - - let options = {} - return new Promise((resolve, reject) => { - // 验证主表表单 - form.validateFields((err, values) => { - err ? reject({ error: VALIDATE_NO_PASSED }) : resolve(values) - }) - }).then(values => { - Object.assign(options, { formValue: values }) - // 验证所有子表的表单 - return validateTables(cases) - }).then(all => { - Object.assign(options, { tablesValue: all }) - return Promise.resolve(options) - }).catch(error => { - return Promise.reject(error) - }) - -} - -/** - * 验证并获取一个或多个表格的所有值 - * @param cases 接收一个数组,每项都是一个JEditableTable实例 - * @param deleteTempId 是否删除临时ID,如果设为true,行编辑就不返回新增行的ID,ID需要后台生成 - * @author sunjianlei - */ -export function validateTables(cases, deleteTempId) { - if (!(cases instanceof Array)) { - throw `'validateTables'函数的'cases'参数需要的是一个数组,而传入的却是${typeof cases}` - } - return new Promise((resolve, reject) => { - let tables = [] - let index = 0; - if(!cases || cases.length === 0){ - resolve() - } - (function next() { - let vm = cases[index] - vm.getAll(true, deleteTempId).then(all => { - tables[index] = all - // 判断校验是否全部完成,完成返回成功,否则继续进行下一步校验 - if (++index === cases.length) { - resolve(tables) - } else ( - next() - ) - }, error => { - // 出现未验证通过的表单,不再进行下一步校验,直接返回失败并跳转到该表格 - if (error === VALIDATE_NO_PASSED) { - // 尝试获取tabKey,如果在ATab组件内即可获取 - let paneKey; - let tabPane = getVmParentByName(vm, 'ATabPane') - if (tabPane) { - paneKey = tabPane.$vnode.key - } - reject({error: VALIDATE_NO_PASSED, index, paneKey}) - } - reject(error) - }) - })() - }) -} \ No newline at end of file diff --git a/src/utils/LunarFullCalendarUtil.js b/src/utils/LunarFullCalendarUtil.js deleted file mode 100644 index e68eb63..0000000 --- a/src/utils/LunarFullCalendarUtil.js +++ /dev/null @@ -1,107 +0,0 @@ -/** - * LunarFullCalendar 公共 js - * - * @version 1.0.0 - * @author sunjianlei - * - * */ - -import { getRefPromise } from '@/utils/JEditableTableUtil' - -/* 日历的视图类型 */ -const calendarViewType = { - month: 'month', // 月视图 - basicWeek: 'basicWeek', // 基础周视图 - basicDay: 'basicDay',// 基础天视图 - agendaWeek: 'agendaWeek', // 议程周视图 - agendaDay: 'agendaDay', // 议程天视图 -} - -/* 定义默认视图 */ -const defaultView = calendarViewType.month - -/* 定义日历默认配置 */ -const defaultSettings = { - locale: 'zh-cn', - // 按钮文字 - buttonText: { - today: '今天', - month: '月', - week: '周', - day: '日' - }, - // 头部排列方式 - header: { - left: 'prev,next, today', - center: 'title', - right: 'hide, custom, month,agendaWeek,agendaDay' - }, - //点击今天日列表图 - eventLimitClick: 'day', - // 隐藏超出的事件 - eventLimit: true, - // 设置每周开始日期为周日 - firstDay: 0, - // 默认显示视图 - defaultView, - timeFormat: 'H:mm', - axisFormat: 'H:mm', - // agenda视图下是否显示all-day - allDaySlot: true, - // agenda视图下all-day的显示文本 - allDayText: '全天', - // 时区默认本地的 - timezone: 'local', - // 周视图和日视同的左侧时间显示 - slotLabelFormat: 'HH:mm', - // 设置第二天阈值 - nextDayThreshold: '00:00:00', -} - -/** 提供了一些增强方法 */ -const CalendarMixins = { - data() { - return { - calenderCurrentViewType: defaultView - } - }, - methods: { - - getCalendarConfigEventHandler() { - return { - // 处理 view changed 事件 - viewRender: (view, element) => { - let { type } = view - - let lastViewType = this.calenderCurrentViewType - this.calenderCurrentViewType = type - - if (typeof this.handleViewRender === 'function') { - this.handleViewRender(type, view, element) - } - - if (lastViewType !== this.calenderCurrentViewType && typeof this.handleViewChanged === 'function') { - this.handleViewChanged(type, view, element) - } - - }, - } - }, - - /** 获取 LunarFullCalendar 实例,ref = baseCalendar */ - getCalendar(fn) { - return getRefPromise(this, 'baseCalendar').then(fn) - }, - - calendarEmit(name, data) { - this.getCalendar(ref => ref.$emit(name, data)) - }, - - /** 强制重新加载所有的事件(日程)*/ - calendarReloadEvents() { - this.calendarEmit('reload-events') - } - } -} - -export { defaultSettings, calendarViewType, CalendarMixins } \ No newline at end of file diff --git a/src/utils/authFilter.js b/src/utils/authFilter.js deleted file mode 100644 index 748a8d4..0000000 --- a/src/utils/authFilter.js +++ /dev/null @@ -1,277 +0,0 @@ -import { USER_AUTH,SYS_BUTTON_AUTH } from "@/store/mutation-types" - -export function disabledAuthFilter(code,formData) { - if(nodeDisabledAuth(code,formData)){ - return true; - }else{ - return globalDisabledAuth(code); - } -} - -function nodeDisabledAuth(code,formData){ - console.log("页面权限禁用--NODE--开始"); - let permissionList = []; - try { - console.log("页面权限禁用--NODE--开始",formData); - if (formData) { - let bpmList = formData.permissionList; - permissionList = bpmList.filter(item=>item.type=='2') - // for (let bpm of bpmList) { - // if(bpm.type == '2') { - // permissionList.push(bpm); - // } - // } - }else{ - return false; - } - } catch (e) { - //console.log("页面权限异常----", e); - } - if (permissionList.length == 0) { - return false; - } - - console.log("流程节点页面权限禁用--NODE--开始"); - let permissions = []; - for (let item of permissionList) { - if(item.type == '2') { - permissions.push(item.action); - } - } - //console.log("页面权限----"+code); - if (!permissions.includes(code)) { - return false; - }else{ - for (let item2 of permissionList) { - if(code === item2.action){ - console.log("流程节点页面权限禁用--NODE--生效"); - return true; - } - } - } - return false; -} - -function globalDisabledAuth(code){ - console.log("全局页面禁用权限--Global--开始"); - - let permissionList = []; - let allPermissionList = []; - - //let authList = Vue.ls.get(USER_AUTH); - let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); - for (let auth of authList) { - if(auth.type == '2') { - permissionList.push(auth); - } - } - //console.log("页面禁用权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); - let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); - for (let gauth of allAuthList) { - if(gauth.type == '2') { - allPermissionList.push(gauth); - } - } - //设置全局配置是否有命中 - let gFlag = false;//禁用命中 - let invalidFlag = false;//无效命中 - if(allPermissionList != null && allPermissionList != "" && allPermissionList != undefined && allPermissionList.length > 0){ - for (let itemG of allPermissionList) { - if(code === itemG.action){ - if(itemG.status == '0'){ - invalidFlag = true; - break; - }else{ - gFlag = true; - break; - } - } - } - } - if(invalidFlag){ - return false; - } - if (permissionList === null || permissionList === "" || permissionList === undefined||permissionList.length<=0) { - return gFlag; - } - let permissions = []; - for (let item of permissionList) { - if(item.type == '2') { - permissions.push(item.action); - } - } - //console.log("页面禁用权限----"+code); - if (!permissions.includes(code)) { - return gFlag; - }else{ - for (let item2 of permissionList) { - if(code === item2.action){ - console.log("全局页面权限解除禁用--Global--生效"); - gFlag = false; - } - } - return gFlag; - } -} - - - -export function colAuthFilter(columns,pre) { - let authList = getNoAuthCols(pre); - const cols = columns.filter(item => { - if (hasColoum(item,authList)) { - return true - } - return false - }) - return cols -} - -/** - * 【子表行编辑】实现两个功能: - * 1、隐藏JEditableTable无权限的字段 - * 2、禁用JEditableTable无权限的字段 - * @param columns - * @param pre - * @returns {*} - */ -export function colAuthFilterJEditableTable(columns,pre) { - let authList = getAllShowAndDisabledAuthCols(pre); - const cols = columns.filter(item => { - let oneAuth = authList.find(auth => { - return auth.action === pre + item.key; - }); - if(!oneAuth){ - return true - } - - //代码严谨处理,防止一个授权标识,配置多次 - if(oneAuth instanceof Array){ - oneAuth = oneAuth[0] - } - - //禁用逻辑 - if (oneAuth.type == '2' && !oneAuth.isAuth) { - item["disabled"] = true - return true - } - //隐藏逻辑逻辑 - if (oneAuth.type == '1' && !oneAuth.isAuth) { - return false - } - return true - }) - return cols -} - - -function hasColoum(item,authList){ - if (authList.includes(item.dataIndex)) { - return false - } - return true -} - -//权限无效时不做控制,有效时控制,只能控制 显示不显示 -//根据授权码前缀获取未授权的列信息 -export function getNoAuthCols(pre){ - if(!pre || pre.length==0){ - return [] - } - let permissionList = []; - let allPermissionList = []; - - //let authList = Vue.ls.get(USER_AUTH); - let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); - for (let auth of authList) { - //显示策略,有效状态 - if(auth.type == '1'&&startWith(auth.action,pre)) { - permissionList.push(substrPre(auth.action,pre)); - } - } - //console.log("页面禁用权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); - let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); - for (let gauth of allAuthList) { - //显示策略,有效状态 - if(gauth.type == '1'&&gauth.status == '1'&&startWith(gauth.action,pre)) { - allPermissionList.push(substrPre(gauth.action,pre)); - } - } - const cols = allPermissionList.filter(item => { - if (permissionList.includes(item)) { - return false; - } - return true; - }) - return cols; -} - -/** - * 将Online的行编辑按钮权限,添加至本地存储 - */ -export function addOnlineBtAuth2Storage(pre, authList){ - let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); - let newAuthList = allAuthList.filter(item=>{ - if(!item.action){ - return true - } - return item.action.indexOf(pre)<0 - }) - if(authList && authList.length>0){ - for(let item of authList){ - newAuthList.push({ - action: pre+item, - type:1, - status:1 - }) - } - let temp = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); - let newArr = temp.filter(item=>{ - if(!item.action){ - return true - } - return item.action.indexOf(pre)<0 || authList.indexOf(item.action.replace(pre, ''))<0 - }) - sessionStorage.setItem(USER_AUTH, JSON.stringify(newArr)) - } - sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(newAuthList)) -} - - - -/** - * 额外增加方法【用于行编辑组件】 - * date: 2020-04-05 - * author: scott - * @param pre - * @returns {*[]} - */ -function getAllShowAndDisabledAuthCols(pre){ - //用户拥有的权限 - let userAuthList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); - //全部权限配置 - let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); - - let newAllAuthList = allAuthList.map(function (item, index) { - let hasAuthArray = userAuthList.filter(u => u.action===item.action ); - if (hasAuthArray && hasAuthArray.length>0) { - item["isAuth"] = true - } - return item; - }) - - return newAllAuthList; -} - -function startWith(str,pre) { - if (pre == null || pre == "" || str==null|| str==""|| str.length == 0 || pre.length > str.length) - return false; - if (str.substr(0, pre.length) == pre) - return true; - else - return false; -} - -function substrPre(str,pre) { - return str.substr(pre.length); -} \ No newline at end of file diff --git a/src/utils/axios.js b/src/utils/axios.js deleted file mode 100644 index de27d4c..0000000 --- a/src/utils/axios.js +++ /dev/null @@ -1,37 +0,0 @@ -const VueAxios = { - vm: {}, - // eslint-disable-next-line no-unused-vars - install(Vue, router = {}, instance) { - if (this.installed) { - return; - } - this.installed = true; - - if (!instance) { - // eslint-disable-next-line no-console - console.error('You have to install axios'); - return; - } - - Vue.axios = instance; - - Object.defineProperties(Vue.prototype, { - axios: { - get: function get() { - return instance; - } - }, - $http: { - get: function get() { - return instance; - } - } - }); - } -}; - -export { - VueAxios, - // eslint-disable-next-line no-undef - //instance as axios -} \ No newline at end of file diff --git a/src/utils/browser.js b/src/utils/browser.js deleted file mode 100644 index 97f232e..0000000 --- a/src/utils/browser.js +++ /dev/null @@ -1,38 +0,0 @@ -//判断是否IE<11浏览器 -export function isIE() { - return navigator.userAgent.indexOf('compatible') > -1 && navigator.userAgent.indexOf('MSIE') > -1 - -} - -export function isIE11() { - return navigator.userAgent.indexOf('Trident') > -1 && navigator.userAgent.indexOf('rv:11.0') > -1 -} - -//判断是否IE的Edge浏览器 -export function isEdge() { - return navigator.userAgent.indexOf('Edge') > -1 && !isIE() -} - -export function getIEVersion() { - let userAgent = navigator.userAgent //取得浏览器的userAgent字符串 - let isIE = isIE() - let isIE11 = isIE11() - let isEdge = isEdge() - - if (isIE) { - let reIE = new RegExp('MSIE (\\d+\\.\\d+);') - reIE.test(userAgent) - let fIEVersion = parseFloat(RegExp['$1']) - if (fIEVersion === 7 || fIEVersion === 8 || fIEVersion === 9 || fIEVersion === 10) { - return fIEVersion - } else { - return 6//IE版本<7 - } - } else if (isEdge) { - return 'edge' - } else if (isIE11) { - return 11 - } else { - return -1 - } -} \ No newline at end of file diff --git a/src/utils/commonUploadFile.js b/src/utils/commonUploadFile.js deleted file mode 100644 index eaa6dbb..0000000 --- a/src/utils/commonUploadFile.js +++ /dev/null @@ -1,52 +0,0 @@ -import { getFileAccessHttpUrl } from '@/api/manage' -const getFileName=(path)=>{ - if(path.lastIndexOf("\\")>=0){ - let reg=new RegExp("\\\\","g"); - path = path.replace(reg,"/"); - } - return path.substring(path.lastIndexOf("/")+1); -} - -const uidGenerator=()=>{ - return '-'+parseInt(Math.random()*10000+1,10); -} - -const getFilePaths=(uploadFiles)=>{ - let arr = []; - if(!uploadFiles){ - return "" - } - for(let a=0;a0){ - return arr.join(",") - } - return "" -} - -const getUploadFileList=(paths)=>{ - if(!paths){ - return []; - } - let fileList = []; - let arr = paths.split(",") - for(let a=0;a content(arg) + ' | 北京市'; // export 箭头函数也可以 -* -*/ - -/** 字段默认值官方示例:获取地址 */ -export function demoFieldDefVal_getAddress(arg) { - if (!arg) { - arg = '朝阳区' - } - return `北京市 ${arg}` -} \ No newline at end of file diff --git a/src/utils/device.js b/src/utils/device.js deleted file mode 100644 index 6bf15fc..0000000 --- a/src/utils/device.js +++ /dev/null @@ -1,23 +0,0 @@ -import enquireJs from 'enquire.js' - -const enquireScreen = function (call) { - // tablet - const handler = { - match: function () { - call && call(0) - }, - unmatch: function () { - call && call(-1) - } - } - // mobile - const handler2 = { - match: () => { - call && call(1) - } - } - enquireJs.register('screen and (max-width: 1087.99px)', handler) - enquireJs.register('screen and (max-width: 767.99px)', handler2) -} - -export default enquireScreen \ No newline at end of file diff --git a/src/utils/encryption/aesEncrypt.js b/src/utils/encryption/aesEncrypt.js deleted file mode 100644 index 07638cf..0000000 --- a/src/utils/encryption/aesEncrypt.js +++ /dev/null @@ -1,6003 +0,0 @@ -import { getAction } from '@/api/manage' -import { ENCRYPTED_STRING } from "@/store/mutation-types" -import Vue from 'vue' - -/** - * 获取加密字符串,并对结果进行缓存 - */ -export function getEncryptedString() { - return getAction("/sys/getEncryptedString",{}).then((res)=>{ - let encryptedString = {}; - encryptedString.key = res.result.key; - encryptedString.iv = res.result.iv; - Vue.ls.set(ENCRYPTED_STRING, encryptedString, 7 * 24 * 60 * 60 * 1000); - return encryptedString; - }); -} - -/** - * AES加密 :字符串 key iv 返回base64 - */ -export function encryption(word, keyStr, ivStr) { - - let key = CryptoJS.enc.Utf8.parse(keyStr) - let iv = CryptoJS.enc.Utf8.parse(ivStr) - - let srcs = CryptoJS.enc.Utf8.parse(word); - var encrypted = CryptoJS.AES.encrypt(srcs, key, { - iv: iv, - mode: CryptoJS.mode.CBC, - padding: CryptoJS.pad.ZeroPadding - }); - // console.log("-=-=-=-", encrypted.ciphertext) - return CryptoJS.enc.Base64.stringify(encrypted.ciphertext); - -} - - -var CryptoJS = CryptoJS || (function (Math, undefined) { - /* - * Local polyfil of Object.create - */ - var create = Object.create || (function () { - function F() {}; - - return function (obj) { - var subtype; - - F.prototype = obj; - - subtype = new F(); - - F.prototype = null; - - return subtype; - }; - }()) - - /** - * CryptoJS namespace. - */ - var C = {}; - - /** - * Library namespace. - */ - var C_lib = C.lib = {}; - - /** - * Base object for prototypal inheritance. - */ - var Base = C_lib.Base = (function () { - - - return { - /** - * Creates a new object that inherits from this object. - * - * @param {Object} overrides Properties to copy into the new object. - * - * @return {Object} The new object. - * - * @static - * - * @example - * - * var MyType = CryptoJS.lib.Base.extend({ - * field: 'value', - * - * method: function () { - * } - * }); - */ - extend: function (overrides) { - // Spawn - var subtype = create(this); - - // Augment - if (overrides) { - subtype.mixIn(overrides); - } - - // Create default initializer - if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { - subtype.init = function () { - subtype.$super.init.apply(this, arguments); - }; - } - - // Initializer's prototype is the subtype object - subtype.init.prototype = subtype; - - // Reference supertype - subtype.$super = this; - - return subtype; - }, - - /** - * Extends this object and runs the init method. - * Arguments to create() will be passed to init(). - * - * @return {Object} The new object. - * - * @static - * - * @example - * - * var instance = MyType.create(); - */ - create: function () { - var instance = this.extend(); - instance.init.apply(instance, arguments); - - return instance; - }, - - /** - * Initializes a newly created object. - * Override this method to add some logic when your objects are created. - * - * @example - * - * var MyType = CryptoJS.lib.Base.extend({ - * init: function () { - * // ... - * } - * }); - */ - init: function () { - }, - - /** - * Copies properties into this object. - * - * @param {Object} properties The properties to mix in. - * - * @example - * - * MyType.mixIn({ - * field: 'value' - * }); - */ - mixIn: function (properties) { - for (var propertyName in properties) { - if (properties.hasOwnProperty(propertyName)) { - this[propertyName] = properties[propertyName]; - } - } - - // IE won't copy toString using the loop above - if (properties.hasOwnProperty('toString')) { - this.toString = properties.toString; - } - }, - - /** - * Creates a copy of this object. - * - * @return {Object} The clone. - * - * @example - * - * var clone = instance.clone(); - */ - clone: function () { - return this.init.prototype.extend(this); - } - }; - }()); - - /** - * An array of 32-bit words. - * - * @property {Array} words The array of 32-bit words. - * @property {number} sigBytes The number of significant bytes in this word array. - */ - var WordArray = C_lib.WordArray = Base.extend({ - /** - * Initializes a newly created word array. - * - * @param {Array} words (Optional) An array of 32-bit words. - * @param {number} sigBytes (Optional) The number of significant bytes in the words. - * - * @example - * - * var wordArray = CryptoJS.lib.WordArray.create(); - * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); - * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); - */ - init: function (words, sigBytes) { - words = this.words = words || []; - - if (sigBytes != undefined) { - this.sigBytes = sigBytes; - } else { - this.sigBytes = words.length * 4; - } - }, - - /** - * Converts this word array to a string. - * - * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex - * - * @return {string} The stringified word array. - * - * @example - * - * var string = wordArray + ''; - * var string = wordArray.toString(); - * var string = wordArray.toString(CryptoJS.enc.Utf8); - */ - toString: function (encoder) { - return (encoder || Hex).stringify(this); - }, - - /** - * Concatenates a word array to this word array. - * - * @param {WordArray} wordArray The word array to append. - * - * @return {WordArray} This word array. - * - * @example - * - * wordArray1.concat(wordArray2); - */ - concat: function (wordArray) { - // Shortcuts - var thisWords = this.words; - var thatWords = wordArray.words; - var thisSigBytes = this.sigBytes; - var thatSigBytes = wordArray.sigBytes; - - // Clamp excess bits - this.clamp(); - - // Concat - if (thisSigBytes % 4) { - // Copy one byte at a time - for (var i = 0; i < thatSigBytes; i++) { - var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); - } - } else { - // Copy one word at a time - for (var i = 0; i < thatSigBytes; i += 4) { - thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2]; - } - } - this.sigBytes += thatSigBytes; - - // Chainable - return this; - }, - - /** - * Removes insignificant bits. - * - * @example - * - * wordArray.clamp(); - */ - clamp: function () { - // Shortcuts - var words = this.words; - var sigBytes = this.sigBytes; - - // Clamp - words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); - words.length = Math.ceil(sigBytes / 4); - }, - - /** - * Creates a copy of this word array. - * - * @return {WordArray} The clone. - * - * @example - * - * var clone = wordArray.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone.words = this.words.slice(0); - - return clone; - }, - - /** - * Creates a word array filled with random bytes. - * - * @param {number} nBytes The number of random bytes to generate. - * - * @return {WordArray} The random word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.lib.WordArray.random(16); - */ - random: function (nBytes) { - var words = []; - - var r = (function (m_w) { - var m_w = m_w; - var m_z = 0x3ade68b1; - var mask = 0xffffffff; - - return function () { - m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask; - m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask; - var result = ((m_z << 0x10) + m_w) & mask; - result /= 0x100000000; - result += 0.5; - return result * (Math.random() > .5 ? 1 : -1); - } - }); - - for (var i = 0, rcache; i < nBytes; i += 4) { - var _r = r((rcache || Math.random()) * 0x100000000); - - rcache = _r() * 0x3ade67b7; - words.push((_r() * 0x100000000) | 0); - } - - return new WordArray.init(words, nBytes); - } - }); - - /** - * Encoder namespace. - */ - var C_enc = C.enc = {}; - - /** - * Hex encoding strategy. - */ - var Hex = C_enc.Hex = { - /** - * Converts a word array to a hex string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The hex string. - * - * @static - * - * @example - * - * var hexString = CryptoJS.enc.Hex.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var hexChars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - hexChars.push((bite >>> 4).toString(16)); - hexChars.push((bite & 0x0f).toString(16)); - } - - return hexChars.join(''); - }, - - /** - * Converts a hex string to a word array. - * - * @param {string} hexStr The hex string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Hex.parse(hexString); - */ - parse: function (hexStr) { - // Shortcut - var hexStrLength = hexStr.length; - - // Convert - var words = []; - for (var i = 0; i < hexStrLength; i += 2) { - words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); - } - - return new WordArray.init(words, hexStrLength / 2); - } - }; - - /** - * Latin1 encoding strategy. - */ - var Latin1 = C_enc.Latin1 = { - /** - * Converts a word array to a Latin1 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The Latin1 string. - * - * @static - * - * @example - * - * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var latin1Chars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - latin1Chars.push(String.fromCharCode(bite)); - } - - return latin1Chars.join(''); - }, - - /** - * Converts a Latin1 string to a word array. - * - * @param {string} latin1Str The Latin1 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); - */ - parse: function (latin1Str) { - // Shortcut - var latin1StrLength = latin1Str.length; - - // Convert - var words = []; - for (var i = 0; i < latin1StrLength; i++) { - words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); - } - - return new WordArray.init(words, latin1StrLength); - } - }; - - /** - * UTF-8 encoding strategy. - */ - var Utf8 = C_enc.Utf8 = { - /** - * Converts a word array to a UTF-8 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-8 string. - * - * @static - * - * @example - * - * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); - */ - stringify: function (wordArray) { - try { - return decodeURIComponent(escape(Latin1.stringify(wordArray))); - } catch (e) { - throw new Error('Malformed UTF-8 data'); - } - }, - - /** - * Converts a UTF-8 string to a word array. - * - * @param {string} utf8Str The UTF-8 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); - */ - parse: function (utf8Str) { - return Latin1.parse(unescape(encodeURIComponent(utf8Str))); - } - }; - - /** - * Abstract buffered block algorithm template. - * - * The property blockSize must be implemented in a concrete subtype. - * - * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 - */ - var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ - /** - * Resets this block algorithm's data buffer to its initial state. - * - * @example - * - * bufferedBlockAlgorithm.reset(); - */ - reset: function () { - // Initial values - this._data = new WordArray.init(); - this._nDataBytes = 0; - }, - - /** - * Adds new data to this block algorithm's buffer. - * - * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. - * - * @example - * - * bufferedBlockAlgorithm._append('data'); - * bufferedBlockAlgorithm._append(wordArray); - */ - _append: function (data) { - // Convert string to WordArray, else assume WordArray already - if (typeof data == 'string') { - data = Utf8.parse(data); - } - - // Append - this._data.concat(data); - this._nDataBytes += data.sigBytes; - }, - - /** - * Processes available data blocks. - * - * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. - * - * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. - * - * @return {WordArray} The processed data. - * - * @example - * - * var processedData = bufferedBlockAlgorithm._process(); - * var processedData = bufferedBlockAlgorithm._process(!!'flush'); - */ - _process: function (doFlush) { - // Shortcuts - var data = this._data; - var dataWords = data.words; - var dataSigBytes = data.sigBytes; - var blockSize = this.blockSize; - var blockSizeBytes = blockSize * 4; - - // Count blocks ready - var nBlocksReady = dataSigBytes / blockSizeBytes; - if (doFlush) { - // Round up to include partial blocks - nBlocksReady = Math.ceil(nBlocksReady); - } else { - // Round down to include only full blocks, - // less the number of blocks that must remain in the buffer - nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); - } - - // Count words ready - var nWordsReady = nBlocksReady * blockSize; - - // Count bytes ready - var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); - - // Process blocks - if (nWordsReady) { - for (var offset = 0; offset < nWordsReady; offset += blockSize) { - // Perform concrete-algorithm logic - this._doProcessBlock(dataWords, offset); - } - - // Remove processed words - var processedWords = dataWords.splice(0, nWordsReady); - data.sigBytes -= nBytesReady; - } - - // Return processed words - return new WordArray.init(processedWords, nBytesReady); - }, - - /** - * Creates a copy of this object. - * - * @return {Object} The clone. - * - * @example - * - * var clone = bufferedBlockAlgorithm.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone._data = this._data.clone(); - - return clone; - }, - - _minBufferSize: 0 - }); - - /** - * Abstract hasher template. - * - * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) - */ - var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ - /** - * Configuration options. - */ - cfg: Base.extend(), - - /** - * Initializes a newly created hasher. - * - * @param {Object} cfg (Optional) The configuration options to use for this hash computation. - * - * @example - * - * var hasher = CryptoJS.algo.SHA256.create(); - */ - init: function (cfg) { - // Apply config defaults - this.cfg = this.cfg.extend(cfg); - - // Set initial values - this.reset(); - }, - - /** - * Resets this hasher to its initial state. - * - * @example - * - * hasher.reset(); - */ - reset: function () { - // Reset data buffer - BufferedBlockAlgorithm.reset.call(this); - - // Perform concrete-hasher logic - this._doReset(); - }, - - /** - * Updates this hasher with a message. - * - * @param {WordArray|string} messageUpdate The message to append. - * - * @return {Hasher} This hasher. - * - * @example - * - * hasher.update('message'); - * hasher.update(wordArray); - */ - update: function (messageUpdate) { - // Append - this._append(messageUpdate); - - // Update the hash - this._process(); - - // Chainable - return this; - }, - - /** - * Finalizes the hash computation. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} messageUpdate (Optional) A final message update. - * - * @return {WordArray} The hash. - * - * @example - * - * var hash = hasher.finalize(); - * var hash = hasher.finalize('message'); - * var hash = hasher.finalize(wordArray); - */ - finalize: function (messageUpdate) { - // Final message update - if (messageUpdate) { - this._append(messageUpdate); - } - - // Perform concrete-hasher logic - var hash = this._doFinalize(); - - return hash; - }, - - blockSize: 512/32, - - /** - * Creates a shortcut function to a hasher's object interface. - * - * @param {Hasher} hasher The hasher to create a helper for. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); - */ - _createHelper: function (hasher) { - return function (message, cfg) { - return new hasher.init(cfg).finalize(message); - }; - }, - - /** - * Creates a shortcut function to the HMAC's object interface. - * - * @param {Hasher} hasher The hasher to use in this HMAC helper. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); - */ - _createHmacHelper: function (hasher) { - return function (message, key) { - return new C_algo.HMAC.init(hasher, key).finalize(message); - }; - } - }); - - /** - * Algorithm namespace. - */ - var C_algo = C.algo = {}; - - return C; -}(Math)); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_enc = C.enc; - - /** - * Base64 encoding strategy. - */ - var Base64 = C_enc.Base64 = { - /** - * Converts a word array to a Base64 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The Base64 string. - * - * @static - * - * @example - * - * var base64String = CryptoJS.enc.Base64.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - var map = this._map; - - // Clamp excess bits - wordArray.clamp(); - - // Convert - var base64Chars = []; - for (var i = 0; i < sigBytes; i += 3) { - var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; - var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; - - var triplet = (byte1 << 16) | (byte2 << 8) | byte3; - - for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { - base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); - } - } - - // Add padding - var paddingChar = map.charAt(64); - if (paddingChar) { - while (base64Chars.length % 4) { - base64Chars.push(paddingChar); - } - } - - return base64Chars.join(''); - }, - - /** - * Converts a Base64 string to a word array. - * - * @param {string} base64Str The Base64 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Base64.parse(base64String); - */ - parse: function (base64Str) { - // Shortcuts - var base64StrLength = base64Str.length; - var map = this._map; - var reverseMap = this._reverseMap; - - if (!reverseMap) { - reverseMap = this._reverseMap = []; - for (var j = 0; j < map.length; j++) { - reverseMap[map.charCodeAt(j)] = j; - } - } - - // Ignore padding - var paddingChar = map.charAt(64); - if (paddingChar) { - var paddingIndex = base64Str.indexOf(paddingChar); - if (paddingIndex !== -1) { - base64StrLength = paddingIndex; - } - } - - // Convert - return parseLoop(base64Str, base64StrLength, reverseMap); - - }, - - _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' - }; - - function parseLoop(base64Str, base64StrLength, reverseMap) { - var words = []; - var nBytes = 0; - for (var i = 0; i < base64StrLength; i++) { - if (i % 4) { - var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); - var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); - words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); - nBytes++; - } - } - return WordArray.create(words, nBytes); - } -}()); - - -(function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Constants table - var T = []; - - // Compute constants - (function () { - for (var i = 0; i < 64; i++) { - T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; - } - }()); - - /** - * MD5 hash algorithm. - */ - var MD5 = C_algo.MD5 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0x67452301, 0xefcdab89, - 0x98badcfe, 0x10325476 - ]); - }, - - _doProcessBlock: function (M, offset) { - // Swap endian - for (var i = 0; i < 16; i++) { - // Shortcuts - var offset_i = offset + i; - var M_offset_i = M[offset_i]; - - M[offset_i] = ( - (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | - (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) - ); - } - - // Shortcuts - var H = this._hash.words; - - var M_offset_0 = M[offset + 0]; - var M_offset_1 = M[offset + 1]; - var M_offset_2 = M[offset + 2]; - var M_offset_3 = M[offset + 3]; - var M_offset_4 = M[offset + 4]; - var M_offset_5 = M[offset + 5]; - var M_offset_6 = M[offset + 6]; - var M_offset_7 = M[offset + 7]; - var M_offset_8 = M[offset + 8]; - var M_offset_9 = M[offset + 9]; - var M_offset_10 = M[offset + 10]; - var M_offset_11 = M[offset + 11]; - var M_offset_12 = M[offset + 12]; - var M_offset_13 = M[offset + 13]; - var M_offset_14 = M[offset + 14]; - var M_offset_15 = M[offset + 15]; - - // Working varialbes - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - - // Computation - a = FF(a, b, c, d, M_offset_0, 7, T[0]); - d = FF(d, a, b, c, M_offset_1, 12, T[1]); - c = FF(c, d, a, b, M_offset_2, 17, T[2]); - b = FF(b, c, d, a, M_offset_3, 22, T[3]); - a = FF(a, b, c, d, M_offset_4, 7, T[4]); - d = FF(d, a, b, c, M_offset_5, 12, T[5]); - c = FF(c, d, a, b, M_offset_6, 17, T[6]); - b = FF(b, c, d, a, M_offset_7, 22, T[7]); - a = FF(a, b, c, d, M_offset_8, 7, T[8]); - d = FF(d, a, b, c, M_offset_9, 12, T[9]); - c = FF(c, d, a, b, M_offset_10, 17, T[10]); - b = FF(b, c, d, a, M_offset_11, 22, T[11]); - a = FF(a, b, c, d, M_offset_12, 7, T[12]); - d = FF(d, a, b, c, M_offset_13, 12, T[13]); - c = FF(c, d, a, b, M_offset_14, 17, T[14]); - b = FF(b, c, d, a, M_offset_15, 22, T[15]); - - a = GG(a, b, c, d, M_offset_1, 5, T[16]); - d = GG(d, a, b, c, M_offset_6, 9, T[17]); - c = GG(c, d, a, b, M_offset_11, 14, T[18]); - b = GG(b, c, d, a, M_offset_0, 20, T[19]); - a = GG(a, b, c, d, M_offset_5, 5, T[20]); - d = GG(d, a, b, c, M_offset_10, 9, T[21]); - c = GG(c, d, a, b, M_offset_15, 14, T[22]); - b = GG(b, c, d, a, M_offset_4, 20, T[23]); - a = GG(a, b, c, d, M_offset_9, 5, T[24]); - d = GG(d, a, b, c, M_offset_14, 9, T[25]); - c = GG(c, d, a, b, M_offset_3, 14, T[26]); - b = GG(b, c, d, a, M_offset_8, 20, T[27]); - a = GG(a, b, c, d, M_offset_13, 5, T[28]); - d = GG(d, a, b, c, M_offset_2, 9, T[29]); - c = GG(c, d, a, b, M_offset_7, 14, T[30]); - b = GG(b, c, d, a, M_offset_12, 20, T[31]); - - a = HH(a, b, c, d, M_offset_5, 4, T[32]); - d = HH(d, a, b, c, M_offset_8, 11, T[33]); - c = HH(c, d, a, b, M_offset_11, 16, T[34]); - b = HH(b, c, d, a, M_offset_14, 23, T[35]); - a = HH(a, b, c, d, M_offset_1, 4, T[36]); - d = HH(d, a, b, c, M_offset_4, 11, T[37]); - c = HH(c, d, a, b, M_offset_7, 16, T[38]); - b = HH(b, c, d, a, M_offset_10, 23, T[39]); - a = HH(a, b, c, d, M_offset_13, 4, T[40]); - d = HH(d, a, b, c, M_offset_0, 11, T[41]); - c = HH(c, d, a, b, M_offset_3, 16, T[42]); - b = HH(b, c, d, a, M_offset_6, 23, T[43]); - a = HH(a, b, c, d, M_offset_9, 4, T[44]); - d = HH(d, a, b, c, M_offset_12, 11, T[45]); - c = HH(c, d, a, b, M_offset_15, 16, T[46]); - b = HH(b, c, d, a, M_offset_2, 23, T[47]); - - a = II(a, b, c, d, M_offset_0, 6, T[48]); - d = II(d, a, b, c, M_offset_7, 10, T[49]); - c = II(c, d, a, b, M_offset_14, 15, T[50]); - b = II(b, c, d, a, M_offset_5, 21, T[51]); - a = II(a, b, c, d, M_offset_12, 6, T[52]); - d = II(d, a, b, c, M_offset_3, 10, T[53]); - c = II(c, d, a, b, M_offset_10, 15, T[54]); - b = II(b, c, d, a, M_offset_1, 21, T[55]); - a = II(a, b, c, d, M_offset_8, 6, T[56]); - d = II(d, a, b, c, M_offset_15, 10, T[57]); - c = II(c, d, a, b, M_offset_6, 15, T[58]); - b = II(b, c, d, a, M_offset_13, 21, T[59]); - a = II(a, b, c, d, M_offset_4, 6, T[60]); - d = II(d, a, b, c, M_offset_11, 10, T[61]); - c = II(c, d, a, b, M_offset_2, 15, T[62]); - b = II(b, c, d, a, M_offset_9, 21, T[63]); - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - - var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); - var nBitsTotalL = nBitsTotal; - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( - (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | - (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) - ); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( - (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | - (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) - ); - - data.sigBytes = (dataWords.length + 1) * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var hash = this._hash; - var H = hash.words; - - // Swap endian - for (var i = 0; i < 4; i++) { - // Shortcut - var H_i = H[i]; - - H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | - (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); - } - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - function FF(a, b, c, d, x, s, t) { - var n = a + ((b & c) | (~b & d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function GG(a, b, c, d, x, s, t) { - var n = a + ((b & d) | (c & ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function HH(a, b, c, d, x, s, t) { - var n = a + (b ^ c ^ d) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function II(a, b, c, d, x, s, t) { - var n = a + (c ^ (b | ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.MD5('message'); - * var hash = CryptoJS.MD5(wordArray); - */ - C.MD5 = Hasher._createHelper(MD5); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacMD5(message, key); - */ - C.HmacMD5 = Hasher._createHmacHelper(MD5); -}(Math)); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Reusable object - var W = []; - - /** - * SHA-1 hash algorithm. - */ - var SHA1 = C_algo.SHA1 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0x67452301, 0xefcdab89, - 0x98badcfe, 0x10325476, - 0xc3d2e1f0 - ]); - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var H = this._hash.words; - - // Working variables - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - var e = H[4]; - - // Computation - for (var i = 0; i < 80; i++) { - if (i < 16) { - W[i] = M[offset + i] | 0; - } else { - var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; - W[i] = (n << 1) | (n >>> 31); - } - - var t = ((a << 5) | (a >>> 27)) + e + W[i]; - if (i < 20) { - t += ((b & c) | (~b & d)) + 0x5a827999; - } else if (i < 40) { - t += (b ^ c ^ d) + 0x6ed9eba1; - } else if (i < 60) { - t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; - } else /* if (i < 80) */ { - t += (b ^ c ^ d) - 0x359d3e2a; - } - - e = d; - d = c; - c = (b << 30) | (b >>> 2); - b = a; - a = t; - } - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - H[4] = (H[4] + e) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Return final computed hash - return this._hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA1('message'); - * var hash = CryptoJS.SHA1(wordArray); - */ - C.SHA1 = Hasher._createHelper(SHA1); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA1(message, key); - */ - C.HmacSHA1 = Hasher._createHmacHelper(SHA1); -}()); - - -(function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Initialization and round constants tables - var H = []; - var K = []; - - // Compute constants - (function () { - function isPrime(n) { - var sqrtN = Math.sqrt(n); - for (var factor = 2; factor <= sqrtN; factor++) { - if (!(n % factor)) { - return false; - } - } - - return true; - } - - function getFractionalBits(n) { - return ((n - (n | 0)) * 0x100000000) | 0; - } - - var n = 2; - var nPrime = 0; - while (nPrime < 64) { - if (isPrime(n)) { - if (nPrime < 8) { - H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); - } - K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); - - nPrime++; - } - - n++; - } - }()); - - // Reusable object - var W = []; - - /** - * SHA-256 hash algorithm. - */ - var SHA256 = C_algo.SHA256 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init(H.slice(0)); - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var H = this._hash.words; - - // Working variables - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - var e = H[4]; - var f = H[5]; - var g = H[6]; - var h = H[7]; - - // Computation - for (var i = 0; i < 64; i++) { - if (i < 16) { - W[i] = M[offset + i] | 0; - } else { - var gamma0x = W[i - 15]; - var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ - ((gamma0x << 14) | (gamma0x >>> 18)) ^ - (gamma0x >>> 3); - - var gamma1x = W[i - 2]; - var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ - ((gamma1x << 13) | (gamma1x >>> 19)) ^ - (gamma1x >>> 10); - - W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; - } - - var ch = (e & f) ^ (~e & g); - var maj = (a & b) ^ (a & c) ^ (b & c); - - var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); - var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); - - var t1 = h + sigma1 + ch + K[i] + W[i]; - var t2 = sigma0 + maj; - - h = g; - g = f; - f = e; - e = (d + t1) | 0; - d = c; - c = b; - b = a; - a = (t1 + t2) | 0; - } - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - H[4] = (H[4] + e) | 0; - H[5] = (H[5] + f) | 0; - H[6] = (H[6] + g) | 0; - H[7] = (H[7] + h) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Return final computed hash - return this._hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA256('message'); - * var hash = CryptoJS.SHA256(wordArray); - */ - C.SHA256 = Hasher._createHelper(SHA256); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA256(message, key); - */ - C.HmacSHA256 = Hasher._createHmacHelper(SHA256); -}(Math)); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_enc = C.enc; - - /** - * UTF-16 BE encoding strategy. - */ - var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { - /** - * Converts a word array to a UTF-16 BE string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-16 BE string. - * - * @static - * - * @example - * - * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var utf16Chars = []; - for (var i = 0; i < sigBytes; i += 2) { - var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; - utf16Chars.push(String.fromCharCode(codePoint)); - } - - return utf16Chars.join(''); - }, - - /** - * Converts a UTF-16 BE string to a word array. - * - * @param {string} utf16Str The UTF-16 BE string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); - */ - parse: function (utf16Str) { - // Shortcut - var utf16StrLength = utf16Str.length; - - // Convert - var words = []; - for (var i = 0; i < utf16StrLength; i++) { - words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); - } - - return WordArray.create(words, utf16StrLength * 2); - } - }; - - /** - * UTF-16 LE encoding strategy. - */ - C_enc.Utf16LE = { - /** - * Converts a word array to a UTF-16 LE string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-16 LE string. - * - * @static - * - * @example - * - * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var utf16Chars = []; - for (var i = 0; i < sigBytes; i += 2) { - var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); - utf16Chars.push(String.fromCharCode(codePoint)); - } - - return utf16Chars.join(''); - }, - - /** - * Converts a UTF-16 LE string to a word array. - * - * @param {string} utf16Str The UTF-16 LE string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); - */ - parse: function (utf16Str) { - // Shortcut - var utf16StrLength = utf16Str.length; - - // Convert - var words = []; - for (var i = 0; i < utf16StrLength; i++) { - words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); - } - - return WordArray.create(words, utf16StrLength * 2); - } - }; - - function swapEndian(word) { - return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); - } -}()); - - -(function () { - // Check if typed arrays are supported - if (typeof ArrayBuffer != 'function') { - return; - } - - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - - // Reference original init - var superInit = WordArray.init; - - // Augment WordArray.init to handle typed arrays - var subInit = WordArray.init = function (typedArray) { - // Convert buffers to uint8 - if (typedArray instanceof ArrayBuffer) { - typedArray = new Uint8Array(typedArray); - } - - // Convert other array views to uint8 - if ( - typedArray instanceof Int8Array || - (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || - typedArray instanceof Int16Array || - typedArray instanceof Uint16Array || - typedArray instanceof Int32Array || - typedArray instanceof Uint32Array || - typedArray instanceof Float32Array || - typedArray instanceof Float64Array - ) { - typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); - } - - // Handle Uint8Array - if (typedArray instanceof Uint8Array) { - // Shortcut - var typedArrayByteLength = typedArray.byteLength; - - // Extract bytes - var words = []; - for (var i = 0; i < typedArrayByteLength; i++) { - words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); - } - - // Initialize this word array - superInit.call(this, words, typedArrayByteLength); - } else { - // Else call normal init - superInit.apply(this, arguments); - } - }; - - subInit.prototype = WordArray; -}()); - - -/** @preserve - (c) 2012 by Cédric Mesnil. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -(function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Constants table - var _zl = WordArray.create([ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, - 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, - 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, - 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); - var _zr = WordArray.create([ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, - 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, - 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, - 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, - 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); - var _sl = WordArray.create([ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, - 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, - 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, - 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, - 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); - var _sr = WordArray.create([ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, - 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, - 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, - 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, - 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); - - var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); - var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); - - /** - * RIPEMD160 hash algorithm. - */ - var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ - _doReset: function () { - this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); - }, - - _doProcessBlock: function (M, offset) { - - // Swap endian - for (var i = 0; i < 16; i++) { - // Shortcuts - var offset_i = offset + i; - var M_offset_i = M[offset_i]; - - // Swap - M[offset_i] = ( - (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | - (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) - ); - } - // Shortcut - var H = this._hash.words; - var hl = _hl.words; - var hr = _hr.words; - var zl = _zl.words; - var zr = _zr.words; - var sl = _sl.words; - var sr = _sr.words; - - // Working variables - var al, bl, cl, dl, el; - var ar, br, cr, dr, er; - - ar = al = H[0]; - br = bl = H[1]; - cr = cl = H[2]; - dr = dl = H[3]; - er = el = H[4]; - // Computation - var t; - for (var i = 0; i < 80; i += 1) { - t = (al + M[offset+zl[i]])|0; - if (i<16){ - t += f1(bl,cl,dl) + hl[0]; - } else if (i<32) { - t += f2(bl,cl,dl) + hl[1]; - } else if (i<48) { - t += f3(bl,cl,dl) + hl[2]; - } else if (i<64) { - t += f4(bl,cl,dl) + hl[3]; - } else {// if (i<80) { - t += f5(bl,cl,dl) + hl[4]; - } - t = t|0; - t = rotl(t,sl[i]); - t = (t+el)|0; - al = el; - el = dl; - dl = rotl(cl, 10); - cl = bl; - bl = t; - - t = (ar + M[offset+zr[i]])|0; - if (i<16){ - t += f5(br,cr,dr) + hr[0]; - } else if (i<32) { - t += f4(br,cr,dr) + hr[1]; - } else if (i<48) { - t += f3(br,cr,dr) + hr[2]; - } else if (i<64) { - t += f2(br,cr,dr) + hr[3]; - } else {// if (i<80) { - t += f1(br,cr,dr) + hr[4]; - } - t = t|0; - t = rotl(t,sr[i]) ; - t = (t+er)|0; - ar = er; - er = dr; - dr = rotl(cr, 10); - cr = br; - br = t; - } - // Intermediate hash value - t = (H[1] + cl + dr)|0; - H[1] = (H[2] + dl + er)|0; - H[2] = (H[3] + el + ar)|0; - H[3] = (H[4] + al + br)|0; - H[4] = (H[0] + bl + cr)|0; - H[0] = t; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( - (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | - (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) - ); - data.sigBytes = (dataWords.length + 1) * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var hash = this._hash; - var H = hash.words; - - // Swap endian - for (var i = 0; i < 5; i++) { - // Shortcut - var H_i = H[i]; - - // Swap - H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | - (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); - } - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - - function f1(x, y, z) { - return ((x) ^ (y) ^ (z)); - - } - - function f2(x, y, z) { - return (((x)&(y)) | ((~x)&(z))); - } - - function f3(x, y, z) { - return (((x) | (~(y))) ^ (z)); - } - - function f4(x, y, z) { - return (((x) & (z)) | ((y)&(~(z)))); - } - - function f5(x, y, z) { - return ((x) ^ ((y) |(~(z)))); - - } - - function rotl(x,n) { - return (x<>>(32-n)); - } - - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.RIPEMD160('message'); - * var hash = CryptoJS.RIPEMD160(wordArray); - */ - C.RIPEMD160 = Hasher._createHelper(RIPEMD160); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacRIPEMD160(message, key); - */ - C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); -}(Math)); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var C_enc = C.enc; - var Utf8 = C_enc.Utf8; - var C_algo = C.algo; - - /** - * HMAC algorithm. - */ - var HMAC = C_algo.HMAC = Base.extend({ - /** - * Initializes a newly created HMAC. - * - * @param {Hasher} hasher The hash algorithm to use. - * @param {WordArray|string} key The secret key. - * - * @example - * - * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); - */ - init: function (hasher, key) { - // Init hasher - hasher = this._hasher = new hasher.init(); - - // Convert string to WordArray, else assume WordArray already - if (typeof key == 'string') { - key = Utf8.parse(key); - } - - // Shortcuts - var hasherBlockSize = hasher.blockSize; - var hasherBlockSizeBytes = hasherBlockSize * 4; - - // Allow arbitrary length keys - if (key.sigBytes > hasherBlockSizeBytes) { - key = hasher.finalize(key); - } - - // Clamp excess bits - key.clamp(); - - // Clone key for inner and outer pads - var oKey = this._oKey = key.clone(); - var iKey = this._iKey = key.clone(); - - // Shortcuts - var oKeyWords = oKey.words; - var iKeyWords = iKey.words; - - // XOR keys with pad constants - for (var i = 0; i < hasherBlockSize; i++) { - oKeyWords[i] ^= 0x5c5c5c5c; - iKeyWords[i] ^= 0x36363636; - } - oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; - - // Set initial values - this.reset(); - }, - - /** - * Resets this HMAC to its initial state. - * - * @example - * - * hmacHasher.reset(); - */ - reset: function () { - // Shortcut - var hasher = this._hasher; - - // Reset - hasher.reset(); - hasher.update(this._iKey); - }, - - /** - * Updates this HMAC with a message. - * - * @param {WordArray|string} messageUpdate The message to append. - * - * @return {HMAC} This HMAC instance. - * - * @example - * - * hmacHasher.update('message'); - * hmacHasher.update(wordArray); - */ - update: function (messageUpdate) { - this._hasher.update(messageUpdate); - - // Chainable - return this; - }, - - /** - * Finalizes the HMAC computation. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} messageUpdate (Optional) A final message update. - * - * @return {WordArray} The HMAC. - * - * @example - * - * var hmac = hmacHasher.finalize(); - * var hmac = hmacHasher.finalize('message'); - * var hmac = hmacHasher.finalize(wordArray); - */ - finalize: function (messageUpdate) { - // Shortcut - var hasher = this._hasher; - - // Compute HMAC - var innerHash = hasher.finalize(messageUpdate); - hasher.reset(); - var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); - - return hmac; - } - }); -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var SHA1 = C_algo.SHA1; - var HMAC = C_algo.HMAC; - - /** - * Password-Based Key Derivation Function 2 algorithm. - */ - var PBKDF2 = C_algo.PBKDF2 = Base.extend({ - /** - * Configuration options. - * - * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) - * @property {Hasher} hasher The hasher to use. Default: SHA1 - * @property {number} iterations The number of iterations to perform. Default: 1 - */ - cfg: Base.extend({ - keySize: 128/32, - hasher: SHA1, - iterations: 1 - }), - - /** - * Initializes a newly created key derivation function. - * - * @param {Object} cfg (Optional) The configuration options to use for the derivation. - * - * @example - * - * var kdf = CryptoJS.algo.PBKDF2.create(); - * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); - * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); - */ - init: function (cfg) { - this.cfg = this.cfg.extend(cfg); - }, - - /** - * Computes the Password-Based Key Derivation Function 2. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * - * @return {WordArray} The derived key. - * - * @example - * - * var key = kdf.compute(password, salt); - */ - compute: function (password, salt) { - // Shortcut - var cfg = this.cfg; - - // Init HMAC - var hmac = HMAC.create(cfg.hasher, password); - - // Initial values - var derivedKey = WordArray.create(); - var blockIndex = WordArray.create([0x00000001]); - - // Shortcuts - var derivedKeyWords = derivedKey.words; - var blockIndexWords = blockIndex.words; - var keySize = cfg.keySize; - var iterations = cfg.iterations; - - // Generate key - while (derivedKeyWords.length < keySize) { - var block = hmac.update(salt).finalize(blockIndex); - hmac.reset(); - - // Shortcuts - var blockWords = block.words; - var blockWordsLength = blockWords.length; - - // Iterations - var intermediate = block; - for (var i = 1; i < iterations; i++) { - intermediate = hmac.finalize(intermediate); - hmac.reset(); - - // Shortcut - var intermediateWords = intermediate.words; - - // XOR intermediate with block - for (var j = 0; j < blockWordsLength; j++) { - blockWords[j] ^= intermediateWords[j]; - } - } - - derivedKey.concat(block); - blockIndexWords[0]++; - } - derivedKey.sigBytes = keySize * 4; - - return derivedKey; - } - }); - - /** - * Computes the Password-Based Key Derivation Function 2. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * @param {Object} cfg (Optional) The configuration options to use for this computation. - * - * @return {WordArray} The derived key. - * - * @static - * - * @example - * - * var key = CryptoJS.PBKDF2(password, salt); - * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); - * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); - */ - C.PBKDF2 = function (password, salt, cfg) { - return PBKDF2.create(cfg).compute(password, salt); - }; -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var MD5 = C_algo.MD5; - - /** - * This key derivation function is meant to conform with EVP_BytesToKey. - * www.openssl.org/docs/crypto/EVP_BytesToKey.html - */ - var EvpKDF = C_algo.EvpKDF = Base.extend({ - /** - * Configuration options. - * - * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) - * @property {Hasher} hasher The hash algorithm to use. Default: MD5 - * @property {number} iterations The number of iterations to perform. Default: 1 - */ - cfg: Base.extend({ - keySize: 128/32, - hasher: MD5, - iterations: 1 - }), - - /** - * Initializes a newly created key derivation function. - * - * @param {Object} cfg (Optional) The configuration options to use for the derivation. - * - * @example - * - * var kdf = CryptoJS.algo.EvpKDF.create(); - * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); - * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); - */ - init: function (cfg) { - this.cfg = this.cfg.extend(cfg); - }, - - /** - * Derives a key from a password. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * - * @return {WordArray} The derived key. - * - * @example - * - * var key = kdf.compute(password, salt); - */ - compute: function (password, salt) { - // Shortcut - var cfg = this.cfg; - - // Init hasher - var hasher = cfg.hasher.create(); - - // Initial values - var derivedKey = WordArray.create(); - - // Shortcuts - var derivedKeyWords = derivedKey.words; - var keySize = cfg.keySize; - var iterations = cfg.iterations; - - // Generate key - while (derivedKeyWords.length < keySize) { - if (block) { - hasher.update(block); - } - var block = hasher.update(password).finalize(salt); - hasher.reset(); - - // Iterations - for (var i = 1; i < iterations; i++) { - block = hasher.finalize(block); - hasher.reset(); - } - - derivedKey.concat(block); - } - derivedKey.sigBytes = keySize * 4; - - return derivedKey; - } - }); - - /** - * Derives a key from a password. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * @param {Object} cfg (Optional) The configuration options to use for this computation. - * - * @return {WordArray} The derived key. - * - * @static - * - * @example - * - * var key = CryptoJS.EvpKDF(password, salt); - * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); - * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); - */ - C.EvpKDF = function (password, salt, cfg) { - return EvpKDF.create(cfg).compute(password, salt); - }; -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var SHA256 = C_algo.SHA256; - - /** - * SHA-224 hash algorithm. - */ - var SHA224 = C_algo.SHA224 = SHA256.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, - 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 - ]); - }, - - _doFinalize: function () { - var hash = SHA256._doFinalize.call(this); - - hash.sigBytes -= 4; - - return hash; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA224('message'); - * var hash = CryptoJS.SHA224(wordArray); - */ - C.SHA224 = SHA256._createHelper(SHA224); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA224(message, key); - */ - C.HmacSHA224 = SHA256._createHmacHelper(SHA224); -}()); - - -(function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var X32WordArray = C_lib.WordArray; - - /** - * x64 namespace. - */ - var C_x64 = C.x64 = {}; - - /** - * A 64-bit word. - */ - var X64Word = C_x64.Word = Base.extend({ - /** - * Initializes a newly created 64-bit word. - * - * @param {number} high The high 32 bits. - * @param {number} low The low 32 bits. - * - * @example - * - * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); - */ - init: function (high, low) { - this.high = high; - this.low = low; - } - - /** - * Bitwise NOTs this word. - * - * @return {X64Word} A new x64-Word object after negating. - * - * @example - * - * var negated = x64Word.not(); - */ - // not: function () { - // var high = ~this.high; - // var low = ~this.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise ANDs this word with the passed word. - * - * @param {X64Word} word The x64-Word to AND with this word. - * - * @return {X64Word} A new x64-Word object after ANDing. - * - * @example - * - * var anded = x64Word.and(anotherX64Word); - */ - // and: function (word) { - // var high = this.high & word.high; - // var low = this.low & word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise ORs this word with the passed word. - * - * @param {X64Word} word The x64-Word to OR with this word. - * - * @return {X64Word} A new x64-Word object after ORing. - * - * @example - * - * var ored = x64Word.or(anotherX64Word); - */ - // or: function (word) { - // var high = this.high | word.high; - // var low = this.low | word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise XORs this word with the passed word. - * - * @param {X64Word} word The x64-Word to XOR with this word. - * - * @return {X64Word} A new x64-Word object after XORing. - * - * @example - * - * var xored = x64Word.xor(anotherX64Word); - */ - // xor: function (word) { - // var high = this.high ^ word.high; - // var low = this.low ^ word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Shifts this word n bits to the left. - * - * @param {number} n The number of bits to shift. - * - * @return {X64Word} A new x64-Word object after shifting. - * - * @example - * - * var shifted = x64Word.shiftL(25); - */ - // shiftL: function (n) { - // if (n < 32) { - // var high = (this.high << n) | (this.low >>> (32 - n)); - // var low = this.low << n; - // } else { - // var high = this.low << (n - 32); - // var low = 0; - // } - - // return X64Word.create(high, low); - // }, - - /** - * Shifts this word n bits to the right. - * - * @param {number} n The number of bits to shift. - * - * @return {X64Word} A new x64-Word object after shifting. - * - * @example - * - * var shifted = x64Word.shiftR(7); - */ - // shiftR: function (n) { - // if (n < 32) { - // var low = (this.low >>> n) | (this.high << (32 - n)); - // var high = this.high >>> n; - // } else { - // var low = this.high >>> (n - 32); - // var high = 0; - // } - - // return X64Word.create(high, low); - // }, - - /** - * Rotates this word n bits to the left. - * - * @param {number} n The number of bits to rotate. - * - * @return {X64Word} A new x64-Word object after rotating. - * - * @example - * - * var rotated = x64Word.rotL(25); - */ - // rotL: function (n) { - // return this.shiftL(n).or(this.shiftR(64 - n)); - // }, - - /** - * Rotates this word n bits to the right. - * - * @param {number} n The number of bits to rotate. - * - * @return {X64Word} A new x64-Word object after rotating. - * - * @example - * - * var rotated = x64Word.rotR(7); - */ - // rotR: function (n) { - // return this.shiftR(n).or(this.shiftL(64 - n)); - // }, - - /** - * Adds this word with the passed word. - * - * @param {X64Word} word The x64-Word to add with this word. - * - * @return {X64Word} A new x64-Word object after adding. - * - * @example - * - * var added = x64Word.add(anotherX64Word); - */ - // add: function (word) { - // var low = (this.low + word.low) | 0; - // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; - // var high = (this.high + word.high + carry) | 0; - - // return X64Word.create(high, low); - // } - }); - - /** - * An array of 64-bit words. - * - * @property {Array} words The array of CryptoJS.x64.Word objects. - * @property {number} sigBytes The number of significant bytes in this word array. - */ - var X64WordArray = C_x64.WordArray = Base.extend({ - /** - * Initializes a newly created word array. - * - * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. - * @param {number} sigBytes (Optional) The number of significant bytes in the words. - * - * @example - * - * var wordArray = CryptoJS.x64.WordArray.create(); - * - * var wordArray = CryptoJS.x64.WordArray.create([ - * CryptoJS.x64.Word.create(0x00010203, 0x04050607), - * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) - * ]); - * - * var wordArray = CryptoJS.x64.WordArray.create([ - * CryptoJS.x64.Word.create(0x00010203, 0x04050607), - * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) - * ], 10); - */ - init: function (words, sigBytes) { - words = this.words = words || []; - - if (sigBytes != undefined) { - this.sigBytes = sigBytes; - } else { - this.sigBytes = words.length * 8; - } - }, - - /** - * Converts this 64-bit word array to a 32-bit word array. - * - * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. - * - * @example - * - * var x32WordArray = x64WordArray.toX32(); - */ - toX32: function () { - // Shortcuts - var x64Words = this.words; - var x64WordsLength = x64Words.length; - - // Convert - var x32Words = []; - for (var i = 0; i < x64WordsLength; i++) { - var x64Word = x64Words[i]; - x32Words.push(x64Word.high); - x32Words.push(x64Word.low); - } - - return X32WordArray.create(x32Words, this.sigBytes); - }, - - /** - * Creates a copy of this word array. - * - * @return {X64WordArray} The clone. - * - * @example - * - * var clone = x64WordArray.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - - // Clone "words" array - var words = clone.words = this.words.slice(0); - - // Clone each X64Word object - var wordsLength = words.length; - for (var i = 0; i < wordsLength; i++) { - words[i] = words[i].clone(); - } - - return clone; - } - }); -}()); - - -(function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var C_algo = C.algo; - - // Constants tables - var RHO_OFFSETS = []; - var PI_INDEXES = []; - var ROUND_CONSTANTS = []; - - // Compute Constants - (function () { - // Compute rho offset constants - var x = 1, y = 0; - for (var t = 0; t < 24; t++) { - RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; - - var newX = y % 5; - var newY = (2 * x + 3 * y) % 5; - x = newX; - y = newY; - } - - // Compute pi index constants - for (var x = 0; x < 5; x++) { - for (var y = 0; y < 5; y++) { - PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; - } - } - - // Compute round constants - var LFSR = 0x01; - for (var i = 0; i < 24; i++) { - var roundConstantMsw = 0; - var roundConstantLsw = 0; - - for (var j = 0; j < 7; j++) { - if (LFSR & 0x01) { - var bitPosition = (1 << j) - 1; - if (bitPosition < 32) { - roundConstantLsw ^= 1 << bitPosition; - } else /* if (bitPosition >= 32) */ { - roundConstantMsw ^= 1 << (bitPosition - 32); - } - } - - // Compute next LFSR - if (LFSR & 0x80) { - // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 - LFSR = (LFSR << 1) ^ 0x71; - } else { - LFSR <<= 1; - } - } - - ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); - } - }()); - - // Reusable objects for temporary values - var T = []; - (function () { - for (var i = 0; i < 25; i++) { - T[i] = X64Word.create(); - } - }()); - - /** - * SHA-3 hash algorithm. - */ - var SHA3 = C_algo.SHA3 = Hasher.extend({ - /** - * Configuration options. - * - * @property {number} outputLength - * The desired number of bits in the output hash. - * Only values permitted are: 224, 256, 384, 512. - * Default: 512 - */ - cfg: Hasher.cfg.extend({ - outputLength: 512 - }), - - _doReset: function () { - var state = this._state = [] - for (var i = 0; i < 25; i++) { - state[i] = new X64Word.init(); - } - - this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; - }, - - _doProcessBlock: function (M, offset) { - // Shortcuts - var state = this._state; - var nBlockSizeLanes = this.blockSize / 2; - - // Absorb - for (var i = 0; i < nBlockSizeLanes; i++) { - // Shortcuts - var M2i = M[offset + 2 * i]; - var M2i1 = M[offset + 2 * i + 1]; - - // Swap endian - M2i = ( - (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | - (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) - ); - M2i1 = ( - (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | - (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) - ); - - // Absorb message into state - var lane = state[i]; - lane.high ^= M2i1; - lane.low ^= M2i; - } - - // Rounds - for (var round = 0; round < 24; round++) { - // Theta - for (var x = 0; x < 5; x++) { - // Mix column lanes - var tMsw = 0, tLsw = 0; - for (var y = 0; y < 5; y++) { - var lane = state[x + 5 * y]; - tMsw ^= lane.high; - tLsw ^= lane.low; - } - - // Temporary values - var Tx = T[x]; - Tx.high = tMsw; - Tx.low = tLsw; - } - for (var x = 0; x < 5; x++) { - // Shortcuts - var Tx4 = T[(x + 4) % 5]; - var Tx1 = T[(x + 1) % 5]; - var Tx1Msw = Tx1.high; - var Tx1Lsw = Tx1.low; - - // Mix surrounding columns - var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); - var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); - for (var y = 0; y < 5; y++) { - var lane = state[x + 5 * y]; - lane.high ^= tMsw; - lane.low ^= tLsw; - } - } - - // Rho Pi - for (var laneIndex = 1; laneIndex < 25; laneIndex++) { - // Shortcuts - var lane = state[laneIndex]; - var laneMsw = lane.high; - var laneLsw = lane.low; - var rhoOffset = RHO_OFFSETS[laneIndex]; - - // Rotate lanes - if (rhoOffset < 32) { - var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); - var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); - } else /* if (rhoOffset >= 32) */ { - var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); - var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); - } - - // Transpose lanes - var TPiLane = T[PI_INDEXES[laneIndex]]; - TPiLane.high = tMsw; - TPiLane.low = tLsw; - } - - // Rho pi at x = y = 0 - var T0 = T[0]; - var state0 = state[0]; - T0.high = state0.high; - T0.low = state0.low; - - // Chi - for (var x = 0; x < 5; x++) { - for (var y = 0; y < 5; y++) { - // Shortcuts - var laneIndex = x + 5 * y; - var lane = state[laneIndex]; - var TLane = T[laneIndex]; - var Tx1Lane = T[((x + 1) % 5) + 5 * y]; - var Tx2Lane = T[((x + 2) % 5) + 5 * y]; - - // Mix rows - lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); - lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); - } - } - - // Iota - var lane = state[0]; - var roundConstant = ROUND_CONSTANTS[round]; - lane.high ^= roundConstant.high; - lane.low ^= roundConstant.low;; - } - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - var blockSizeBits = this.blockSize * 32; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); - dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var state = this._state; - var outputLengthBytes = this.cfg.outputLength / 8; - var outputLengthLanes = outputLengthBytes / 8; - - // Squeeze - var hashWords = []; - for (var i = 0; i < outputLengthLanes; i++) { - // Shortcuts - var lane = state[i]; - var laneMsw = lane.high; - var laneLsw = lane.low; - - // Swap endian - laneMsw = ( - (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | - (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) - ); - laneLsw = ( - (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | - (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) - ); - - // Squeeze state to retrieve hash - hashWords.push(laneLsw); - hashWords.push(laneMsw); - } - - // Return final computed hash - return new WordArray.init(hashWords, outputLengthBytes); - }, - - clone: function () { - var clone = Hasher.clone.call(this); - - var state = clone._state = this._state.slice(0); - for (var i = 0; i < 25; i++) { - state[i] = state[i].clone(); - } - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA3('message'); - * var hash = CryptoJS.SHA3(wordArray); - */ - C.SHA3 = Hasher._createHelper(SHA3); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA3(message, key); - */ - C.HmacSHA3 = Hasher._createHmacHelper(SHA3); -}(Math)); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Hasher = C_lib.Hasher; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var X64WordArray = C_x64.WordArray; - var C_algo = C.algo; - - function X64Word_create() { - return X64Word.create.apply(X64Word, arguments); - } - - // Constants - var K = [ - X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), - X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), - X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), - X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), - X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), - X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), - X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), - X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), - X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), - X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), - X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), - X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), - X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), - X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), - X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), - X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), - X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), - X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), - X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), - X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), - X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), - X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), - X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), - X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), - X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), - X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), - X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), - X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), - X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), - X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), - X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), - X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), - X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), - X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), - X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), - X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), - X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), - X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), - X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), - X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) - ]; - - // Reusable objects - var W = []; - (function () { - for (var i = 0; i < 80; i++) { - W[i] = X64Word_create(); - } - }()); - - /** - * SHA-512 hash algorithm. - */ - var SHA512 = C_algo.SHA512 = Hasher.extend({ - _doReset: function () { - this._hash = new X64WordArray.init([ - new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), - new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), - new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), - new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) - ]); - }, - - _doProcessBlock: function (M, offset) { - // Shortcuts - var H = this._hash.words; - - var H0 = H[0]; - var H1 = H[1]; - var H2 = H[2]; - var H3 = H[3]; - var H4 = H[4]; - var H5 = H[5]; - var H6 = H[6]; - var H7 = H[7]; - - var H0h = H0.high; - var H0l = H0.low; - var H1h = H1.high; - var H1l = H1.low; - var H2h = H2.high; - var H2l = H2.low; - var H3h = H3.high; - var H3l = H3.low; - var H4h = H4.high; - var H4l = H4.low; - var H5h = H5.high; - var H5l = H5.low; - var H6h = H6.high; - var H6l = H6.low; - var H7h = H7.high; - var H7l = H7.low; - - // Working variables - var ah = H0h; - var al = H0l; - var bh = H1h; - var bl = H1l; - var ch = H2h; - var cl = H2l; - var dh = H3h; - var dl = H3l; - var eh = H4h; - var el = H4l; - var fh = H5h; - var fl = H5l; - var gh = H6h; - var gl = H6l; - var hh = H7h; - var hl = H7l; - - // Rounds - for (var i = 0; i < 80; i++) { - // Shortcut - var Wi = W[i]; - - // Extend message - if (i < 16) { - var Wih = Wi.high = M[offset + i * 2] | 0; - var Wil = Wi.low = M[offset + i * 2 + 1] | 0; - } else { - // Gamma0 - var gamma0x = W[i - 15]; - var gamma0xh = gamma0x.high; - var gamma0xl = gamma0x.low; - var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); - var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); - - // Gamma1 - var gamma1x = W[i - 2]; - var gamma1xh = gamma1x.high; - var gamma1xl = gamma1x.low; - var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); - var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); - - // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] - var Wi7 = W[i - 7]; - var Wi7h = Wi7.high; - var Wi7l = Wi7.low; - - var Wi16 = W[i - 16]; - var Wi16h = Wi16.high; - var Wi16l = Wi16.low; - - var Wil = gamma0l + Wi7l; - var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); - var Wil = Wil + gamma1l; - var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); - var Wil = Wil + Wi16l; - var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); - - Wi.high = Wih; - Wi.low = Wil; - } - - var chh = (eh & fh) ^ (~eh & gh); - var chl = (el & fl) ^ (~el & gl); - var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); - var majl = (al & bl) ^ (al & cl) ^ (bl & cl); - - var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); - var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); - var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); - var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); - - // t1 = h + sigma1 + ch + K[i] + W[i] - var Ki = K[i]; - var Kih = Ki.high; - var Kil = Ki.low; - - var t1l = hl + sigma1l; - var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); - var t1l = t1l + chl; - var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); - var t1l = t1l + Kil; - var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); - var t1l = t1l + Wil; - var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); - - // t2 = sigma0 + maj - var t2l = sigma0l + majl; - var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); - - // Update working variables - hh = gh; - hl = gl; - gh = fh; - gl = fl; - fh = eh; - fl = el; - el = (dl + t1l) | 0; - eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; - dh = ch; - dl = cl; - ch = bh; - cl = bl; - bh = ah; - bl = al; - al = (t1l + t2l) | 0; - ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; - } - - // Intermediate hash value - H0l = H0.low = (H0l + al); - H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); - H1l = H1.low = (H1l + bl); - H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); - H2l = H2.low = (H2l + cl); - H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); - H3l = H3.low = (H3l + dl); - H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); - H4l = H4.low = (H4l + el); - H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); - H5l = H5.low = (H5l + fl); - H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); - H6l = H6.low = (H6l + gl); - H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); - H7l = H7.low = (H7l + hl); - H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Convert hash to 32-bit word array before returning - var hash = this._hash.toX32(); - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - }, - - blockSize: 1024/32 - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA512('message'); - * var hash = CryptoJS.SHA512(wordArray); - */ - C.SHA512 = Hasher._createHelper(SHA512); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA512(message, key); - */ - C.HmacSHA512 = Hasher._createHmacHelper(SHA512); -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var X64WordArray = C_x64.WordArray; - var C_algo = C.algo; - var SHA512 = C_algo.SHA512; - - /** - * SHA-384 hash algorithm. - */ - var SHA384 = C_algo.SHA384 = SHA512.extend({ - _doReset: function () { - this._hash = new X64WordArray.init([ - new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), - new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), - new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), - new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) - ]); - }, - - _doFinalize: function () { - var hash = SHA512._doFinalize.call(this); - - hash.sigBytes -= 16; - - return hash; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA384('message'); - * var hash = CryptoJS.SHA384(wordArray); - */ - C.SHA384 = SHA512._createHelper(SHA384); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA384(message, key); - */ - C.HmacSHA384 = SHA512._createHmacHelper(SHA384); -}()); - - -/** - * Cipher core components. - */ -CryptoJS.lib.Cipher || (function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; - var C_enc = C.enc; - var Utf8 = C_enc.Utf8; - var Base64 = C_enc.Base64; - var C_algo = C.algo; - var EvpKDF = C_algo.EvpKDF; - - /** - * Abstract base cipher template. - * - * @property {number} keySize This cipher's key size. Default: 4 (128 bits) - * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) - * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. - * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. - */ - var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ - /** - * Configuration options. - * - * @property {WordArray} iv The IV to use for this operation. - */ - cfg: Base.extend(), - - /** - * Creates this cipher in encryption mode. - * - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {Cipher} A cipher instance. - * - * @static - * - * @example - * - * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); - */ - createEncryptor: function (key, cfg) { - return this.create(this._ENC_XFORM_MODE, key, cfg); - }, - - /** - * Creates this cipher in decryption mode. - * - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {Cipher} A cipher instance. - * - * @static - * - * @example - * - * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); - */ - createDecryptor: function (key, cfg) { - return this.create(this._DEC_XFORM_MODE, key, cfg); - }, - - /** - * Initializes a newly created cipher. - * - * @param {number} xformMode Either the encryption or decryption transormation mode constant. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @example - * - * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); - */ - init: function (xformMode, key, cfg) { - // Apply config defaults - this.cfg = this.cfg.extend(cfg); - - // Store transform mode and key - this._xformMode = xformMode; - this._key = key; - - // Set initial values - this.reset(); - }, - - /** - * Resets this cipher to its initial state. - * - * @example - * - * cipher.reset(); - */ - reset: function () { - // Reset data buffer - BufferedBlockAlgorithm.reset.call(this); - - // Perform concrete-cipher logic - this._doReset(); - }, - - /** - * Adds data to be encrypted or decrypted. - * - * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. - * - * @return {WordArray} The data after processing. - * - * @example - * - * var encrypted = cipher.process('data'); - * var encrypted = cipher.process(wordArray); - */ - process: function (dataUpdate) { - // Append - this._append(dataUpdate); - - // Process available blocks - return this._process(); - }, - - /** - * Finalizes the encryption or decryption process. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. - * - * @return {WordArray} The data after final processing. - * - * @example - * - * var encrypted = cipher.finalize(); - * var encrypted = cipher.finalize('data'); - * var encrypted = cipher.finalize(wordArray); - */ - finalize: function (dataUpdate) { - // Final data update - if (dataUpdate) { - this._append(dataUpdate); - } - - // Perform concrete-cipher logic - var finalProcessedData = this._doFinalize(); - - return finalProcessedData; - }, - - keySize: 128/32, - - ivSize: 128/32, - - _ENC_XFORM_MODE: 1, - - _DEC_XFORM_MODE: 2, - - /** - * Creates shortcut functions to a cipher's object interface. - * - * @param {Cipher} cipher The cipher to create a helper for. - * - * @return {Object} An object with encrypt and decrypt shortcut functions. - * - * @static - * - * @example - * - * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); - */ - _createHelper: (function () { - function selectCipherStrategy(key) { - if (typeof key == 'string') { - return PasswordBasedCipher; - } else { - return SerializableCipher; - } - } - - return function (cipher) { - return { - encrypt: function (message, key, cfg) { - return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); - }, - - decrypt: function (ciphertext, key, cfg) { - return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); - } - }; - }; - }()) - }); - - /** - * Abstract base stream cipher template. - * - * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) - */ - var StreamCipher = C_lib.StreamCipher = Cipher.extend({ - _doFinalize: function () { - // Process partial blocks - var finalProcessedBlocks = this._process(!!'flush'); - - return finalProcessedBlocks; - }, - - blockSize: 1 - }); - - /** - * Mode namespace. - */ - var C_mode = C.mode = {}; - - /** - * Abstract base block cipher mode template. - */ - var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ - /** - * Creates this mode for encryption. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @static - * - * @example - * - * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); - */ - createEncryptor: function (cipher, iv) { - return this.Encryptor.create(cipher, iv); - }, - - /** - * Creates this mode for decryption. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @static - * - * @example - * - * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); - */ - createDecryptor: function (cipher, iv) { - return this.Decryptor.create(cipher, iv); - }, - - /** - * Initializes a newly created mode. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @example - * - * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); - */ - init: function (cipher, iv) { - this._cipher = cipher; - this._iv = iv; - } - }); - - /** - * Cipher Block Chaining mode. - */ - var CBC = C_mode.CBC = (function () { - /** - * Abstract base CBC mode. - */ - var CBC = BlockCipherMode.extend(); - - /** - * CBC encryptor. - */ - CBC.Encryptor = CBC.extend({ - /** - * Processes the data block at offset. - * - * @param {Array} words The data words to operate on. - * @param {number} offset The offset where the block starts. - * - * @example - * - * mode.processBlock(data.words, offset); - */ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // XOR and encrypt - xorBlock.call(this, words, offset, blockSize); - cipher.encryptBlock(words, offset); - - // Remember this block to use with next block - this._prevBlock = words.slice(offset, offset + blockSize); - } - }); - - /** - * CBC decryptor. - */ - CBC.Decryptor = CBC.extend({ - /** - * Processes the data block at offset. - * - * @param {Array} words The data words to operate on. - * @param {number} offset The offset where the block starts. - * - * @example - * - * mode.processBlock(data.words, offset); - */ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // Remember this block to use with next block - var thisBlock = words.slice(offset, offset + blockSize); - - // Decrypt and XOR - cipher.decryptBlock(words, offset); - xorBlock.call(this, words, offset, blockSize); - - // This block becomes the previous block - this._prevBlock = thisBlock; - } - }); - - function xorBlock(words, offset, blockSize) { - // Shortcut - var iv = this._iv; - - // Choose mixing block - if (iv) { - var block = iv; - - // Remove IV for subsequent blocks - this._iv = undefined; - } else { - var block = this._prevBlock; - } - - // XOR blocks - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= block[i]; - } - } - - return CBC; - }()); - - /** - * Padding namespace. - */ - var C_pad = C.pad = {}; - - /** - * PKCS #5/7 padding strategy. - */ - var Pkcs7 = C_pad.Pkcs7 = { - /** - * Pads data using the algorithm defined in PKCS #5/7. - * - * @param {WordArray} data The data to pad. - * @param {number} blockSize The multiple that the data should be padded to. - * - * @static - * - * @example - * - * CryptoJS.pad.Pkcs7.pad(wordArray, 4); - */ - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; - - // Create padding word - var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; - - // Create padding - var paddingWords = []; - for (var i = 0; i < nPaddingBytes; i += 4) { - paddingWords.push(paddingWord); - } - var padding = WordArray.create(paddingWords, nPaddingBytes); - - // Add padding - data.concat(padding); - }, - - /** - * Unpads data that had been padded using the algorithm defined in PKCS #5/7. - * - * @param {WordArray} data The data to unpad. - * - * @static - * - * @example - * - * CryptoJS.pad.Pkcs7.unpad(wordArray); - */ - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } - }; - - /** - * Abstract base block cipher template. - * - * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) - */ - var BlockCipher = C_lib.BlockCipher = Cipher.extend({ - /** - * Configuration options. - * - * @property {Mode} mode The block mode to use. Default: CBC - * @property {Padding} padding The padding strategy to use. Default: Pkcs7 - */ - cfg: Cipher.cfg.extend({ - mode: CBC, - padding: Pkcs7 - }), - - reset: function () { - // Reset cipher - Cipher.reset.call(this); - - // Shortcuts - var cfg = this.cfg; - var iv = cfg.iv; - var mode = cfg.mode; - - // Reset block mode - if (this._xformMode == this._ENC_XFORM_MODE) { - var modeCreator = mode.createEncryptor; - } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { - var modeCreator = mode.createDecryptor; - // Keep at least one block in the buffer for unpadding - this._minBufferSize = 1; - } - - if (this._mode && this._mode.__creator == modeCreator) { - this._mode.init(this, iv && iv.words); - } else { - this._mode = modeCreator.call(mode, this, iv && iv.words); - this._mode.__creator = modeCreator; - } - }, - - _doProcessBlock: function (words, offset) { - this._mode.processBlock(words, offset); - }, - - _doFinalize: function () { - // Shortcut - var padding = this.cfg.padding; - - // Finalize - if (this._xformMode == this._ENC_XFORM_MODE) { - // Pad data - padding.pad(this._data, this.blockSize); - - // Process final blocks - var finalProcessedBlocks = this._process(!!'flush'); - } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { - // Process final blocks - var finalProcessedBlocks = this._process(!!'flush'); - - // Unpad data - padding.unpad(finalProcessedBlocks); - } - - return finalProcessedBlocks; - }, - - blockSize: 128/32 - }); - - /** - * A collection of cipher parameters. - * - * @property {WordArray} ciphertext The raw ciphertext. - * @property {WordArray} key The key to this ciphertext. - * @property {WordArray} iv The IV used in the ciphering operation. - * @property {WordArray} salt The salt used with a key derivation function. - * @property {Cipher} algorithm The cipher algorithm. - * @property {Mode} mode The block mode used in the ciphering operation. - * @property {Padding} padding The padding scheme used in the ciphering operation. - * @property {number} blockSize The block size of the cipher. - * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. - */ - var CipherParams = C_lib.CipherParams = Base.extend({ - /** - * Initializes a newly created cipher params object. - * - * @param {Object} cipherParams An object with any of the possible cipher parameters. - * - * @example - * - * var cipherParams = CryptoJS.lib.CipherParams.create({ - * ciphertext: ciphertextWordArray, - * key: keyWordArray, - * iv: ivWordArray, - * salt: saltWordArray, - * algorithm: CryptoJS.algo.AES, - * mode: CryptoJS.mode.CBC, - * padding: CryptoJS.pad.PKCS7, - * blockSize: 4, - * formatter: CryptoJS.format.OpenSSL - * }); - */ - init: function (cipherParams) { - this.mixIn(cipherParams); - }, - - /** - * Converts this cipher params object to a string. - * - * @param {Format} formatter (Optional) The formatting strategy to use. - * - * @return {string} The stringified cipher params. - * - * @throws Error If neither the formatter nor the default formatter is set. - * - * @example - * - * var string = cipherParams + ''; - * var string = cipherParams.toString(); - * var string = cipherParams.toString(CryptoJS.format.OpenSSL); - */ - toString: function (formatter) { - return (formatter || this.formatter).stringify(this); - } - }); - - /** - * Format namespace. - */ - var C_format = C.format = {}; - - /** - * OpenSSL formatting strategy. - */ - var OpenSSLFormatter = C_format.OpenSSL = { - /** - * Converts a cipher params object to an OpenSSL-compatible string. - * - * @param {CipherParams} cipherParams The cipher params object. - * - * @return {string} The OpenSSL-compatible string. - * - * @static - * - * @example - * - * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); - */ - stringify: function (cipherParams) { - // Shortcuts - var ciphertext = cipherParams.ciphertext; - var salt = cipherParams.salt; - - // Format - if (salt) { - var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); - } else { - var wordArray = ciphertext; - } - - return wordArray.toString(Base64); - }, - - /** - * Converts an OpenSSL-compatible string to a cipher params object. - * - * @param {string} openSSLStr The OpenSSL-compatible string. - * - * @return {CipherParams} The cipher params object. - * - * @static - * - * @example - * - * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); - */ - parse: function (openSSLStr) { - // Parse base64 - var ciphertext = Base64.parse(openSSLStr); - - // Shortcut - var ciphertextWords = ciphertext.words; - - // Test for salt - if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { - // Extract salt - var salt = WordArray.create(ciphertextWords.slice(2, 4)); - - // Remove salt from ciphertext - ciphertextWords.splice(0, 4); - ciphertext.sigBytes -= 16; - } - - return CipherParams.create({ ciphertext: ciphertext, salt: salt }); - } - }; - - /** - * A cipher wrapper that returns ciphertext as a serializable cipher params object. - */ - var SerializableCipher = C_lib.SerializableCipher = Base.extend({ - /** - * Configuration options. - * - * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL - */ - cfg: Base.extend({ - format: OpenSSLFormatter - }), - - /** - * Encrypts a message. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {WordArray|string} message The message to encrypt. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {CipherParams} A cipher params object. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - */ - encrypt: function (cipher, message, key, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Encrypt - var encryptor = cipher.createEncryptor(key, cfg); - var ciphertext = encryptor.finalize(message); - - // Shortcut - var cipherCfg = encryptor.cfg; - - // Create and return serializable cipher params - return CipherParams.create({ - ciphertext: ciphertext, - key: key, - iv: cipherCfg.iv, - algorithm: cipher, - mode: cipherCfg.mode, - padding: cipherCfg.padding, - blockSize: cipher.blockSize, - formatter: cfg.format - }); - }, - - /** - * Decrypts serialized ciphertext. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {CipherParams|string} ciphertext The ciphertext to decrypt. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {WordArray} The plaintext. - * - * @static - * - * @example - * - * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - */ - decrypt: function (cipher, ciphertext, key, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Convert string to CipherParams - ciphertext = this._parse(ciphertext, cfg.format); - - // Decrypt - var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); - - return plaintext; - }, - - /** - * Converts serialized ciphertext to CipherParams, - * else assumed CipherParams already and returns ciphertext unchanged. - * - * @param {CipherParams|string} ciphertext The ciphertext. - * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. - * - * @return {CipherParams} The unserialized ciphertext. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); - */ - _parse: function (ciphertext, format) { - if (typeof ciphertext == 'string') { - return format.parse(ciphertext, this); - } else { - return ciphertext; - } - } - }); - - /** - * Key derivation function namespace. - */ - var C_kdf = C.kdf = {}; - - /** - * OpenSSL key derivation function. - */ - var OpenSSLKdf = C_kdf.OpenSSL = { - /** - * Derives a key and IV from a password. - * - * @param {string} password The password to derive from. - * @param {number} keySize The size in words of the key to generate. - * @param {number} ivSize The size in words of the IV to generate. - * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. - * - * @return {CipherParams} A cipher params object with the key, IV, and salt. - * - * @static - * - * @example - * - * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); - * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); - */ - execute: function (password, keySize, ivSize, salt) { - // Generate random salt - if (!salt) { - salt = WordArray.random(64/8); - } - - // Derive key and IV - var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); - - // Separate key and IV - var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); - key.sigBytes = keySize * 4; - - // Return params - return CipherParams.create({ key: key, iv: iv, salt: salt }); - } - }; - - /** - * A serializable cipher wrapper that derives the key from a password, - * and returns ciphertext as a serializable cipher params object. - */ - var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ - /** - * Configuration options. - * - * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL - */ - cfg: SerializableCipher.cfg.extend({ - kdf: OpenSSLKdf - }), - - /** - * Encrypts a message using a password. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {WordArray|string} message The message to encrypt. - * @param {string} password The password. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {CipherParams} A cipher params object. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); - * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); - */ - encrypt: function (cipher, message, password, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Derive key and other params - var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); - - // Add IV to config - cfg.iv = derivedParams.iv; - - // Encrypt - var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); - - // Mix in derived params - ciphertext.mixIn(derivedParams); - - return ciphertext; - }, - - /** - * Decrypts serialized ciphertext using a password. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {CipherParams|string} ciphertext The ciphertext to decrypt. - * @param {string} password The password. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {WordArray} The plaintext. - * - * @static - * - * @example - * - * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); - * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); - */ - decrypt: function (cipher, ciphertext, password, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Convert string to CipherParams - ciphertext = this._parse(ciphertext, cfg.format); - - // Derive key and other params - var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); - - // Add IV to config - cfg.iv = derivedParams.iv; - - // Decrypt - var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); - - return plaintext; - } - }); -}()); - - -/** - * Cipher Feedback block mode. - */ -CryptoJS.mode.CFB = (function () { - var CFB = CryptoJS.lib.BlockCipherMode.extend(); - - CFB.Encryptor = CFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); - - // Remember this block to use with next block - this._prevBlock = words.slice(offset, offset + blockSize); - } - }); - - CFB.Decryptor = CFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // Remember this block to use with next block - var thisBlock = words.slice(offset, offset + blockSize); - - generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); - - // This block becomes the previous block - this._prevBlock = thisBlock; - } - }); - - function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { - // Shortcut - var iv = this._iv; - - // Generate keystream - if (iv) { - var keystream = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } else { - var keystream = this._prevBlock; - } - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - - return CFB; -}()); - - -/** - * Electronic Codebook block mode. - */ -CryptoJS.mode.ECB = (function () { - var ECB = CryptoJS.lib.BlockCipherMode.extend(); - - ECB.Encryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.encryptBlock(words, offset); - } - }); - - ECB.Decryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.decryptBlock(words, offset); - } - }); - - return ECB; -}()); - - -/** - * ANSI X.923 padding strategy. - */ -CryptoJS.pad.AnsiX923 = { - pad: function (data, blockSize) { - // Shortcuts - var dataSigBytes = data.sigBytes; - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; - - // Compute last byte position - var lastBytePos = dataSigBytes + nPaddingBytes - 1; - - // Pad - data.clamp(); - data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); - data.sigBytes += nPaddingBytes; - }, - - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } -}; - - -/** - * ISO 10126 padding strategy. - */ -CryptoJS.pad.Iso10126 = { - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; - - // Pad - data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). - concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); - }, - - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } -}; - - -/** - * ISO/IEC 9797-1 Padding Method 2. - */ -CryptoJS.pad.Iso97971 = { - pad: function (data, blockSize) { - // Add 0x80 byte - data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); - - // Zero pad the rest - CryptoJS.pad.ZeroPadding.pad(data, blockSize); - }, - - unpad: function (data) { - // Remove zero padding - CryptoJS.pad.ZeroPadding.unpad(data); - - // Remove one more byte -- the 0x80 byte - data.sigBytes--; - } -}; - - -/** - * Output Feedback block mode. - */ -CryptoJS.mode.OFB = (function () { - var OFB = CryptoJS.lib.BlockCipherMode.extend(); - - var Encryptor = OFB.Encryptor = OFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var keystream = this._keystream; - - // Generate keystream - if (iv) { - keystream = this._keystream = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - OFB.Decryptor = Encryptor; - - return OFB; -}()); - - -/** - * A noop padding strategy. - */ -CryptoJS.pad.NoPadding = { - pad: function () { - }, - - unpad: function () { - } -}; - - -(function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var CipherParams = C_lib.CipherParams; - var C_enc = C.enc; - var Hex = C_enc.Hex; - var C_format = C.format; - - var HexFormatter = C_format.Hex = { - /** - * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. - * - * @param {CipherParams} cipherParams The cipher params object. - * - * @return {string} The hexadecimally encoded string. - * - * @static - * - * @example - * - * var hexString = CryptoJS.format.Hex.stringify(cipherParams); - */ - stringify: function (cipherParams) { - return cipherParams.ciphertext.toString(Hex); - }, - - /** - * Converts a hexadecimally encoded ciphertext string to a cipher params object. - * - * @param {string} input The hexadecimally encoded string. - * - * @return {CipherParams} The cipher params object. - * - * @static - * - * @example - * - * var cipherParams = CryptoJS.format.Hex.parse(hexString); - */ - parse: function (input) { - var ciphertext = Hex.parse(input); - return CipherParams.create({ ciphertext: ciphertext }); - } - }; -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var BlockCipher = C_lib.BlockCipher; - var C_algo = C.algo; - - // Lookup tables - var SBOX = []; - var INV_SBOX = []; - var SUB_MIX_0 = []; - var SUB_MIX_1 = []; - var SUB_MIX_2 = []; - var SUB_MIX_3 = []; - var INV_SUB_MIX_0 = []; - var INV_SUB_MIX_1 = []; - var INV_SUB_MIX_2 = []; - var INV_SUB_MIX_3 = []; - - // Compute lookup tables - (function () { - // Compute double table - var d = []; - for (var i = 0; i < 256; i++) { - if (i < 128) { - d[i] = i << 1; - } else { - d[i] = (i << 1) ^ 0x11b; - } - } - - // Walk GF(2^8) - var x = 0; - var xi = 0; - for (var i = 0; i < 256; i++) { - // Compute sbox - var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); - sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; - SBOX[x] = sx; - INV_SBOX[sx] = x; - - // Compute multiplication - var x2 = d[x]; - var x4 = d[x2]; - var x8 = d[x4]; - - // Compute sub bytes, mix columns tables - var t = (d[sx] * 0x101) ^ (sx * 0x1010100); - SUB_MIX_0[x] = (t << 24) | (t >>> 8); - SUB_MIX_1[x] = (t << 16) | (t >>> 16); - SUB_MIX_2[x] = (t << 8) | (t >>> 24); - SUB_MIX_3[x] = t; - - // Compute inv sub bytes, inv mix columns tables - var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); - INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); - INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); - INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); - INV_SUB_MIX_3[sx] = t; - - // Compute next counter - if (!x) { - x = xi = 1; - } else { - x = x2 ^ d[d[d[x8 ^ x2]]]; - xi ^= d[d[xi]]; - } - } - }()); - - // Precomputed Rcon lookup - var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; - - /** - * AES block cipher algorithm. - */ - var AES = C_algo.AES = BlockCipher.extend({ - _doReset: function () { - // Skip reset of nRounds has been set before and key did not change - if (this._nRounds && this._keyPriorReset === this._key) { - return; - } - - // Shortcuts - var key = this._keyPriorReset = this._key; - var keyWords = key.words; - var keySize = key.sigBytes / 4; - - // Compute number of rounds - var nRounds = this._nRounds = keySize + 6; - - // Compute number of key schedule rows - var ksRows = (nRounds + 1) * 4; - - // Compute key schedule - var keySchedule = this._keySchedule = []; - for (var ksRow = 0; ksRow < ksRows; ksRow++) { - if (ksRow < keySize) { - keySchedule[ksRow] = keyWords[ksRow]; - } else { - var t = keySchedule[ksRow - 1]; - - if (!(ksRow % keySize)) { - // Rot word - t = (t << 8) | (t >>> 24); - - // Sub word - t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; - - // Mix Rcon - t ^= RCON[(ksRow / keySize) | 0] << 24; - } else if (keySize > 6 && ksRow % keySize == 4) { - // Sub word - t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; - } - - keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; - } - } - - // Compute inv key schedule - var invKeySchedule = this._invKeySchedule = []; - for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { - var ksRow = ksRows - invKsRow; - - if (invKsRow % 4) { - var t = keySchedule[ksRow]; - } else { - var t = keySchedule[ksRow - 4]; - } - - if (invKsRow < 4 || ksRow <= 4) { - invKeySchedule[invKsRow] = t; - } else { - invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ - INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; - } - } - }, - - encryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); - }, - - decryptBlock: function (M, offset) { - // Swap 2nd and 4th rows - var t = M[offset + 1]; - M[offset + 1] = M[offset + 3]; - M[offset + 3] = t; - - this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); - - // Inv swap 2nd and 4th rows - var t = M[offset + 1]; - M[offset + 1] = M[offset + 3]; - M[offset + 3] = t; - }, - - _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { - // Shortcut - var nRounds = this._nRounds; - - // Get input, add round key - var s0 = M[offset] ^ keySchedule[0]; - var s1 = M[offset + 1] ^ keySchedule[1]; - var s2 = M[offset + 2] ^ keySchedule[2]; - var s3 = M[offset + 3] ^ keySchedule[3]; - - // Key schedule row counter - var ksRow = 4; - - // Rounds - for (var round = 1; round < nRounds; round++) { - // Shift rows, sub bytes, mix columns, add round key - var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; - var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; - var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; - var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; - - // Update state - s0 = t0; - s1 = t1; - s2 = t2; - s3 = t3; - } - - // Shift rows, sub bytes, add round key - var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; - var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; - var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; - var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; - - // Set output - M[offset] = t0; - M[offset + 1] = t1; - M[offset + 2] = t2; - M[offset + 3] = t3; - }, - - keySize: 256/32 - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); - */ - C.AES = BlockCipher._createHelper(AES); -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var BlockCipher = C_lib.BlockCipher; - var C_algo = C.algo; - - // Permuted Choice 1 constants - var PC1 = [ - 57, 49, 41, 33, 25, 17, 9, 1, - 58, 50, 42, 34, 26, 18, 10, 2, - 59, 51, 43, 35, 27, 19, 11, 3, - 60, 52, 44, 36, 63, 55, 47, 39, - 31, 23, 15, 7, 62, 54, 46, 38, - 30, 22, 14, 6, 61, 53, 45, 37, - 29, 21, 13, 5, 28, 20, 12, 4 - ]; - - // Permuted Choice 2 constants - var PC2 = [ - 14, 17, 11, 24, 1, 5, - 3, 28, 15, 6, 21, 10, - 23, 19, 12, 4, 26, 8, - 16, 7, 27, 20, 13, 2, - 41, 52, 31, 37, 47, 55, - 30, 40, 51, 45, 33, 48, - 44, 49, 39, 56, 34, 53, - 46, 42, 50, 36, 29, 32 - ]; - - // Cumulative bit shift constants - var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; - - // SBOXes and round permutation constants - var SBOX_P = [ - { - 0x0: 0x808200, - 0x10000000: 0x8000, - 0x20000000: 0x808002, - 0x30000000: 0x2, - 0x40000000: 0x200, - 0x50000000: 0x808202, - 0x60000000: 0x800202, - 0x70000000: 0x800000, - 0x80000000: 0x202, - 0x90000000: 0x800200, - 0xa0000000: 0x8200, - 0xb0000000: 0x808000, - 0xc0000000: 0x8002, - 0xd0000000: 0x800002, - 0xe0000000: 0x0, - 0xf0000000: 0x8202, - 0x8000000: 0x0, - 0x18000000: 0x808202, - 0x28000000: 0x8202, - 0x38000000: 0x8000, - 0x48000000: 0x808200, - 0x58000000: 0x200, - 0x68000000: 0x808002, - 0x78000000: 0x2, - 0x88000000: 0x800200, - 0x98000000: 0x8200, - 0xa8000000: 0x808000, - 0xb8000000: 0x800202, - 0xc8000000: 0x800002, - 0xd8000000: 0x8002, - 0xe8000000: 0x202, - 0xf8000000: 0x800000, - 0x1: 0x8000, - 0x10000001: 0x2, - 0x20000001: 0x808200, - 0x30000001: 0x800000, - 0x40000001: 0x808002, - 0x50000001: 0x8200, - 0x60000001: 0x200, - 0x70000001: 0x800202, - 0x80000001: 0x808202, - 0x90000001: 0x808000, - 0xa0000001: 0x800002, - 0xb0000001: 0x8202, - 0xc0000001: 0x202, - 0xd0000001: 0x800200, - 0xe0000001: 0x8002, - 0xf0000001: 0x0, - 0x8000001: 0x808202, - 0x18000001: 0x808000, - 0x28000001: 0x800000, - 0x38000001: 0x200, - 0x48000001: 0x8000, - 0x58000001: 0x800002, - 0x68000001: 0x2, - 0x78000001: 0x8202, - 0x88000001: 0x8002, - 0x98000001: 0x800202, - 0xa8000001: 0x202, - 0xb8000001: 0x808200, - 0xc8000001: 0x800200, - 0xd8000001: 0x0, - 0xe8000001: 0x8200, - 0xf8000001: 0x808002 - }, - { - 0x0: 0x40084010, - 0x1000000: 0x4000, - 0x2000000: 0x80000, - 0x3000000: 0x40080010, - 0x4000000: 0x40000010, - 0x5000000: 0x40084000, - 0x6000000: 0x40004000, - 0x7000000: 0x10, - 0x8000000: 0x84000, - 0x9000000: 0x40004010, - 0xa000000: 0x40000000, - 0xb000000: 0x84010, - 0xc000000: 0x80010, - 0xd000000: 0x0, - 0xe000000: 0x4010, - 0xf000000: 0x40080000, - 0x800000: 0x40004000, - 0x1800000: 0x84010, - 0x2800000: 0x10, - 0x3800000: 0x40004010, - 0x4800000: 0x40084010, - 0x5800000: 0x40000000, - 0x6800000: 0x80000, - 0x7800000: 0x40080010, - 0x8800000: 0x80010, - 0x9800000: 0x0, - 0xa800000: 0x4000, - 0xb800000: 0x40080000, - 0xc800000: 0x40000010, - 0xd800000: 0x84000, - 0xe800000: 0x40084000, - 0xf800000: 0x4010, - 0x10000000: 0x0, - 0x11000000: 0x40080010, - 0x12000000: 0x40004010, - 0x13000000: 0x40084000, - 0x14000000: 0x40080000, - 0x15000000: 0x10, - 0x16000000: 0x84010, - 0x17000000: 0x4000, - 0x18000000: 0x4010, - 0x19000000: 0x80000, - 0x1a000000: 0x80010, - 0x1b000000: 0x40000010, - 0x1c000000: 0x84000, - 0x1d000000: 0x40004000, - 0x1e000000: 0x40000000, - 0x1f000000: 0x40084010, - 0x10800000: 0x84010, - 0x11800000: 0x80000, - 0x12800000: 0x40080000, - 0x13800000: 0x4000, - 0x14800000: 0x40004000, - 0x15800000: 0x40084010, - 0x16800000: 0x10, - 0x17800000: 0x40000000, - 0x18800000: 0x40084000, - 0x19800000: 0x40000010, - 0x1a800000: 0x40004010, - 0x1b800000: 0x80010, - 0x1c800000: 0x0, - 0x1d800000: 0x4010, - 0x1e800000: 0x40080010, - 0x1f800000: 0x84000 - }, - { - 0x0: 0x104, - 0x100000: 0x0, - 0x200000: 0x4000100, - 0x300000: 0x10104, - 0x400000: 0x10004, - 0x500000: 0x4000004, - 0x600000: 0x4010104, - 0x700000: 0x4010000, - 0x800000: 0x4000000, - 0x900000: 0x4010100, - 0xa00000: 0x10100, - 0xb00000: 0x4010004, - 0xc00000: 0x4000104, - 0xd00000: 0x10000, - 0xe00000: 0x4, - 0xf00000: 0x100, - 0x80000: 0x4010100, - 0x180000: 0x4010004, - 0x280000: 0x0, - 0x380000: 0x4000100, - 0x480000: 0x4000004, - 0x580000: 0x10000, - 0x680000: 0x10004, - 0x780000: 0x104, - 0x880000: 0x4, - 0x980000: 0x100, - 0xa80000: 0x4010000, - 0xb80000: 0x10104, - 0xc80000: 0x10100, - 0xd80000: 0x4000104, - 0xe80000: 0x4010104, - 0xf80000: 0x4000000, - 0x1000000: 0x4010100, - 0x1100000: 0x10004, - 0x1200000: 0x10000, - 0x1300000: 0x4000100, - 0x1400000: 0x100, - 0x1500000: 0x4010104, - 0x1600000: 0x4000004, - 0x1700000: 0x0, - 0x1800000: 0x4000104, - 0x1900000: 0x4000000, - 0x1a00000: 0x4, - 0x1b00000: 0x10100, - 0x1c00000: 0x4010000, - 0x1d00000: 0x104, - 0x1e00000: 0x10104, - 0x1f00000: 0x4010004, - 0x1080000: 0x4000000, - 0x1180000: 0x104, - 0x1280000: 0x4010100, - 0x1380000: 0x0, - 0x1480000: 0x10004, - 0x1580000: 0x4000100, - 0x1680000: 0x100, - 0x1780000: 0x4010004, - 0x1880000: 0x10000, - 0x1980000: 0x4010104, - 0x1a80000: 0x10104, - 0x1b80000: 0x4000004, - 0x1c80000: 0x4000104, - 0x1d80000: 0x4010000, - 0x1e80000: 0x4, - 0x1f80000: 0x10100 - }, - { - 0x0: 0x80401000, - 0x10000: 0x80001040, - 0x20000: 0x401040, - 0x30000: 0x80400000, - 0x40000: 0x0, - 0x50000: 0x401000, - 0x60000: 0x80000040, - 0x70000: 0x400040, - 0x80000: 0x80000000, - 0x90000: 0x400000, - 0xa0000: 0x40, - 0xb0000: 0x80001000, - 0xc0000: 0x80400040, - 0xd0000: 0x1040, - 0xe0000: 0x1000, - 0xf0000: 0x80401040, - 0x8000: 0x80001040, - 0x18000: 0x40, - 0x28000: 0x80400040, - 0x38000: 0x80001000, - 0x48000: 0x401000, - 0x58000: 0x80401040, - 0x68000: 0x0, - 0x78000: 0x80400000, - 0x88000: 0x1000, - 0x98000: 0x80401000, - 0xa8000: 0x400000, - 0xb8000: 0x1040, - 0xc8000: 0x80000000, - 0xd8000: 0x400040, - 0xe8000: 0x401040, - 0xf8000: 0x80000040, - 0x100000: 0x400040, - 0x110000: 0x401000, - 0x120000: 0x80000040, - 0x130000: 0x0, - 0x140000: 0x1040, - 0x150000: 0x80400040, - 0x160000: 0x80401000, - 0x170000: 0x80001040, - 0x180000: 0x80401040, - 0x190000: 0x80000000, - 0x1a0000: 0x80400000, - 0x1b0000: 0x401040, - 0x1c0000: 0x80001000, - 0x1d0000: 0x400000, - 0x1e0000: 0x40, - 0x1f0000: 0x1000, - 0x108000: 0x80400000, - 0x118000: 0x80401040, - 0x128000: 0x0, - 0x138000: 0x401000, - 0x148000: 0x400040, - 0x158000: 0x80000000, - 0x168000: 0x80001040, - 0x178000: 0x40, - 0x188000: 0x80000040, - 0x198000: 0x1000, - 0x1a8000: 0x80001000, - 0x1b8000: 0x80400040, - 0x1c8000: 0x1040, - 0x1d8000: 0x80401000, - 0x1e8000: 0x400000, - 0x1f8000: 0x401040 - }, - { - 0x0: 0x80, - 0x1000: 0x1040000, - 0x2000: 0x40000, - 0x3000: 0x20000000, - 0x4000: 0x20040080, - 0x5000: 0x1000080, - 0x6000: 0x21000080, - 0x7000: 0x40080, - 0x8000: 0x1000000, - 0x9000: 0x20040000, - 0xa000: 0x20000080, - 0xb000: 0x21040080, - 0xc000: 0x21040000, - 0xd000: 0x0, - 0xe000: 0x1040080, - 0xf000: 0x21000000, - 0x800: 0x1040080, - 0x1800: 0x21000080, - 0x2800: 0x80, - 0x3800: 0x1040000, - 0x4800: 0x40000, - 0x5800: 0x20040080, - 0x6800: 0x21040000, - 0x7800: 0x20000000, - 0x8800: 0x20040000, - 0x9800: 0x0, - 0xa800: 0x21040080, - 0xb800: 0x1000080, - 0xc800: 0x20000080, - 0xd800: 0x21000000, - 0xe800: 0x1000000, - 0xf800: 0x40080, - 0x10000: 0x40000, - 0x11000: 0x80, - 0x12000: 0x20000000, - 0x13000: 0x21000080, - 0x14000: 0x1000080, - 0x15000: 0x21040000, - 0x16000: 0x20040080, - 0x17000: 0x1000000, - 0x18000: 0x21040080, - 0x19000: 0x21000000, - 0x1a000: 0x1040000, - 0x1b000: 0x20040000, - 0x1c000: 0x40080, - 0x1d000: 0x20000080, - 0x1e000: 0x0, - 0x1f000: 0x1040080, - 0x10800: 0x21000080, - 0x11800: 0x1000000, - 0x12800: 0x1040000, - 0x13800: 0x20040080, - 0x14800: 0x20000000, - 0x15800: 0x1040080, - 0x16800: 0x80, - 0x17800: 0x21040000, - 0x18800: 0x40080, - 0x19800: 0x21040080, - 0x1a800: 0x0, - 0x1b800: 0x21000000, - 0x1c800: 0x1000080, - 0x1d800: 0x40000, - 0x1e800: 0x20040000, - 0x1f800: 0x20000080 - }, - { - 0x0: 0x10000008, - 0x100: 0x2000, - 0x200: 0x10200000, - 0x300: 0x10202008, - 0x400: 0x10002000, - 0x500: 0x200000, - 0x600: 0x200008, - 0x700: 0x10000000, - 0x800: 0x0, - 0x900: 0x10002008, - 0xa00: 0x202000, - 0xb00: 0x8, - 0xc00: 0x10200008, - 0xd00: 0x202008, - 0xe00: 0x2008, - 0xf00: 0x10202000, - 0x80: 0x10200000, - 0x180: 0x10202008, - 0x280: 0x8, - 0x380: 0x200000, - 0x480: 0x202008, - 0x580: 0x10000008, - 0x680: 0x10002000, - 0x780: 0x2008, - 0x880: 0x200008, - 0x980: 0x2000, - 0xa80: 0x10002008, - 0xb80: 0x10200008, - 0xc80: 0x0, - 0xd80: 0x10202000, - 0xe80: 0x202000, - 0xf80: 0x10000000, - 0x1000: 0x10002000, - 0x1100: 0x10200008, - 0x1200: 0x10202008, - 0x1300: 0x2008, - 0x1400: 0x200000, - 0x1500: 0x10000000, - 0x1600: 0x10000008, - 0x1700: 0x202000, - 0x1800: 0x202008, - 0x1900: 0x0, - 0x1a00: 0x8, - 0x1b00: 0x10200000, - 0x1c00: 0x2000, - 0x1d00: 0x10002008, - 0x1e00: 0x10202000, - 0x1f00: 0x200008, - 0x1080: 0x8, - 0x1180: 0x202000, - 0x1280: 0x200000, - 0x1380: 0x10000008, - 0x1480: 0x10002000, - 0x1580: 0x2008, - 0x1680: 0x10202008, - 0x1780: 0x10200000, - 0x1880: 0x10202000, - 0x1980: 0x10200008, - 0x1a80: 0x2000, - 0x1b80: 0x202008, - 0x1c80: 0x200008, - 0x1d80: 0x0, - 0x1e80: 0x10000000, - 0x1f80: 0x10002008 - }, - { - 0x0: 0x100000, - 0x10: 0x2000401, - 0x20: 0x400, - 0x30: 0x100401, - 0x40: 0x2100401, - 0x50: 0x0, - 0x60: 0x1, - 0x70: 0x2100001, - 0x80: 0x2000400, - 0x90: 0x100001, - 0xa0: 0x2000001, - 0xb0: 0x2100400, - 0xc0: 0x2100000, - 0xd0: 0x401, - 0xe0: 0x100400, - 0xf0: 0x2000000, - 0x8: 0x2100001, - 0x18: 0x0, - 0x28: 0x2000401, - 0x38: 0x2100400, - 0x48: 0x100000, - 0x58: 0x2000001, - 0x68: 0x2000000, - 0x78: 0x401, - 0x88: 0x100401, - 0x98: 0x2000400, - 0xa8: 0x2100000, - 0xb8: 0x100001, - 0xc8: 0x400, - 0xd8: 0x2100401, - 0xe8: 0x1, - 0xf8: 0x100400, - 0x100: 0x2000000, - 0x110: 0x100000, - 0x120: 0x2000401, - 0x130: 0x2100001, - 0x140: 0x100001, - 0x150: 0x2000400, - 0x160: 0x2100400, - 0x170: 0x100401, - 0x180: 0x401, - 0x190: 0x2100401, - 0x1a0: 0x100400, - 0x1b0: 0x1, - 0x1c0: 0x0, - 0x1d0: 0x2100000, - 0x1e0: 0x2000001, - 0x1f0: 0x400, - 0x108: 0x100400, - 0x118: 0x2000401, - 0x128: 0x2100001, - 0x138: 0x1, - 0x148: 0x2000000, - 0x158: 0x100000, - 0x168: 0x401, - 0x178: 0x2100400, - 0x188: 0x2000001, - 0x198: 0x2100000, - 0x1a8: 0x0, - 0x1b8: 0x2100401, - 0x1c8: 0x100401, - 0x1d8: 0x400, - 0x1e8: 0x2000400, - 0x1f8: 0x100001 - }, - { - 0x0: 0x8000820, - 0x1: 0x20000, - 0x2: 0x8000000, - 0x3: 0x20, - 0x4: 0x20020, - 0x5: 0x8020820, - 0x6: 0x8020800, - 0x7: 0x800, - 0x8: 0x8020000, - 0x9: 0x8000800, - 0xa: 0x20800, - 0xb: 0x8020020, - 0xc: 0x820, - 0xd: 0x0, - 0xe: 0x8000020, - 0xf: 0x20820, - 0x80000000: 0x800, - 0x80000001: 0x8020820, - 0x80000002: 0x8000820, - 0x80000003: 0x8000000, - 0x80000004: 0x8020000, - 0x80000005: 0x20800, - 0x80000006: 0x20820, - 0x80000007: 0x20, - 0x80000008: 0x8000020, - 0x80000009: 0x820, - 0x8000000a: 0x20020, - 0x8000000b: 0x8020800, - 0x8000000c: 0x0, - 0x8000000d: 0x8020020, - 0x8000000e: 0x8000800, - 0x8000000f: 0x20000, - 0x10: 0x20820, - 0x11: 0x8020800, - 0x12: 0x20, - 0x13: 0x800, - 0x14: 0x8000800, - 0x15: 0x8000020, - 0x16: 0x8020020, - 0x17: 0x20000, - 0x18: 0x0, - 0x19: 0x20020, - 0x1a: 0x8020000, - 0x1b: 0x8000820, - 0x1c: 0x8020820, - 0x1d: 0x20800, - 0x1e: 0x820, - 0x1f: 0x8000000, - 0x80000010: 0x20000, - 0x80000011: 0x800, - 0x80000012: 0x8020020, - 0x80000013: 0x20820, - 0x80000014: 0x20, - 0x80000015: 0x8020000, - 0x80000016: 0x8000000, - 0x80000017: 0x8000820, - 0x80000018: 0x8020820, - 0x80000019: 0x8000020, - 0x8000001a: 0x8000800, - 0x8000001b: 0x0, - 0x8000001c: 0x20800, - 0x8000001d: 0x820, - 0x8000001e: 0x20020, - 0x8000001f: 0x8020800 - } - ]; - - // Masks that select the SBOX input - var SBOX_MASK = [ - 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, - 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f - ]; - - /** - * DES block cipher algorithm. - */ - var DES = C_algo.DES = BlockCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - - // Select 56 bits according to PC1 - var keyBits = []; - for (var i = 0; i < 56; i++) { - var keyBitPos = PC1[i] - 1; - keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; - } - - // Assemble 16 subkeys - var subKeys = this._subKeys = []; - for (var nSubKey = 0; nSubKey < 16; nSubKey++) { - // Create subkey - var subKey = subKeys[nSubKey] = []; - - // Shortcut - var bitShift = BIT_SHIFTS[nSubKey]; - - // Select 48 bits according to PC2 - for (var i = 0; i < 24; i++) { - // Select from the left 28 key bits - subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); - - // Select from the right 28 key bits - subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); - } - - // Since each subkey is applied to an expanded 32-bit input, - // the subkey can be broken into 8 values scaled to 32-bits, - // which allows the key to be used without expansion - subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); - for (var i = 1; i < 7; i++) { - subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); - } - subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); - } - - // Compute inverse subkeys - var invSubKeys = this._invSubKeys = []; - for (var i = 0; i < 16; i++) { - invSubKeys[i] = subKeys[15 - i]; - } - }, - - encryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._subKeys); - }, - - decryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._invSubKeys); - }, - - _doCryptBlock: function (M, offset, subKeys) { - // Get input - this._lBlock = M[offset]; - this._rBlock = M[offset + 1]; - - // Initial permutation - exchangeLR.call(this, 4, 0x0f0f0f0f); - exchangeLR.call(this, 16, 0x0000ffff); - exchangeRL.call(this, 2, 0x33333333); - exchangeRL.call(this, 8, 0x00ff00ff); - exchangeLR.call(this, 1, 0x55555555); - - // Rounds - for (var round = 0; round < 16; round++) { - // Shortcuts - var subKey = subKeys[round]; - var lBlock = this._lBlock; - var rBlock = this._rBlock; - - // Feistel function - var f = 0; - for (var i = 0; i < 8; i++) { - f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; - } - this._lBlock = rBlock; - this._rBlock = lBlock ^ f; - } - - // Undo swap from last round - var t = this._lBlock; - this._lBlock = this._rBlock; - this._rBlock = t; - - // Final permutation - exchangeLR.call(this, 1, 0x55555555); - exchangeRL.call(this, 8, 0x00ff00ff); - exchangeRL.call(this, 2, 0x33333333); - exchangeLR.call(this, 16, 0x0000ffff); - exchangeLR.call(this, 4, 0x0f0f0f0f); - - // Set output - M[offset] = this._lBlock; - M[offset + 1] = this._rBlock; - }, - - keySize: 64/32, - - ivSize: 64/32, - - blockSize: 64/32 - }); - - // Swap bits across the left and right words - function exchangeLR(offset, mask) { - var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; - this._rBlock ^= t; - this._lBlock ^= t << offset; - } - - function exchangeRL(offset, mask) { - var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; - this._lBlock ^= t; - this._rBlock ^= t << offset; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); - */ - C.DES = BlockCipher._createHelper(DES); - - /** - * Triple-DES block cipher algorithm. - */ - var TripleDES = C_algo.TripleDES = BlockCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - - // Create DES instances - this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2))); - this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4))); - this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6))); - }, - - encryptBlock: function (M, offset) { - this._des1.encryptBlock(M, offset); - this._des2.decryptBlock(M, offset); - this._des3.encryptBlock(M, offset); - }, - - decryptBlock: function (M, offset) { - this._des3.decryptBlock(M, offset); - this._des2.encryptBlock(M, offset); - this._des1.decryptBlock(M, offset); - }, - - keySize: 192/32, - - ivSize: 64/32, - - blockSize: 64/32 - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); - */ - C.TripleDES = BlockCipher._createHelper(TripleDES); -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - /** - * RC4 stream cipher algorithm. - */ - var RC4 = C_algo.RC4 = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - var keySigBytes = key.sigBytes; - - // Init sbox - var S = this._S = []; - for (var i = 0; i < 256; i++) { - S[i] = i; - } - - // Key setup - for (var i = 0, j = 0; i < 256; i++) { - var keyByteIndex = i % keySigBytes; - var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; - - j = (j + S[i] + keyByte) % 256; - - // Swap - var t = S[i]; - S[i] = S[j]; - S[j] = t; - } - - // Counters - this._i = this._j = 0; - }, - - _doProcessBlock: function (M, offset) { - M[offset] ^= generateKeystreamWord.call(this); - }, - - keySize: 256/32, - - ivSize: 0 - }); - - function generateKeystreamWord() { - // Shortcuts - var S = this._S; - var i = this._i; - var j = this._j; - - // Generate keystream word - var keystreamWord = 0; - for (var n = 0; n < 4; n++) { - i = (i + 1) % 256; - j = (j + S[i]) % 256; - - // Swap - var t = S[i]; - S[i] = S[j]; - S[j] = t; - - keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); - } - - // Update counters - this._i = i; - this._j = j; - - return keystreamWord; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); - */ - C.RC4 = StreamCipher._createHelper(RC4); - - /** - * Modified RC4 stream cipher algorithm. - */ - var RC4Drop = C_algo.RC4Drop = RC4.extend({ - /** - * Configuration options. - * - * @property {number} drop The number of keystream words to drop. Default 192 - */ - cfg: RC4.cfg.extend({ - drop: 192 - }), - - _doReset: function () { - RC4._doReset.call(this); - - // Drop - for (var i = this.cfg.drop; i > 0; i--) { - generateKeystreamWord.call(this); - } - } - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); - */ - C.RC4Drop = StreamCipher._createHelper(RC4Drop); -}()); - - -/** @preserve - * Counter block mode compatible with Dr Brian Gladman fileenc.c - * derived from CryptoJS.mode.CTR - * Jan Hruby jhruby.web@gmail.com - */ -CryptoJS.mode.CTRGladman = (function () { - var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); - - function incWord(word) - { - if (((word >> 24) & 0xff) === 0xff) { //overflow - var b1 = (word >> 16)&0xff; - var b2 = (word >> 8)&0xff; - var b3 = word & 0xff; - - if (b1 === 0xff) // overflow b1 - { - b1 = 0; - if (b2 === 0xff) - { - b2 = 0; - if (b3 === 0xff) - { - b3 = 0; - } - else - { - ++b3; - } - } - else - { - ++b2; - } - } - else - { - ++b1; - } - - word = 0; - word += (b1 << 16); - word += (b2 << 8); - word += b3; - } - else - { - word += (0x01 << 24); - } - return word; - } - - function incCounter(counter) - { - if ((counter[0] = incWord(counter[0])) === 0) - { - // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 - counter[1] = incWord(counter[1]); - } - return counter; - } - - var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var counter = this._counter; - - // Generate keystream - if (iv) { - counter = this._counter = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - - incCounter(counter); - - var keystream = counter.slice(0); - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - CTRGladman.Decryptor = Encryptor; - - return CTRGladman; -}()); - - - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - // Reusable objects - var S = []; - var C_ = []; - var G = []; - - /** - * Rabbit stream cipher algorithm - */ - var Rabbit = C_algo.Rabbit = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var K = this._key.words; - var iv = this.cfg.iv; - - // Swap endian - for (var i = 0; i < 4; i++) { - K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | - (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); - } - - // Generate initial state values - var X = this._X = [ - K[0], (K[3] << 16) | (K[2] >>> 16), - K[1], (K[0] << 16) | (K[3] >>> 16), - K[2], (K[1] << 16) | (K[0] >>> 16), - K[3], (K[2] << 16) | (K[1] >>> 16) - ]; - - // Generate initial counter values - var C = this._C = [ - (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), - (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), - (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), - (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) - ]; - - // Carry bit - this._b = 0; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - - // Modify the counters - for (var i = 0; i < 8; i++) { - C[i] ^= X[(i + 4) & 7]; - } - - // IV setup - if (iv) { - // Shortcuts - var IV = iv.words; - var IV_0 = IV[0]; - var IV_1 = IV[1]; - - // Generate four subvectors - var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); - var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); - var i1 = (i0 >>> 16) | (i2 & 0xffff0000); - var i3 = (i2 << 16) | (i0 & 0x0000ffff); - - // Modify counter values - C[0] ^= i0; - C[1] ^= i1; - C[2] ^= i2; - C[3] ^= i3; - C[4] ^= i0; - C[5] ^= i1; - C[6] ^= i2; - C[7] ^= i3; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - } - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var X = this._X; - - // Iterate the system - nextState.call(this); - - // Generate four keystream words - S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); - S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); - S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); - S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); - - for (var i = 0; i < 4; i++) { - // Swap endian - S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | - (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); - - // Encrypt - M[offset + i] ^= S[i]; - } - }, - - blockSize: 128/32, - - ivSize: 64/32 - }); - - function nextState() { - // Shortcuts - var X = this._X; - var C = this._C; - - // Save old counter values - for (var i = 0; i < 8; i++) { - C_[i] = C[i]; - } - - // Calculate new counter values - C[0] = (C[0] + 0x4d34d34d + this._b) | 0; - C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; - C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; - C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; - C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; - C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; - C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; - C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; - this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; - - // Calculate the g-values - for (var i = 0; i < 8; i++) { - var gx = X[i] + C[i]; - - // Construct high and low argument for squaring - var ga = gx & 0xffff; - var gb = gx >>> 16; - - // Calculate high and low result of squaring - var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; - var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); - - // High XOR low - G[i] = gh ^ gl; - } - - // Calculate new state values - X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; - X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; - X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; - X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; - X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; - X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; - X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; - X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); - * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); - */ - C.Rabbit = StreamCipher._createHelper(Rabbit); -}()); - - -/** - * Counter block mode. - */ -CryptoJS.mode.CTR = (function () { - var CTR = CryptoJS.lib.BlockCipherMode.extend(); - - var Encryptor = CTR.Encryptor = CTR.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var counter = this._counter; - - // Generate keystream - if (iv) { - counter = this._counter = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - var keystream = counter.slice(0); - cipher.encryptBlock(keystream, 0); - - // Increment counter - counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - CTR.Decryptor = Encryptor; - - return CTR; -}()); - - -(function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - // Reusable objects - var S = []; - var C_ = []; - var G = []; - - /** - * Rabbit stream cipher algorithm. - * - * This is a legacy version that neglected to convert the key to little-endian. - * This error doesn't affect the cipher's security, - * but it does affect its compatibility with other implementations. - */ - var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var K = this._key.words; - var iv = this.cfg.iv; - - // Generate initial state values - var X = this._X = [ - K[0], (K[3] << 16) | (K[2] >>> 16), - K[1], (K[0] << 16) | (K[3] >>> 16), - K[2], (K[1] << 16) | (K[0] >>> 16), - K[3], (K[2] << 16) | (K[1] >>> 16) - ]; - - // Generate initial counter values - var C = this._C = [ - (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), - (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), - (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), - (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) - ]; - - // Carry bit - this._b = 0; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - - // Modify the counters - for (var i = 0; i < 8; i++) { - C[i] ^= X[(i + 4) & 7]; - } - - // IV setup - if (iv) { - // Shortcuts - var IV = iv.words; - var IV_0 = IV[0]; - var IV_1 = IV[1]; - - // Generate four subvectors - var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); - var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); - var i1 = (i0 >>> 16) | (i2 & 0xffff0000); - var i3 = (i2 << 16) | (i0 & 0x0000ffff); - - // Modify counter values - C[0] ^= i0; - C[1] ^= i1; - C[2] ^= i2; - C[3] ^= i3; - C[4] ^= i0; - C[5] ^= i1; - C[6] ^= i2; - C[7] ^= i3; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - } - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var X = this._X; - - // Iterate the system - nextState.call(this); - - // Generate four keystream words - S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); - S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); - S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); - S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); - - for (var i = 0; i < 4; i++) { - // Swap endian - S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | - (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); - - // Encrypt - M[offset + i] ^= S[i]; - } - }, - - blockSize: 128/32, - - ivSize: 64/32 - }); - - function nextState() { - // Shortcuts - var X = this._X; - var C = this._C; - - // Save old counter values - for (var i = 0; i < 8; i++) { - C_[i] = C[i]; - } - - // Calculate new counter values - C[0] = (C[0] + 0x4d34d34d + this._b) | 0; - C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; - C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; - C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; - C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; - C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; - C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; - C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; - this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; - - // Calculate the g-values - for (var i = 0; i < 8; i++) { - var gx = X[i] + C[i]; - - // Construct high and low argument for squaring - var ga = gx & 0xffff; - var gb = gx >>> 16; - - // Calculate high and low result of squaring - var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; - var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); - - // High XOR low - G[i] = gh ^ gl; - } - - // Calculate new state values - X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; - X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; - X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; - X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; - X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; - X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; - X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; - X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); - */ - C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); -}()); - - -/** - * Zero padding strategy. - */ -CryptoJS.pad.ZeroPadding = { - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Pad - data.clamp(); - data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); - }, - - unpad: function (data) { - // Shortcut - var dataWords = data.words; - - // Unpad - var i = data.sigBytes - 1; - while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { - i--; - } - data.sigBytes = i + 1; - } -}; - diff --git a/src/utils/filter.js b/src/utils/filter.js deleted file mode 100644 index 7974e8b..0000000 --- a/src/utils/filter.js +++ /dev/null @@ -1,29 +0,0 @@ -import Vue from "vue"; -import * as dayjs from "dayjs"; - -Vue.filter('NumberFormat', function (value) { - if (!value) { - return '0' - } - let intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') //将整数部分逢三一断 - return intPartFormat -}) - -Vue.filter('dayjs', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { - return dayjs(dataStr).format(pattern) -}) - -Vue.filter('moment', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { - return dayjs(dataStr).format(pattern) -}) - -/** 字符串超长截取省略号显示 */ -Vue.filter('ellipsis', function (value, vlength = 25) { - if(!value){ - return ""; - } - if (value.length > vlength) { - return value.slice(0, vlength) + '...' - } - return value -}) \ No newline at end of file diff --git a/src/utils/hasPermission.js b/src/utils/hasPermission.js deleted file mode 100644 index 4674770..0000000 --- a/src/utils/hasPermission.js +++ /dev/null @@ -1,133 +0,0 @@ -import { USER_AUTH,SYS_BUTTON_AUTH } from "@/store/mutation-types" - -const hasPermission = { - install (Vue, options) { - Vue.directive('has', { - inserted: (el, binding, vnode)=>{ - console.log("页面权限控制----"); - //console.time() - //节点权限处理,如果命中则不进行全局权限处理 - if(!filterNodePermission(el, binding, vnode)){ - filterGlobalPermission(el, binding, vnode); - } - } - }); - } -}; - -/** - * 流程节点权限控制 - */ -export function filterNodePermission(el, binding, vnode) { - let permissionList = []; - try { - let obj = vnode.context.$props.formData; - if (obj) { - let bpmList = obj.permissionList; - for (let bpm of bpmList) { - if(bpm.type != '2') { - permissionList.push(bpm); - } - } - }else{ - return false; - } - } catch (e) { - //console.log("页面权限异常----", e); - } - if (permissionList === null || permissionList === "" || permissionList === undefined||permissionList.length<=0) { - //el.parentNode.removeChild(el) - return false; - } - - console.log("流程节点页面权限--NODE--"); - let permissions = []; - for (let item of permissionList) { - if(item.type != '2') { - permissions.push(item.action); - } - } - //console.log("页面权限----"+permissions); - //console.log("页面权限----"+binding.value); - if (!permissions.includes(binding.value)) { - //el.parentNode.removeChild(el) - return false; - }else{ - for (let item2 of permissionList) { - if(binding.value === item2.action){ - return true; - } - } - } - return false; -} - -/** - * 全局权限控制 - */ -export function filterGlobalPermission(el, binding, vnode) { - console.log("全局页面权限--Global--"); - - let permissionList = []; - let allPermissionList = []; - - //let authList = Vue.ls.get(USER_AUTH); - let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); - for (let auth of authList) { - if(auth.type != '2') { - permissionList.push(auth); - } - } - //console.log("页面权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); - let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); - for (let gauth of allAuthList) { - if(gauth.type != '2') { - allPermissionList.push(gauth); - } - } - //设置全局配置是否有命中 - let invalidFlag = false;//无效命中 - if(allPermissionList != null && allPermissionList != "" && allPermissionList != undefined && allPermissionList.length > 0){ - for (let itemG of allPermissionList) { - if(binding.value === itemG.action){ - if(itemG.status == '0'){ - invalidFlag = true; - break; - } - } - } - } - if(invalidFlag){ - return; - } - if (permissionList === null || permissionList === "" || permissionList === undefined||permissionList.length<=0) { - el.parentNode.removeChild(el); - return; - } - let permissions = []; - for (let item of permissionList) { - //权限策略1显示2禁用 - if(item.type != '2'){ - //update--begin--autor:wangshuai-----date:20200729------for:按钮权限,授权标识的提示信息是多个用逗号分隔逻辑处理 gitee#I1OUGU------- - if(item.action){ - if(item.action.includes(",")){ - let split = item.action.split(",") - for (let i = 0; i state.app.layout, - navTheme: state => state.app.theme, - primaryColor: state => state.app.color, - colorWeak: state => state.app.weak, - multipage: state => state.app.multipage,//多页签设置 - fixedHeader: state => state.app.fixedHeader, - fixSiderbar: state => state.app.fixSiderbar, - contentWidth: state => state.app.contentWidth, - autoHideHeader: state => state.app.autoHideHeader, - sidebarOpened: state => state.app.sidebar.opened - }) - } -} - -const mixinDevice = { - computed: { - ...mapState({ - device: state => state.app.device, - }) - }, - methods: { - isMobile () { - return this.device === 'mobile' - }, - isDesktop () { - return this.device === 'desktop' - } - } -} - -export { mixin, mixinDevice } \ No newline at end of file diff --git a/src/utils/permissions.js b/src/utils/permissions.js deleted file mode 100644 index e4b60bc..0000000 --- a/src/utils/permissions.js +++ /dev/null @@ -1,8 +0,0 @@ -export function actionToObject(json) { - try { - return JSON.parse(json) - } catch (e) { - console.log('err', e.message) - } - return [] -} \ No newline at end of file diff --git a/src/utils/portal/constant.js b/src/utils/portal/constant.js deleted file mode 100644 index cadf2ba..0000000 --- a/src/utils/portal/constant.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 功能模块 - * @type {{LEAVE_EARLY: {text: string, value: string}, LATE: {text: string, value: string}, ABSENT: {text: string, value: string}, NO_SIGN: {text: string, value: string}, NORMAL: {text: string, value: string}}} - */ -export const FunctionEnum = { - EoaCmsBanner: { path: 'modules/eoa/cmsoa/modules/EoaCmsBanner', formData: 'carouselImg' }, - EoaCmsNewsInfo: { path: 'modules/eoa/cmsoa/modules/EoaCmsNewsInfo', formData: 'newsInfo' }, - EoaCmsRuleInfo: { path: 'modules/eoa/cmsoa/modules/EoaCmsRuleInfo', formData: 'ruleDownInfo' }, - EoaCmsSignNews: { path: 'modules/eoa/cmsoa/modules/EoaCmsSignNews', formData: 'signNews' }, - EoaCmsUserNotice: { path: 'modules/eoa/cmsoa/modules/EoaCmsUserNotice', formData: 'userNotice' }, - EoaCmsPlan: { path: 'modules/eoa/cmsoa/modules/EoaCmsPlan', formData: '' }, - EoaCmsLink: { path: 'modules/eoa/cmsoa/modules/EoaCmsLink', formData: '' }, - EoaCmsCommUse:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsCommUse', formData: '' }, - EoaCmsMyProcess:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsMyProcess', formData: '' }, - EoaCmsApplyProcess:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsApplyProcess', formData: '' }, - EoaCmsProcessNotice:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsProcessNotice', formData: '' }, - EoaCmsProcessChatData:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsProcessChatData', formData: '' }, - EoaCmsProcessTypeChat:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsProcessTypeChat', formData: '' }, - EoaCmsEmail:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsEmail', formData: '' }, -} \ No newline at end of file diff --git a/src/utils/props-util.js b/src/utils/props-util.js deleted file mode 100644 index 9c94200..0000000 --- a/src/utils/props-util.js +++ /dev/null @@ -1,115 +0,0 @@ -/** - * 该文件截取自 "ant-design-vue/es/_util/props-util.js" 文件,并对其做出特殊修改 - */ -function classNames() { - let classes = [] - - for (let i = 0; i < arguments.length; i++) { - let arg = arguments[i] - if (!arg) continue - - let argType = typeof arg - - if (argType === 'string' || argType === 'number') { - classes.push(arg) - } else if (Array.isArray(arg) && arg.length) { - let inner = classNames.apply(null, arg) - if (inner) { - classes.push(inner) - } - } else if (argType === 'object') { - for (let key in arg) { - if (arg.hasOwnProperty(key) && arg[key]) { - classes.push(key) - } - } - } - } - return classes.join(' ') -} - -const camelizeRE = /-(\w)/g - -function camelize(str) { - return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')) -} - - -function objectCamelize(obj) { - let res = {} - Object.keys(obj).forEach(k => (res[camelize(k)] = obj[k])) - return res -} - -function parseStyleText(cssText = '', camel) { - const res = {} - const listDelimiter = /;(?![^(]*\))/g - const propertyDelimiter = /:(.+)/ - cssText.split(listDelimiter).forEach(function (item) { - if (item) { - const tmp = item.split(propertyDelimiter) - if (tmp.length > 1) { - const k = camel ? camelize(tmp[0].trim()) : tmp[0].trim() - res[k] = tmp[1].trim() - } - } - }) - return res -} - -export function getClass(ele) { - let data = {} - if (ele.data) { - data = ele.data - } else if (ele.$vnode && ele.$vnode.data) { - data = ele.$vnode.data - } - const tempCls = data.class || {} - const staticClass = data.staticClass - let cls = {} - staticClass && - staticClass.split(' ').forEach(c => { - cls[c.trim()] = true - }) - if (typeof tempCls === 'string') { - tempCls.split(' ').forEach(c => { - cls[c.trim()] = true - }) - } else if (Array.isArray(tempCls)) { - classNames(tempCls) - .split(' ') - .forEach(c => { - cls[c.trim()] = true - }) - } else { - cls = { ...cls, ...tempCls } - } - return cls -} - -export function getStyle(ele, camel) { - - getClass(ele) - - let data = {} - if (ele.data) { - data = ele.data - } else if (ele.$vnode && ele.$vnode.data) { - data = ele.$vnode.data - } - - // update-begin-author:sunjianlei date:20200303 for: style 和 staticStyle 可以共存 - let style = data.style || {} - let staticStyle = data.staticStyle - staticStyle = staticStyle ? objectCamelize(data.staticStyle) : {} - // update-end-author:sunjianlei date:20200303 for: style 和 staticStyle 可以共存 - - if (typeof style === 'string') { - style = parseStyleText(style, camel) - } else if (camel && style) { - // 驼峰化 - style = objectCamelize(style) - } - return { ...staticStyle, ...style } -} - diff --git a/src/utils/request.js b/src/utils/request.js deleted file mode 100644 index 18a5ece..0000000 --- a/src/utils/request.js +++ /dev/null @@ -1,172 +0,0 @@ -import Vue from 'vue' -import axios from 'axios' -import store from '@/store' -import { VueAxios } from './axios' -import {Modal, notification} from 'ant-design-vue' -import { ACCESS_TOKEN, TENANT_ID } from "@/store/mutation-types" - -/** - * 【指定 axios的 baseURL】 - * 如果手工指定 baseURL: '/jero-boot' - * 则映射后端域名,通过 vue.config.js - * @type {*|string} - */ -let apiBaseUrl = window._CONFIG['domianURL'] || "/jero-boot"; -//console.log("apiBaseUrl= ",apiBaseUrl) -// 创建 axios 实例 -const service = axios.create({ - //baseURL: '/jero-boot', - baseURL: apiBaseUrl, // api base_url - timeout: 9000 // 请求超时时间 -}) - -const err = (error) => { - if (error.response) { - let data = error.response.data - const token = Vue.ls.get(ACCESS_TOKEN) - console.log("------异常响应------",token) - console.log("------异常响应------",error.response.status) - switch (error.response.status) { - case 403: - notification.error({ message: '系统提示', description: '拒绝访问',duration: 4}) - break - case 500: - console.log("------error.response------",error.response) - // update-begin- --- author:liusq ------ date:20200910 ---- for:处理Blob情况---- - let type=error.response.request.responseType; - if(type === 'blob'){ - blobToJson(data); - break; - } - // update-end- --- author:liusq ------ date:20200910 ---- for:处理Blob情况---- - //notification.error({ message: '系统提示', description:'Token失效,请重新登录!',duration: 4}) - if(token && data.message.includes("Token失效")){ - // update-begin- --- author:scott ------ date:20190225 ---- for:Token失效采用弹框模式,不直接跳转---- - Modal.error({ - title: '登录已过期', - content: '很抱歉,登录已过期,请重新登录', - okText: '重新登录', - mask: false, - onOk: () => { - store.dispatch('Logout').then(() => { - Vue.ls.remove(ACCESS_TOKEN) - try { - let path = window.document.location.pathname - console.log("location pathname -> "+path) - if(path!="/" && path.indexOf('/user/login')==-1){ - window.location.reload() - } - }catch (e) { - window.location.reload() - } - }) - } - }) - // update-end- --- author:scott ------ date:20190225 ---- for:Token失效采用弹框模式,不直接跳转---- - } - break - case 404: - notification.error({ message: '系统提示', description:'很抱歉,资源未找到!',duration: 4}) - break - case 504: - notification.error({ message: '系统提示', description: '网络超时'}) - break - case 401: - notification.error({ message: '系统提示', description:'未授权,请重新登录',duration: 4}) - if (token) { - store.dispatch('Logout').then(() => { - setTimeout(() => { - window.location.reload() - }, 1500) - }) - } - break - default: - notification.error({ - message: '系统提示', - description: data.message, - duration: 4 - }) - break - } - } - return Promise.reject(error) -}; - -// request interceptor -service.interceptors.request.use(config => { - const token = Vue.ls.get(ACCESS_TOKEN) - if (token) { - config.headers[ 'X-Access-Token' ] = token // 让每个请求携带自定义 token 请根据实际情况自行修改 - } - //update-begin-author:taoyan date:2020707 for:多租户 - let tenantid = Vue.ls.get(TENANT_ID) - if (!tenantid) { - tenantid = 0; - } - config.headers[ 'tenant_id' ] = tenantid - //update-end-author:taoyan date:2020707 for:多租户 - if(config.method=='get'){ - if(config.url.indexOf("sys/dict/getDictItems")<0){ - config.params = { - _t: Date.parse(new Date())/1000, - ...config.params - } - } - } - return config -},(error) => { - return Promise.reject(error) -}) - -// response interceptor -service.interceptors.response.use((response) => { - return response.data - }, err) - -const installer = { - vm: {}, - install (Vue, router = {}) { - Vue.use(VueAxios, router, service) - } -} -/** - * Blob解析 - * @param data - */ -function blobToJson(data) { - let fileReader = new FileReader(); - let token = Vue.ls.get(ACCESS_TOKEN); - fileReader.onload = function() { - try { - let jsonData = JSON.parse(this.result); // 说明是普通对象数据,后台转换失败 - console.log("jsonData",jsonData) - if (jsonData.status === 500) { - console.log("token----------》",token) - if(token && jsonData.message.includes("Token失效")){ - Modal.error({ - title: '登录已过期', - content: '很抱歉,登录已过期,请重新登录', - okText: '重新登录', - mask: false, - onOk: () => { - store.dispatch('Logout').then(() => { - Vue.ls.remove(ACCESS_TOKEN) - window.location.reload() - }) - } - }) - } - } - } catch (err) { - // 解析成对象失败,说明是正常的文件流 - console.log("blob解析fileReader返回err",err) - } - }; - fileReader.readAsText(data) -} - -export { - installer as VueAxios, - service as axios -} \ No newline at end of file diff --git a/src/utils/storage.js b/src/utils/storage.js deleted file mode 100644 index b3c29ab..0000000 --- a/src/utils/storage.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Set storage - * - * @param name - * @param content - * @param maxAge - */ -export const setStore = (name, content, maxAge = null) => { - if (!global.window || !name) { - return; - } - - if (typeof content !== 'string') { - content = JSON.stringify(content) - } - - let storage = global.window.localStorage - - storage.setItem(name, content) - if (maxAge && !isNaN(parseInt(maxAge))) { - let timeout = parseInt(new Date().getTime() / 1000) - storage.setItem(`${name}_expire`, timeout + maxAge) - } -}; - -/** - * Get storage - * - * @param name - * @returns {*} - */ -export const getStore = name => { - if (!global.window || !name) { - return; - } - - let content = window.localStorage.getItem(name) - let _expire = window.localStorage.getItem(`${name}_expire`) - - if (_expire) { - let now = parseInt(new Date().getTime() / 1000) - if (now > _expire) { - return; - } - } - - try { - return JSON.parse(content) - } catch (e) { - return content - } -}; - -/** - * Clear storage - * - * @param name - */ -export const clearStore = name => { - if (!global.window || !name) { - return; - } - - window.localStorage.removeItem(name) - window.localStorage.removeItem(`${name}_expire`) -}; - -/** - * Clear all storage - */ -export const clearAll = () => { - if (!global.window || !name) { - return; - } - - window.localStorage.clear() -} - diff --git a/src/utils/util.js b/src/utils/util.js deleted file mode 100644 index 857d071..0000000 --- a/src/utils/util.js +++ /dev/null @@ -1,589 +0,0 @@ -import * as api from '@/api/api' -import { isURL } from '@/utils/validate' -import { JSEncrypt } from 'jsencrypt' -// import onlineCommons from '@/components/onlineForm/onlineForm' -// -export function timeFix() { - const time = new Date() - const hour = time.getHours() - return hour < 9 ? '早上好' : (hour <= 11 ? '上午好' : (hour <= 13 ? '中午好' : (hour < 20 ? '下午好' : '晚上好'))) -} - -export function welcome() { - const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 DOTA', '我猜你可能累了'] - let index = Math.floor((Math.random()*arr.length)) - return arr[index] -} - -/** - * 触发 window.resize - */ -export function triggerWindowResizeEvent() { - let event = document.createEvent('HTMLEvents') - event.initEvent('resize', true, true) - event.eventType = 'message' - window.dispatchEvent(event) -} - -/** - * 过滤对象中为空的属性 - * @param obj - * @returns {*} - */ -export function filterObj(obj) { - if (!(typeof obj == 'object')) { - return - } - - for ( let key in obj) { - if (obj.hasOwnProperty(key) - && (obj[key] == null || obj[key] == undefined || obj[key] === '')) { - delete obj[key] - } - } - return obj -} - -/** - * 时间格式化 - * @param value - * @param fmt - * @returns {*} - */ -export function formatDate(value, fmt) { - let regPos = /^\d+(\.\d+)?$/ - if(regPos.test(value)){ - //如果是数字 - let getDate = new Date(value) - let o = { - 'M+': getDate.getMonth() + 1, - 'd+': getDate.getDate(), - 'h+': getDate.getHours(), - 'm+': getDate.getMinutes(), - 's+': getDate.getSeconds(), - 'q+': Math.floor((getDate.getMonth() + 3) / 3), - 'S': getDate.getMilliseconds() - } - if (/(y+)/.test(fmt)) { - fmt = fmt.replace(RegExp.$1, (getDate.getFullYear() + '').substr(4 - RegExp.$1.length)) - } - for (let k in o) { - if (new RegExp('(' + k + ')').test(fmt)) { - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) - } - } - return fmt - }else{ - //TODO - value = value.trim() - return value.substr(0,fmt.length) - } -} - -// 生成首页路由 -export function generateIndexRouter(data) { - let indexRouter = [{ - path: '/', - name: 'dashboard', - //component: () => import('@/components/layouts/BasicLayout'), - component: resolve => require(['@/components/layouts/TabLayout'], resolve), - meta: { title: '首页' }, - redirect: '/dashboard/analysis', - children: [ - ...generateChildRouters(data) - ] - },{ - 'path': '*', 'redirect': '/404', 'hidden': true - }] - return indexRouter -} - -// 生成嵌套路由(子路由) - -function generateChildRouters (data) { - const routers = [] - for (let item of data) { - let component = '' - if(item.component.indexOf('layouts')>=0){ - component = 'components/'+item.component - }else{ - component = 'views/'+item.component - } - - // eslint-disable-next-line - let URL = (item.meta.url|| '').replace(/{{([^}}]+)?}}/g, (s1, s2) => eval(s2)) // URL支持{{ window.xxx }}占位符变量 - if (isURL(URL)) { - item.meta.url = URL - } - - let componentPath - // if(item.component=="modules/online/cgform/OnlCgformHeadList"){ - // componentPath = onlineCommons.OnlCgformHeadList - // }else if(item.component=="modules/online/cgform/OnlCgformCopyList"){ - // componentPath = onlineCommons.OnlCgformCopyList - // }else if(item.component=="modules/online/cgform/auto/OnlCgformAutoList"){ - // componentPath = onlineCommons.OnlCgformAutoList - // }else if(item.component=="modules/online/cgform/auto/OnlCgformTreeList"){ - // componentPath = onlineCommons.OnlCgformTreeList - // }else if(item.component=="modules/online/cgform/auto/erp/OnlCgformErpList"){ - // componentPath = onlineCommons.OnlCgformErpList - // }else if(item.component=="modules/online/cgform/auto/tab/OnlCgformTabList"){ - // componentPath = onlineCommons.OnlCgformTabList - // }else if(item.component=="modules/online/cgform/auto/innerTable/OnlCgformInnerTableList"){ - // componentPath = onlineCommons.OnlCgformInnerTableList - // }else if(item.component=="modules/online/cgreport/OnlCgreportHeadList"){ - // componentPath = onlineCommons.OnlCgreportHeadList - // }else if(item.component=="modules/online/cgreport/auto/OnlCgreportAutoList"){ - // componentPath = onlineCommons.OnlCgreportAutoList - // }else{ - componentPath = resolve => require(['@/' + component+'.vue'], resolve) - // } - - let menu = { - path: item.path, - name: item.name, - redirect:item.redirect, - component: componentPath, - //component: resolve => require(['@/' + component+'.vue'], resolve), - hidden:item.hidden, - //component:()=> import(`@/views/${item.component}.vue`), - meta: { - title:item.meta.title , - icon: item.meta.icon, - url:item.meta.url , - permissionList:item.meta.permissionList, - keepAlive:item.meta.keepAlive, - /*update_begin author:wuxianquan date:20190908 for:赋值 */ - internalOrExternal:item.meta.internalOrExternal, - /*update_end author:wuxianquan date:20190908 for:赋值 */ - componentName:item.meta.componentName - } - } - if(item.alwaysShow){ - menu.alwaysShow = true - menu.redirect = menu.path - } - if (item.children && item.children.length > 0) { - menu.children = [...generateChildRouters( item.children)] - } - //--update-begin----author:scott---date:20190320------for:根据后台菜单配置,判断是否路由菜单字段,动态选择是否生成路由(为了支持参数URL菜单)------ - //判断是否生成路由 - if(item.route && item.route === '0'){ - //console.log(' 不生成路由 item.route: '+item.route); - //console.log(' 不生成路由 item.path: '+item.path); - }else{ - routers.push(menu) - } - //--update-end----author:scott---date:20190320------for:根据后台菜单配置,判断是否路由菜单字段,动态选择是否生成路由(为了支持参数URL菜单)------ - } - return routers -} - -/** - * 深度克隆对象、数组 - * @param obj 被克隆的对象 - * @return 克隆后的对象 - */ -export function cloneObject(obj) { - return JSON.parse(JSON.stringify(obj)) -} - -/** - * 随机生成数字 - * - * 示例:生成长度为 12 的随机数:randomNumber(12) - * 示例:生成 3~23 之间的随机数:randomNumber(3, 23) - * - * @param1 最小值 | 长度 - * @param2 最大值 - * @return int 生成后的数字 - */ -export function randomNumber() { - // 生成 最小值 到 最大值 区间的随机数 - const random = (min, max) => { - return Math.floor(Math.random() * (max - min + 1) + min) - } - if (arguments.length === 1) { - let [length] = arguments - // 生成指定长度的随机数字,首位一定不是 0 - let nums = [...Array(length).keys()].map((i) => (i > 0 ? random(0, 9) : random(1, 9))) - return parseInt(nums.join('')) - } else if (arguments.length >= 2) { - let [min, max] = arguments - return random(min, max) - } else { - return Number.NaN - } -} - -/** - * 随机生成字符串 - * @param length 字符串的长度 - * @param chats 可选字符串区间(只会生成传入的字符串中的字符) - * @return string 生成的字符串 - */ -export function randomString(length, chats) { - if (!length) length = 1 - if (!chats) chats = '0123456789qwertyuioplkjhgfdsazxcvbnm' - let str = '' - for (let i = 0; i < length; i++) { - let num = randomNumber(0, chats.length - 1) - str += chats[num] - } - return str -} - -/** - * 随机生成uuid - * @return string 生成的uuid - */ -export function randomUUID() { - let chats = '0123456789abcdef' - return randomString(32, chats) -} - -/** - * 下划线转驼峰 - * @param string - * @returns {*} - */ -export function underLine2CamelCase(string){ - return string.replace( /_([a-z])/g, function( all, letter ) { - return letter.toUpperCase() - }) -} - -/** - * 判断是否显示办理按钮 - * @param bpmStatus - * @returns {*} - */ -export function showDealBtn(bpmStatus){ - if(bpmStatus!='1'&&bpmStatus!='3'&&bpmStatus!='4'){ - return true - } - return false -} - -/** - * 增强CSS,可以在页面上输出全局css - * @param css 要增强的css - * @param id style标签的id,可以用来清除旧样式 - */ -export function cssExpand(css, id) { - let style = document.createElement('style') - style.type = 'text/css' - style.innerHTML = `@charset "UTF-8"; ${css}` - // 清除旧样式 - if (id) { - let $style = document.getElementById(id) - if ($style != null) $style.outerHTML = '' - style.id = id - } - // 应用新样式 - document.head.appendChild(style) -} - - -/** 用于js增强事件,运行JS代码,可以传参 */ -// options 所需参数: -// 参数名 类型 说明 -// vm VueComponent vue实例 -// event Object event对象 -// jsCode String 待执行的js代码 -// errorMessage String 执行出错后的提示(控制台) -export function jsExpand(options = {}) { - - // 绑定到window上的keyName - let windowKeyName = 'J_CLICK_EVENT_OPTIONS' - if (typeof window[windowKeyName] != 'object') { - window[windowKeyName] = {} - } - - // 随机生成JS增强的执行id,防止冲突 - let id = randomString(16, 'qwertyuioplkjhgfdsazxcvbnm'.toUpperCase()) - // 封装按钮点击事件 - let code = ` - (function (o_${id}) { - try { - (function (globalEvent, vm) { - ${options.jsCode} - })(o_${id}.event, o_${id}.vm) - } catch (e) { - o_${id}.error(e) - } - o_${id}.done() - })(window['${windowKeyName}']['EVENT_${id}']) - ` - // 创建script标签 - const script = document.createElement('script') - // 将需要传递的参数挂载到window对象上 - window[windowKeyName]['EVENT_' + id] = { - vm: options.vm, - event: options.event, - // 当执行完成时,无论如何都会调用的回调事件 - done() { - // 执行完后删除新增的 script 标签不会撤销执行结果(已产生的结果不会被撤销) - script.outerHTML = '' - delete window[windowKeyName]['EVENT_' + id] - }, - // 当js运行出错的时候调用的事件 - error(e) { - console.group(`${options.errorMessage || '用户自定义JS增强代码运行出错'}(${new Date()})`) - console.error(e) - console.groupEnd() - } - } - // 将事件挂载到document中 - script.innerHTML = code - document.body.appendChild(script) -} - - -/** - * 重复值验证工具方法 - * - * 使用示例: - * { validator: (rule, value, callback) => validateDuplicateValue('sys_fill_rule', 'rule_code', value, this.model.id, callback) } - * - * @param tableName 被验证的表名 - * @param fieldName 被验证的字段名 - * @param fieldVal 被验证的值 - * @param dataId 数据ID,可空 - * @param callback - */ -export function validateDuplicateValue(tableName, fieldName, fieldVal, dataId, callback) { - if (fieldVal) { - let params = { tableName, fieldName, fieldVal, dataId } - api.duplicateCheck(params).then(res => { - res['success'] ? callback() : callback(res['message']) - }).catch(err => { - callback(err.message || err) - }) - } else { - callback() - } -} - -/** - * 根据编码校验规则code,校验传入的值是否合法 - * - * 使用示例: - * { validator: (rule, value, callback) => validateCheckRule('common', value, callback) } - * - * @param ruleCode 编码校验规则 code - * @param value 被验证的值 - * @param callback - */ -export function validateCheckRule(ruleCode, value, callback) { - if (ruleCode && value) { - value = encodeURIComponent(value) - api.checkRuleByCode({ ruleCode, value }).then(res => { - res['success'] ? callback() : callback(res['message']) - }).catch(err => { - callback(err.message || err) - }) - } else { - callback() - } -} - -/** - * 如果值不存在就 push 进数组,反之不处理 - * @param array 要操作的数据 - * @param value 要添加的值 - * @param key 可空,如果比较的是对象,可能存在地址不一样但值实际上是一样的情况,可以传此字段判断对象中唯一的字段,例如 id。不传则直接比较实际值 - * @returns {boolean} 成功 push 返回 true,不处理返回 false - */ -export function pushIfNotExist(array, value, key) { - for (let item of array) { - if (key && (item[key] === value[key])) { - return false - } else if (item === value) { - return false - } - } - array.push(value) - return true -} - -/** - * 可用于判断是否成功 - * @type {symbol} - */ -export const succeedSymbol = Symbol() -/** - * 可用于判断是否失败 - * @type {symbol} - */ -export const failedSymbol = Symbol() - -/** - * 使 promise 无论如何都会 resolve,除非传入的参数不是一个Promise对象或返回Promise对象的方法 - * 一般用在 Promise.all 中 - * - * @param promise 可传Promise对象或返回Promise对象的方法 - * @returns {Promise} - */ -export function alwaysResolve(promise) { - return new Promise((resolve, reject) => { - let p = promise - if (typeof promise === 'function') { - p = promise() - } - if (p instanceof Promise) { - p.then(data => { - resolve({ type: succeedSymbol, data }) - }).catch(error => { - resolve({ type: failedSymbol, error }) - }) - } else { - reject('alwaysResolve: 传入的参数不是一个Promise对象或返回Promise对象的方法') - } - }) -} - -/** - * 简单实现防抖方法 - * - * 防抖(debounce)函数在第一次触发给定的函数时,不立即执行函数,而是给出一个期限值(delay),比如100ms。 - * 如果100ms内再次执行函数,就重新开始计时,直到计时结束后再真正执行函数。 - * 这样做的好处是如果短时间内大量触发同一事件,只会执行一次函数。 - * - * @param fn 要防抖的函数 - * @param delay 防抖的毫秒数 - * @returns {Function} - */ -export function simpleDebounce(fn, delay = 100) { - let timer = null - return function () { - let args = arguments - if (timer) { - clearTimeout(timer) - } - timer = setTimeout(() => { - fn.apply(this, args) - }, delay) - } -} - -/** - * 不用正则的方式替换所有值 - * @param text 被替换的字符串 - * @param checker 替换前的内容 - * @param replacer 替换后的内容 - * @returns {String} 替换后的字符串 - */ -export function replaceAll(text, checker, replacer) { - let lastText = text - text = text.replace(checker, replacer) - if (lastText !== text) { - return replaceAll(text, checker, replacer) - } - return text -} - -/** - * 获取事件冒泡路径,兼容 IE11,Edge,Chrome,Firefox,Safari - * 目前使用的地方:JEditableTable Span模式 - */ -export function getEventPath(event) { - let target = event.target - let path = (event.composedPath && event.composedPath()) || event.path - - if (path != null) { - return (path.indexOf(window) < 0) ? path.concat(window) : path - } - - if (target === window) { - return [window] - } - - let getParents = (node, memo) => { - memo = memo || [] - const parentNode = node.parentNode - - if (!parentNode) { - return memo - } else { - return getParents(parentNode, memo.concat(parentNode)) - } - } - return [target].concat(getParents(target), window) -} - -/** - * 根据组件名获取父级 - * @param vm - * @param name - * @returns {Vue | null|null|Vue} - */ -export function getVmParentByName(vm, name) { - let parent = vm.$parent - if (parent && parent.$options) { - if (parent.$options.name === name) { - return parent - } else { - let res = getVmParentByName(parent, name) - if (res) { - return res - } - } - } - return null -} - -/** - * 使一个值永远不会为(null | undefined) - * - * @param value 要处理的值 - * @param def 默认值,如果value为(null | undefined)则返回的默认值,可不传,默认为'' - */ -export function neverNull(value, def) { - return value == null ? (neverNull(def, '')) : value -} - -/** - * 根据元素值移除数组中的一个元素 - * @param array 数组 - * @param prod 属性名 - * @param value 属性值 - * @returns {string} - */ -export function removeArrayElement(array, prod, value) { - let index = -1 - for(let i = 0;i=0){ - array.splice(index, 1) - } -} -/** - * 前端加密方法 - * @param publicKey:公钥 - * @param message:要加密的字符串 - * */ -export function encrypt(publicKey, message) { - const encrypt = new JSEncrypt() - encrypt.setPublicKey(publicKey) // publicKey为公钥 - const txt = encrypt.encrypt(message) - return txt -} -/** - * 校验数组是否有重复的元素 - * */ -export function isRepeat(arr) { - var hash = {} - for(var i in arr) { - if(hash[arr[i]]) { - return true - } - // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可 - hash[arr[i]] = true - } - return false -} diff --git a/src/utils/validate.js b/src/utils/validate.js deleted file mode 100644 index c8edcac..0000000 --- a/src/utils/validate.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * 邮箱 - * @param {*} s - */ -export function isEmail (s) { - return /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s) -} - -/** - * 手机号码 - * @param {*} s - */ -export function isMobile (s) { - return /^1[0-9]{10}$/.test(s) -} - -/** - * 电话号码 - * @param {*} s - */ -export function isPhone (s) { - return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s) -} - -/** - * URL地址 - * @param {*} s - */ -export function isURL (s) { - return /^http[s]?:\/\/.*/.test(s) -} diff --git a/src/utils/vueBus.js b/src/utils/vueBus.js deleted file mode 100644 index 95235a0..0000000 --- a/src/utils/vueBus.js +++ /dev/null @@ -1,5 +0,0 @@ -import Bus from 'vue'; -let install = function (Vue) { - Vue.prototype.$bus = new Bus() -} -export default { install }; \ No newline at end of file diff --git a/src/views/Home.vue b/src/views/Home.vue deleted file mode 100644 index a264fa9..0000000 --- a/src/views/Home.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - - diff --git a/src/views/dashboard/Analysis.vue b/src/views/dashboard/Analysis.vue deleted file mode 100644 index fc30e1b..0000000 --- a/src/views/dashboard/Analysis.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/exception/403.vue b/src/views/exception/403.vue deleted file mode 100644 index e9fc399..0000000 --- a/src/views/exception/403.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/exception/404.vue b/src/views/exception/404.vue deleted file mode 100644 index bc747b5..0000000 --- a/src/views/exception/404.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/exception/500.vue b/src/views/exception/500.vue deleted file mode 100644 index a36cabe..0000000 --- a/src/views/exception/500.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/exception/ExceptionPage.vue b/src/views/exception/ExceptionPage.vue deleted file mode 100644 index 0550d5e..0000000 --- a/src/views/exception/ExceptionPage.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/exception/type.js b/src/views/exception/type.js deleted file mode 100644 index ece3936..0000000 --- a/src/views/exception/type.js +++ /dev/null @@ -1,19 +0,0 @@ -const types = { - 403: { - img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg', - title: '403', - desc: '抱歉,你无权访问该页面' - }, - 404: { - img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg', - title: '404', - desc: '抱歉,你访问的页面不存在或无权访问' - }, - 500: { - img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg', - title: '500', - desc: '抱歉,服务器出错了' - } -} - -export default types \ No newline at end of file diff --git a/src/views/result/Error.vue b/src/views/result/Error.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/views/result/Result.vue b/src/views/result/Result.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/views/result/Success.vue b/src/views/result/Success.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/views/system/DataLogList.vue b/src/views/system/DataLogList.vue deleted file mode 100644 index 78ea7e6..0000000 --- a/src/views/system/DataLogList.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/DepartList.vue b/src/views/system/DepartList.vue deleted file mode 100644 index 3f35dca..0000000 --- a/src/views/system/DepartList.vue +++ /dev/null @@ -1,662 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/DepartList2.vue b/src/views/system/DepartList2.vue deleted file mode 100644 index 4b15b0c..0000000 --- a/src/views/system/DepartList2.vue +++ /dev/null @@ -1,260 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/DepartUserList.vue b/src/views/system/DepartUserList.vue deleted file mode 100644 index 70a4266..0000000 --- a/src/views/system/DepartUserList.vue +++ /dev/null @@ -1,221 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/DictDeleteList.vue b/src/views/system/DictDeleteList.vue deleted file mode 100644 index d033480..0000000 --- a/src/views/system/DictDeleteList.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/DictItemList.vue b/src/views/system/DictItemList.vue deleted file mode 100644 index 4ab21dc..0000000 --- a/src/views/system/DictItemList.vue +++ /dev/null @@ -1,225 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/DictList.vue b/src/views/system/DictList.vue deleted file mode 100644 index 58da628..0000000 --- a/src/views/system/DictList.vue +++ /dev/null @@ -1,208 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/LogList.vue b/src/views/system/LogList.vue deleted file mode 100644 index 6d0d050..0000000 --- a/src/views/system/LogList.vue +++ /dev/null @@ -1,231 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/NewPermissionList.vue b/src/views/system/NewPermissionList.vue deleted file mode 100644 index 19a85c8..0000000 --- a/src/views/system/NewPermissionList.vue +++ /dev/null @@ -1,229 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/PermissionDataRuleList.vue b/src/views/system/PermissionDataRuleList.vue deleted file mode 100644 index 5274e0f..0000000 --- a/src/views/system/PermissionDataRuleList.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/PermissionList.vue b/src/views/system/PermissionList.vue deleted file mode 100644 index 0f8df79..0000000 --- a/src/views/system/PermissionList.vue +++ /dev/null @@ -1,196 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/QuartzJobList.vue b/src/views/system/QuartzJobList.vue deleted file mode 100644 index cd54b07..0000000 --- a/src/views/system/QuartzJobList.vue +++ /dev/null @@ -1,284 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/RoleList.vue b/src/views/system/RoleList.vue deleted file mode 100644 index 071f44b..0000000 --- a/src/views/system/RoleList.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/RoleUserList.vue b/src/views/system/RoleUserList.vue deleted file mode 100644 index 8b6b8f2..0000000 --- a/src/views/system/RoleUserList.vue +++ /dev/null @@ -1,547 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/SysAnnouncementList.vue b/src/views/system/SysAnnouncementList.vue deleted file mode 100644 index 4f8a369..0000000 --- a/src/views/system/SysAnnouncementList.vue +++ /dev/null @@ -1,297 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/SysCategoryList.vue b/src/views/system/SysCategoryList.vue deleted file mode 100644 index 157b2d0..0000000 --- a/src/views/system/SysCategoryList.vue +++ /dev/null @@ -1,336 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/SysCheckRuleList.vue b/src/views/system/SysCheckRuleList.vue deleted file mode 100644 index 75a96d8..0000000 --- a/src/views/system/SysCheckRuleList.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/SysDataSourceList.vue b/src/views/system/SysDataSourceList.vue deleted file mode 100644 index 0ccde8d..0000000 --- a/src/views/system/SysDataSourceList.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/SysFillRuleList.vue b/src/views/system/SysFillRuleList.vue deleted file mode 100644 index 1989c2f..0000000 --- a/src/views/system/SysFillRuleList.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/SysGatewayRouteList.vue b/src/views/system/SysGatewayRouteList.vue deleted file mode 100644 index 669d267..0000000 --- a/src/views/system/SysGatewayRouteList.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/TenantList.vue b/src/views/system/TenantList.vue deleted file mode 100644 index fcf8642..0000000 --- a/src/views/system/TenantList.vue +++ /dev/null @@ -1,165 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/UserAnnouncementList.vue b/src/views/system/UserAnnouncementList.vue deleted file mode 100644 index 3b69913..0000000 --- a/src/views/system/UserAnnouncementList.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/UserList.vue b/src/views/system/UserList.vue deleted file mode 100644 index 69e3266..0000000 --- a/src/views/system/UserList.vue +++ /dev/null @@ -1,375 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/modules/AddressListLeft.vue b/src/views/system/modules/AddressListLeft.vue deleted file mode 100644 index 028a411..0000000 --- a/src/views/system/modules/AddressListLeft.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/AddressListRight.vue b/src/views/system/modules/AddressListRight.vue deleted file mode 100644 index 67be2b7..0000000 --- a/src/views/system/modules/AddressListRight.vue +++ /dev/null @@ -1,211 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DataLogCompareModal.vue b/src/views/system/modules/DataLogCompareModal.vue deleted file mode 100644 index e02bb02..0000000 --- a/src/views/system/modules/DataLogCompareModal.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DataLogModal.vue b/src/views/system/modules/DataLogModal.vue deleted file mode 100644 index c9f1e9c..0000000 --- a/src/views/system/modules/DataLogModal.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DepartAuthModal.vue b/src/views/system/modules/DepartAuthModal.vue deleted file mode 100644 index 92aedf0..0000000 --- a/src/views/system/modules/DepartAuthModal.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DepartDataruleModal.vue b/src/views/system/modules/DepartDataruleModal.vue deleted file mode 100644 index 77298ac..0000000 --- a/src/views/system/modules/DepartDataruleModal.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DepartModal.vue b/src/views/system/modules/DepartModal.vue deleted file mode 100644 index b0b2662..0000000 --- a/src/views/system/modules/DepartModal.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DepartWindow.vue b/src/views/system/modules/DepartWindow.vue deleted file mode 100644 index 1a8d781..0000000 --- a/src/views/system/modules/DepartWindow.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DeptBaseInfo.vue b/src/views/system/modules/DeptBaseInfo.vue deleted file mode 100644 index af1418f..0000000 --- a/src/views/system/modules/DeptBaseInfo.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/DeptRoleAuthModal.vue b/src/views/system/modules/DeptRoleAuthModal.vue deleted file mode 100644 index d84845d..0000000 --- a/src/views/system/modules/DeptRoleAuthModal.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/DeptRoleDataruleModal.vue b/src/views/system/modules/DeptRoleDataruleModal.vue deleted file mode 100644 index f3a1211..0000000 --- a/src/views/system/modules/DeptRoleDataruleModal.vue +++ /dev/null @@ -1,122 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DeptRoleInfo.vue b/src/views/system/modules/DeptRoleInfo.vue deleted file mode 100644 index 3c982c3..0000000 --- a/src/views/system/modules/DeptRoleInfo.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DeptRoleUserModal.vue b/src/views/system/modules/DeptRoleUserModal.vue deleted file mode 100644 index b09a4b3..0000000 --- a/src/views/system/modules/DeptRoleUserModal.vue +++ /dev/null @@ -1,200 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/DeptUserInfo.vue b/src/views/system/modules/DeptUserInfo.vue deleted file mode 100644 index 69d9b8d..0000000 --- a/src/views/system/modules/DeptUserInfo.vue +++ /dev/null @@ -1,349 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/modules/DictItemModal.vue b/src/views/system/modules/DictItemModal.vue deleted file mode 100644 index 420753a..0000000 --- a/src/views/system/modules/DictItemModal.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/src/views/system/modules/DictModal.vue b/src/views/system/modules/DictModal.vue deleted file mode 100644 index 2de7e66..0000000 --- a/src/views/system/modules/DictModal.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/GateWayRouteModal.vue b/src/views/system/modules/GateWayRouteModal.vue deleted file mode 100644 index 2a9b9d4..0000000 --- a/src/views/system/modules/GateWayRouteModal.vue +++ /dev/null @@ -1,303 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/PasswordModal.vue b/src/views/system/modules/PasswordModal.vue deleted file mode 100644 index f9f897e..0000000 --- a/src/views/system/modules/PasswordModal.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/PermissionDataRuleModal.vue b/src/views/system/modules/PermissionDataRuleModal.vue deleted file mode 100644 index 05a8c2c..0000000 --- a/src/views/system/modules/PermissionDataRuleModal.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/modules/PermissionModal.vue b/src/views/system/modules/PermissionModal.vue deleted file mode 100644 index f531ee0..0000000 --- a/src/views/system/modules/PermissionModal.vue +++ /dev/null @@ -1,423 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/QuartzJobModal.vue b/src/views/system/modules/QuartzJobModal.vue deleted file mode 100644 index e1154a2..0000000 --- a/src/views/system/modules/QuartzJobModal.vue +++ /dev/null @@ -1,190 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/RoleDataruleModal.vue b/src/views/system/modules/RoleDataruleModal.vue deleted file mode 100644 index bb5b75b..0000000 --- a/src/views/system/modules/RoleDataruleModal.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/RoleModal.vue b/src/views/system/modules/RoleModal.vue deleted file mode 100644 index 1ea4410..0000000 --- a/src/views/system/modules/RoleModal.vue +++ /dev/null @@ -1,168 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/SelectUserListModal.vue b/src/views/system/modules/SelectUserListModal.vue deleted file mode 100644 index 2cb0413..0000000 --- a/src/views/system/modules/SelectUserListModal.vue +++ /dev/null @@ -1,290 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/modules/SelectUserModal.vue b/src/views/system/modules/SelectUserModal.vue deleted file mode 100644 index 58c68e8..0000000 --- a/src/views/system/modules/SelectUserModal.vue +++ /dev/null @@ -1,287 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/system/modules/SysAnnouncementModal.vue b/src/views/system/modules/SysAnnouncementModal.vue deleted file mode 100644 index 4b0418d..0000000 --- a/src/views/system/modules/SysAnnouncementModal.vue +++ /dev/null @@ -1,359 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/SysCategoryModal.vue b/src/views/system/modules/SysCategoryModal.vue deleted file mode 100644 index b007513..0000000 --- a/src/views/system/modules/SysCategoryModal.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/SysCheckRuleModal.vue b/src/views/system/modules/SysCheckRuleModal.vue deleted file mode 100644 index 60f0b44..0000000 --- a/src/views/system/modules/SysCheckRuleModal.vue +++ /dev/null @@ -1,379 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/SysCheckRuleTestModal.vue b/src/views/system/modules/SysCheckRuleTestModal.vue deleted file mode 100644 index 6da0842..0000000 --- a/src/views/system/modules/SysCheckRuleTestModal.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/SysDataSourceModal.vue b/src/views/system/modules/SysDataSourceModal.vue deleted file mode 100644 index c7984b9..0000000 --- a/src/views/system/modules/SysDataSourceModal.vue +++ /dev/null @@ -1,251 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/SysDepartRoleModal.vue b/src/views/system/modules/SysDepartRoleModal.vue deleted file mode 100644 index ac982f8..0000000 --- a/src/views/system/modules/SysDepartRoleModal.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/SysFillRuleModal.vue b/src/views/system/modules/SysFillRuleModal.vue deleted file mode 100644 index f1344f6..0000000 --- a/src/views/system/modules/SysFillRuleModal.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/SysPositionModal.vue b/src/views/system/modules/SysPositionModal.vue deleted file mode 100644 index b05af5e..0000000 --- a/src/views/system/modules/SysPositionModal.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - - - diff --git a/src/views/system/modules/TenantForm.vue b/src/views/system/modules/TenantForm.vue deleted file mode 100644 index 7cf0090..0000000 --- a/src/views/system/modules/TenantForm.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/src/views/system/modules/TenantModal.vue b/src/views/system/modules/TenantModal.vue deleted file mode 100644 index 0fbe34d..0000000 --- a/src/views/system/modules/TenantModal.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue deleted file mode 100644 index 0d0c187..0000000 --- a/src/views/system/modules/UserModal.vue +++ /dev/null @@ -1,709 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/UserRecycleBinModal.vue b/src/views/system/modules/UserRecycleBinModal.vue deleted file mode 100644 index 0e04220..0000000 --- a/src/views/system/modules/UserRecycleBinModal.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/modules/UserRoleModal.vue b/src/views/system/modules/UserRoleModal.vue deleted file mode 100644 index 48b8f97..0000000 --- a/src/views/system/modules/UserRoleModal.vue +++ /dev/null @@ -1,200 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/system/modules/icon/Icon.less b/src/views/system/modules/icon/Icon.less deleted file mode 100644 index 5e37187..0000000 --- a/src/views/system/modules/icon/Icon.less +++ /dev/null @@ -1,35 +0,0 @@ -@active-color: #4a4a48; -ul { - max-height: 700px; - overflow-y: auto; - padding-left: .5rem; - i { - font-size: 1.5rem; - border: 1px solid #f1f1f1; - padding: .2rem; - margin: .3rem; - cursor: pointer; - &.active, &:hover { - border-radius: 2px; - border-color: @active-color; - background-color: @active-color; - color: #fff; - transition: all .3s; - } - } - li { - list-style: none; - float: left; - width: 5%; - text-align: center; - cursor: pointer; - color: #555; - transition: color .3s ease-in-out,background-color .3s ease-in-out; - position: relative; - margin: 3px 0; - border-radius: 4px; - background-color: #fff; - overflow: hidden; - padding: 10px 0 0; - } -} diff --git a/src/views/system/modules/icon/Icons.vue b/src/views/system/modules/icon/Icons.vue deleted file mode 100644 index 4b18ced..0000000 --- a/src/views/system/modules/icon/Icons.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - diff --git a/src/views/user/Login.vue b/src/views/user/Login.vue deleted file mode 100644 index ddc3fe9..0000000 --- a/src/views/user/Login.vue +++ /dev/null @@ -1,369 +0,0 @@ - - - - diff --git a/src/views/user/LoginSelectTenant.vue b/src/views/user/LoginSelectTenant.vue deleted file mode 100644 index 5f1d353..0000000 --- a/src/views/user/LoginSelectTenant.vue +++ /dev/null @@ -1,210 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/user/alteration/Alteration.vue b/src/views/user/alteration/Alteration.vue deleted file mode 100644 index cf5370b..0000000 --- a/src/views/user/alteration/Alteration.vue +++ /dev/null @@ -1,315 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/user/register/Register.vue b/src/views/user/register/Register.vue deleted file mode 100644 index 5846423..0000000 --- a/src/views/user/register/Register.vue +++ /dev/null @@ -1,380 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/user/register/RegisterResult.vue b/src/views/user/register/RegisterResult.vue deleted file mode 100644 index 389e140..0000000 --- a/src/views/user/register/RegisterResult.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/user/third/JeroThirdLoginMixin.js b/src/views/user/third/JeroThirdLoginMixin.js deleted file mode 100644 index ff4f173..0000000 --- a/src/views/user/third/JeroThirdLoginMixin.js +++ /dev/null @@ -1,211 +0,0 @@ -/** - *第三方登录 - */ -import { mapActions } from 'vuex' -import { postAction } from '@api/manage' -import { timeFix } from '@/utils/util' - -export const JeroThirdLoginMixin = { - data() { - return { - //第三方登录相关信息 - thirdLoginInfo: '', - thirdPasswordShow: false, - thirdLoginPassword: '', - thirdLoginUser: '', - thirdConfirmShow: false, - thirdCreateUserLoding: false, - thirdLoginState: false, - //绑定手机号弹窗 - bindingPhoneModal: false, - thirdPhone: '', - thirdCaptcha: '', - //获取验证码按钮30s之内是否可点击 - thirdState: { - time: 30, - smsSendBtn: false - }, - //第三方用户UUID - thirdUserUuid: '', - thirdType: '', - url: { - bindingThirdPhone: '/sys/thirdLogin/bindingThirdPhone' - } - } - }, - created() { - }, - methods: { - ...mapActions(['ThirdLogin']), - //第三方登录 - onThirdLogin(source) { - let url = window._CONFIG['domianURL'] + `/sys/thirdLogin/render/${source}` - window.open(url, `login ${source}`, 'height=500, width=500, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') - let that = this - that.thirdType = source - that.thirdLoginInfo = '' - that.thirdLoginState = false - let receiveMessage = function(event) { - let token = event.data - if (typeof token === 'string') { - //如果是字符串类型 说明是token信息 - if (token === '登录失败') { - that.$message.warning(token) - } else if (token.includes('绑定手机号')) { - that.bindingPhoneModal = true - let strings = token.split(',') - that.thirdUserUuid = strings[1] - } else { - that.doThirdLogin(token) - } - } else if (typeof token === 'object') { - //对象类型 说明需要提示是否绑定现有账号 - if (token['isObj'] === true) { - that.thirdConfirmShow = true - that.thirdLoginInfo = { ...token } - } - } else { - that.$message.warning('不识别的信息传递') - } - } - window.addEventListener('message', receiveMessage, false) - }, - // 根据token执行登录 - doThirdLogin(token) { - if (this.thirdLoginState === false) { - this.thirdLoginState = true - let param={}; - param.thirdType=this.thirdType - param.token=token - this.ThirdLogin(param).then(res => { - if (res.success) { - this.loginSuccess() - } else { - this.requestFailed(res) - } - }) - } - }, - // 绑定已有账号 需要输入密码 - thirdLoginUserBind() { - this.thirdLoginPassword = '' - this.thirdLoginUser = this.thirdLoginInfo.uuid - this.thirdConfirmShow = false - this.thirdPasswordShow = true - }, - //创建新账号 - thirdLoginUserCreate() { - this.thirdCreateUserLoding = true - // 账号名后面添加两位随机数 - this.thirdLoginInfo['suffix'] = parseInt(Math.random() * 98 + 1) - //this.thirdLoginInfo.operateCode = 123 //测试校验失败 - postAction('/sys/third/user/create', this.thirdLoginInfo).then(res => { - if (res.success) { - let token = res.result - console.log('thirdCreateNewAccount', token) - this.doThirdLogin(token) - this.thirdConfirmShow = false - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.thirdCreateUserLoding = false - }) - }, - // 核实密码 - thirdLoginCheckPassword() { - //this.thirdLoginInfo.operateCode = 123 //测试校验失败 - let param = Object.assign({}, this.thirdLoginInfo, { password: this.thirdLoginPassword }) - postAction('/sys/third/user/checkPassword', param).then(res => { - if (res.success) { - this.thirdLoginNoPassword() - this.doThirdLogin(res.result) - } else { - this.$message.warning(res.message) - } - }) - }, - // 没有密码 取消操作 - thirdLoginNoPassword() { - this.thirdPasswordShow = false - this.thirdLoginPassword = '' - this.thirdLoginUser = '' - }, - //获取第三方验证码 - getThirdCaptcha() { - let that = this - if (!this.thirdPhone) { - that.cmsFailed('请输入手机号') - } else { - this.thirdState.smsSendBtn = true - let interval = window.setInterval(() => { - if (that.thirdState.time-- <= 0) { - that.thirdState.time = 30 - that.thirdState.smsSendBtn = false - window.clearInterval(interval) - } - }, 1000) - const hide = this.$message.loading('验证码发送中..', 0) - let smsParams = {} - smsParams.mobile = this.thirdPhone - smsParams.smsmode = '1' - postAction('/sys/sms', smsParams).then(res => { - if (!res.success) { - setTimeout(hide, 0) - this.cmsFailed(res.message) - } - setTimeout(hide, 500) - }).catch(err => { - setTimeout(hide, 1) - clearInterval(interval) - that.thirdState.time = 30 - that.thirdState.smsSendBtn = false - this.requestFailed(err) - }) - } - }, - //绑定手机号点击确定按钮 - thirdHandleOk() { - let bingingParams = {} - bingingParams.mobile = this.thirdPhone - bingingParams.captcha = this.thirdCaptcha - bingingParams.thirdUserUuid = this.thirdUserUuid - postAction(this.url.bindingThirdPhone, bingingParams).then(res => { - if (res.success) { - this.bindingPhoneModal = false - this.doThirdLogin(res.result) - } else { - this.$message.warning(res.message) - } - }) - }, - loginSuccess () { - // update-begin- author:sunjianlei --- date:20190812 --- for: 登录成功后不解除禁用按钮,防止多次点击 - // this.loginBtn = false - // update-end- author:sunjianlei --- date:20190812 --- for: 登录成功后不解除禁用按钮,防止多次点击 - this.$router.push({ path: "/dashboard/analysis" }).catch(()=>{ - console.log('登录跳转首页出错,这个错误从哪里来的') - }) - this.$notification.success({ - message: '欢迎', - description: `${timeFix()},欢迎回来`, - }); - }, - cmsFailed(err){ - this.$notification[ 'error' ]({ - message: "登录失败", - description:err, - duration: 4, - }); - }, - requestFailed (err) { - this.$notification[ 'error' ]({ - message: '登录失败', - description: ((err.response || {}).data || {}).message || err.message || "请求出现错误,请稍后再试", - duration: 4, - }); - this.loginBtn = false; - }, - } - -} \ No newline at end of file diff --git a/src/views/user/third/ThirdLogin.vue b/src/views/user/third/ThirdLogin.vue deleted file mode 100644 index 63c31a0..0000000 --- a/src/views/user/third/ThirdLogin.vue +++ /dev/null @@ -1,118 +0,0 @@ - - - - - \ No newline at end of file diff --git a/vue.config.js b/vue.config.js deleted file mode 100644 index 1bb32f1..0000000 --- a/vue.config.js +++ /dev/null @@ -1,98 +0,0 @@ -const path = require('path') -const CompressionPlugin = require("compression-webpack-plugin") - -function resolve(dir) { - return path.join(__dirname, dir) -} - -// vue.config.js -module.exports = { - /* - Vue-cli3: - Crashed when using Webpack `import()` #2463 - https://github.com/vuejs/vue-cli/issues/2463 - */ - // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 - productionSourceMap: false, - //打包app时放开该配置 - //publicPath:'./', - configureWebpack: config => { - //生产环境取消 console.log - if (process.env.NODE_ENV === 'production') { - config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true - } - }, - chainWebpack: (config) => { - config.resolve.alias - .set('@$', resolve('src')) - .set('@api', resolve('src/api')) - .set('@assets', resolve('src/assets')) - .set('@comp', resolve('src/components')) - .set('@views', resolve('src/views')) - - //生产环境,开启js\css压缩 - if (process.env.NODE_ENV === 'production') { - config.plugin('compressionPlugin').use(new CompressionPlugin({ - test: /\.(js|css|less)$/, // 匹配文件名 - threshold: 10240, // 对超过10k的数据压缩 - deleteOriginalAssets: false // 不删除源文件 - })) - } - - // 配置 webpack 识别 markdown 为普通的文件 - config.module - .rule('markdown') - .test(/\.md$/) - .use() - .loader('file-loader') - .end() - - // 编译vxe-table包里的es6代码,解决IE11兼容问题 - config.module - .rule('vxe') - .test(/\.js$/) - .include - .add(resolve('node_modules/vxe-table')) - .add(resolve('node_modules/vxe-table-plugin-antd')) - .end() - .use() - .loader('babel-loader') - .end() - - }, - - css: { - loaderOptions: { - less: { - modifyVars: { - /* less 变量覆盖,用于自定义 ant design 主题 */ - 'primary-color': '#1890FF', - 'link-color': '#1890FF', - 'border-radius-base': '4px', - }, - javascriptEnabled: true, - } - } - }, - - devServer: { - port: 3000, - proxy: { - /* '/api': { - target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro', //mock API接口系统 - ws: false, - changeOrigin: true, - pathRewrite: { - '/jero-boot': '' //默认所有请求都加了jero-boot前缀,需要去掉 - } - },*/ - '/jero-boot': { - target: 'http://localhost:8080', //请求本地 jero-boot后台项目 - ws: false, - changeOrigin: true - }, - } - }, - - lintOnSave: undefined -} \ No newline at end of file