diff --git a/package-lock.json b/package-lock.json index 390c5e7a..2a3f48cd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -228,7 +228,7 @@ }, "@babel/runtime": { "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.51.tgz", + "resolved": "http://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.0.0-beta.51.tgz", "integrity": "sha1-SLjtGDBwNMZiD2Q1FGUMoszAFlo=", "dev": true, "requires": { @@ -328,7 +328,7 @@ "dependencies": { "to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } @@ -690,7 +690,7 @@ }, "abab": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/abab/download/abab-1.0.4.tgz", "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" }, "abbrev": { @@ -715,7 +715,7 @@ }, "acorn-globals": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/acorn-globals/download/acorn-globals-3.1.0.tgz", "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "requires": { "acorn": "^4.0.4" @@ -723,14 +723,14 @@ "dependencies": { "acorn": { "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "resolved": "http://registry.npm.taobao.org/acorn/download/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", + "resolved": "http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { "acorn": "^3.0.4" @@ -738,7 +738,7 @@ "dependencies": { "acorn": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" } } @@ -748,6 +748,11 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==" }, + "actioncable": { + "version": "5.2.4-3", + "resolved": "https://registry.npmjs.org/actioncable/-/actioncable-5.2.4-3.tgz", + "integrity": "sha512-SrGfg2W2GKGfYOlsOUnqjdihUhIVoyb5ewsMtpfE/Z3ZK/j5Gj2e/YWp2A7Wo+aeB1aewhPxorFxIGVRowbX4w==" + }, "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", @@ -802,7 +807,7 @@ }, "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { "kind-of": "^3.0.2", @@ -812,7 +817,7 @@ }, "alphanum-sort": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, @@ -823,7 +828,7 @@ }, "ansi-align": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/ansi-align/download/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { "string-width": "^2.0.0" @@ -841,12 +846,12 @@ }, "ansi-html": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "resolved": "http://registry.npm.taobao.org/ansi-html/download/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", + "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { @@ -994,7 +999,7 @@ }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz", "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "requires": { "default-require-extensions": "^1.0.0" @@ -1026,7 +1031,7 @@ }, "aria-query": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.1.tgz", + "resolved": "http://registry.npm.taobao.org/aria-query/download/aria-query-0.7.1.tgz", "integrity": "sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4=", "requires": { "ast-types-flow": "0.0.7", @@ -1035,7 +1040,7 @@ }, "arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { "arr-flatten": "^1.0.1" @@ -1048,17 +1053,17 @@ }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz", "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" }, "array-find-index": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "array-flatten": { @@ -1083,7 +1088,7 @@ }, "array-union": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { "array-uniq": "^1.0.1" @@ -1091,22 +1096,22 @@ }, "array-uniq": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "resolved": "http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asn1": { @@ -1140,13 +1145,13 @@ "dependencies": { "inherits": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true }, "util": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -1157,17 +1162,17 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-types-flow": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "resolved": "http://registry.npm.taobao.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz", "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" }, "async": { @@ -1201,7 +1206,7 @@ }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { @@ -1224,7 +1229,7 @@ }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { @@ -1243,7 +1248,7 @@ }, "axobject-query": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/axobject-query/download/axobject-query-0.1.0.tgz", "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=", "requires": { "ast-types-flow": "0.0.7" @@ -1251,7 +1256,7 @@ }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { "chalk": "^1.1.3", @@ -1261,14 +1266,14 @@ "dependencies": { "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" } } }, "babel-core": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.0.tgz", "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "requires": { "babel-code-frame": "^6.26.0", @@ -1302,14 +1307,14 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "http://registry.npm.taobao.org/source-map/download/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", + "resolved": "http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-7.2.3.tgz", "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", "requires": { "babel-code-frame": "^6.22.0", @@ -1335,14 +1340,14 @@ "dependencies": { "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "http://registry.npm.taobao.org/source-map/download/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", + "resolved": "http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { "babel-helper-explode-assignable-expression": "^6.24.1", @@ -1352,7 +1357,7 @@ }, "babel-helper-builder-react-jsx": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { "babel-runtime": "^6.26.0", @@ -1362,7 +1367,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { "babel-helper-hoist-variables": "^6.24.1", @@ -1373,7 +1378,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { "babel-helper-function-name": "^6.24.1", @@ -1384,7 +1389,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { "babel-runtime": "^6.22.0", @@ -1394,7 +1399,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { "babel-helper-get-function-arity": "^6.24.1", @@ -1406,7 +1411,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { "babel-runtime": "^6.22.0", @@ -1415,7 +1420,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { "babel-runtime": "^6.22.0", @@ -1424,7 +1429,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { "babel-runtime": "^6.22.0", @@ -1433,7 +1438,7 @@ }, "babel-helper-regex": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { "babel-runtime": "^6.26.0", @@ -1443,7 +1448,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { "babel-helper-function-name": "^6.24.1", @@ -1455,7 +1460,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { "babel-helper-optimise-call-expression": "^6.24.1", @@ -1468,7 +1473,7 @@ }, "babel-helpers": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "resolved": "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { "babel-runtime": "^6.22.0", @@ -1477,7 +1482,7 @@ }, "babel-jest": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/babel-jest/download/babel-jest-20.0.3.tgz", "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=", "requires": { "babel-core": "^6.0.0", @@ -1497,7 +1502,7 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { "babel-runtime": "^6.22.0" @@ -1505,7 +1510,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { "babel-runtime": "^6.22.0" @@ -1561,7 +1566,7 @@ }, "babel-plugin-jest-hoist": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-20.0.3.tgz", "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=" }, "babel-plugin-styled-components": { @@ -1577,47 +1582,47 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, "babel-plugin-syntax-class-properties": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz", "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" }, "babel-plugin-syntax-dynamic-import": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz", "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, "babel-plugin-syntax-flow": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-flow/download/babel-plugin-syntax-flow-6.18.0.tgz", "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" }, "babel-plugin-syntax-jsx": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/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", @@ -1627,7 +1632,7 @@ }, "babel-plugin-transform-class-properties": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", "requires": { "babel-helper-function-name": "^6.24.1", @@ -1638,7 +1643,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { "babel-runtime": "^6.22.0" @@ -1646,7 +1651,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { "babel-runtime": "^6.22.0" @@ -1654,7 +1659,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { "babel-runtime": "^6.26.0", @@ -1666,7 +1671,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { "babel-helper-define-map": "^6.24.1", @@ -1682,7 +1687,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { "babel-runtime": "^6.22.0", @@ -1691,7 +1696,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { "babel-runtime": "^6.22.0" @@ -1699,7 +1704,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { "babel-runtime": "^6.22.0", @@ -1708,7 +1713,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { "babel-runtime": "^6.22.0" @@ -1716,7 +1721,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { "babel-helper-function-name": "^6.24.1", @@ -1726,7 +1731,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { "babel-runtime": "^6.22.0" @@ -1734,7 +1739,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", @@ -1755,7 +1760,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { "babel-helper-hoist-variables": "^6.24.1", @@ -1765,7 +1770,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", @@ -1775,7 +1780,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { "babel-helper-replace-supers": "^6.24.1", @@ -1784,7 +1789,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { "babel-helper-call-delegate": "^6.24.1", @@ -1797,7 +1802,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { "babel-runtime": "^6.22.0", @@ -1806,7 +1811,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { "babel-runtime": "^6.22.0" @@ -1814,7 +1819,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { "babel-helper-regex": "^6.24.1", @@ -1824,7 +1829,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { "babel-runtime": "^6.22.0" @@ -1832,7 +1837,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { "babel-runtime": "^6.22.0" @@ -1840,7 +1845,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { "babel-helper-regex": "^6.24.1", @@ -1850,7 +1855,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/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", @@ -1860,7 +1865,7 @@ }, "babel-plugin-transform-flow-strip-types": { "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-flow-strip-types/download/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { "babel-plugin-syntax-flow": "^6.18.0", @@ -1869,7 +1874,7 @@ }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz", "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "requires": { "babel-plugin-syntax-object-rest-spread": "^6.8.0", @@ -1878,7 +1883,7 @@ }, "babel-plugin-transform-react-constant-elements": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-react-constant-elements/download/babel-plugin-transform-react-constant-elements-6.23.0.tgz", "integrity": "sha1-LxGb9NLN1F65uqrldAU8YE9hR90=", "requires": { "babel-runtime": "^6.22.0" @@ -1886,7 +1891,7 @@ }, "babel-plugin-transform-react-display-name": { "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-react-display-name/download/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { "babel-runtime": "^6.22.0" @@ -1894,7 +1899,7 @@ }, "babel-plugin-transform-react-jsx": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { "babel-helper-builder-react-jsx": "^6.24.1", @@ -1904,7 +1909,7 @@ }, "babel-plugin-transform-react-jsx-self": { "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-self/download/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { "babel-plugin-syntax-jsx": "^6.8.0", @@ -1913,7 +1918,7 @@ }, "babel-plugin-transform-react-jsx-source": { "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-source/download/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { "babel-plugin-syntax-jsx": "^6.8.0", @@ -1922,7 +1927,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { "regenerator-transform": "^0.10.0" @@ -1930,7 +1935,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz", "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", "requires": { "babel-runtime": "^6.22.0" @@ -1938,7 +1943,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { "babel-runtime": "^6.22.0", @@ -1984,7 +1989,7 @@ }, "babel-preset-flow": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-preset-flow/download/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { "babel-plugin-transform-flow-strip-types": "^6.22.0" @@ -1992,7 +1997,7 @@ }, "babel-preset-jest": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-20.0.3.tgz", "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=", "requires": { "babel-plugin-jest-hoist": "^20.0.3" @@ -2000,7 +2005,7 @@ }, "babel-preset-react": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "resolved": "http://registry.npm.taobao.org/babel-preset-react/download/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { "babel-plugin-syntax-jsx": "^6.3.13", @@ -2033,7 +2038,7 @@ }, "babel-register": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { "babel-core": "^6.26.0", @@ -2047,7 +2052,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "^2.4.0", @@ -2056,7 +2061,7 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { "babel-runtime": "^6.26.0", @@ -2068,7 +2073,7 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { "babel-code-frame": "^6.26.0", @@ -2094,7 +2099,7 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "resolved": "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { "babel-runtime": "^6.26.0", @@ -2110,7 +2115,7 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { @@ -2129,7 +2134,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -2163,7 +2168,7 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { @@ -2181,12 +2186,12 @@ }, "batch": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "resolved": "http://registry.npm.taobao.org/batch/download/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", + "resolved": "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" @@ -2320,7 +2325,7 @@ }, "bonjour": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "resolved": "http://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "requires": { "array-flatten": "^2.1.0", @@ -2333,7 +2338,7 @@ }, "boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "boxen": { @@ -2352,7 +2357,7 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "chalk": { @@ -2378,7 +2383,7 @@ }, "braces": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { "expand-range": "^1.8.1", @@ -2393,7 +2398,7 @@ }, "brorand": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, @@ -2412,7 +2417,7 @@ "dependencies": { "resolve": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" } } @@ -2456,7 +2461,7 @@ }, "browserify-rsa": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { @@ -2466,7 +2471,7 @@ }, "browserify-sign": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { @@ -2528,18 +2533,18 @@ }, "buffer-xor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "builtin-status-codes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, @@ -2553,7 +2558,7 @@ }, "bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "cacache": { @@ -2603,7 +2608,7 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } @@ -2632,7 +2637,7 @@ }, "caller-path": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { "callsites": "^0.2.0" @@ -2640,7 +2645,7 @@ }, "callsites": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camel-case": { @@ -2659,7 +2664,7 @@ }, "camelcase-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { "camelcase": "^2.0.0", @@ -2668,14 +2673,14 @@ "dependencies": { "camelcase": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" } } }, "camelize": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/camelize/download/camelize-1.0.0.tgz", "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-api": { @@ -2716,17 +2721,17 @@ }, "case-sensitive-paths-webpack-plugin": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.1.1.tgz", "integrity": "sha1-PSnO2MHxJL9vU4Rvs/WJRzH9yQk=" }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "resolved": "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { "align-text": "^0.1.3", @@ -2735,7 +2740,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "^2.2.1", @@ -2747,29 +2752,29 @@ "dependencies": { "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, "change-emitter": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", + "resolved": "http://registry.npm.taobao.org/change-emitter/download/change-emitter-0.1.6.tgz", "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" }, "chardet": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "resolved": "http://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz", "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" }, "charenc": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" }, "check-types": { @@ -2808,7 +2813,7 @@ "dependencies": { "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { "remove-trailing-separator": "^1.0.1" @@ -2818,12 +2823,12 @@ }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { @@ -2845,7 +2850,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -2863,7 +2868,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -2877,7 +2882,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -2885,7 +2890,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -2893,7 +2898,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" @@ -2901,7 +2906,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2911,7 +2916,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" @@ -2919,7 +2924,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2961,7 +2966,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -2969,7 +2974,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -2979,7 +2984,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -2990,7 +2995,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -3000,7 +3005,7 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { "is-glob": "^3.1.0", @@ -3009,7 +3014,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { "is-extglob": "^2.1.0" @@ -3050,7 +3055,7 @@ }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-glob": { @@ -3063,7 +3068,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -3071,7 +3076,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -3081,7 +3086,7 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { @@ -3164,7 +3169,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -3172,7 +3177,7 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } @@ -3198,12 +3203,12 @@ }, "cli-boxes": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { "restore-cursor": "^2.0.0" @@ -3263,7 +3268,7 @@ }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "coa": { @@ -3292,7 +3297,7 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "codemirror": { @@ -3302,7 +3307,7 @@ }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "^1.0.0", @@ -3329,7 +3334,7 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { @@ -3357,12 +3362,12 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/commondir/download/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", + "resolved": "http://registry.npm.taobao.org/component-classes/download/component-classes-1.2.6.tgz", "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", "requires": { "component-indexof": "0.0.3" @@ -3375,7 +3380,7 @@ }, "component-indexof": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/component-indexof/download/component-indexof-0.0.3.tgz", "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" }, "compressible": { @@ -3425,7 +3430,7 @@ }, "concat": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/concat/download/concat-1.0.3.tgz", "integrity": "sha1-QPM1MInWVGdpXLGIa0Xt1jfYzKg=", "dev": true, "requires": { @@ -3434,7 +3439,7 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { @@ -3495,13 +3500,13 @@ }, "constants-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, "contains-path": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" }, "content-disposition": { @@ -3537,12 +3542,12 @@ }, "cookie": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, "cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "copy-concurrently": { @@ -3561,7 +3566,7 @@ }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "copy-to-clipboard": { @@ -3579,7 +3584,7 @@ }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { @@ -3608,7 +3613,7 @@ }, "create-error-class": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/create-error-class/download/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { "capture-stack-trace": "^1.0.0" @@ -3662,7 +3667,7 @@ }, "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "^4.0.1", @@ -3672,7 +3677,7 @@ }, "crypt": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz", "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" }, "crypto-browserify": { @@ -3696,7 +3701,7 @@ }, "crypto-random-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz", "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, "css-animation": { @@ -3718,12 +3723,12 @@ }, "css-color-keywords": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/css-color-keywords/download/css-color-keywords-1.0.0.tgz", "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" }, "css-color-names": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", "dev": true }, @@ -3863,7 +3868,7 @@ }, "css-select": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { "boolbase": "~1.0.0", @@ -3900,7 +3905,7 @@ }, "css-vendor": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", + "resolved": "http://registry.npm.taobao.org/css-vendor/download/css-vendor-0.3.8.tgz", "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", "requires": { "is-in-browser": "^1.0.2" @@ -4181,7 +4186,7 @@ }, "cssstyle": { "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "resolved": "http://registry.npm.taobao.org/cssstyle/download/cssstyle-0.2.37.tgz", "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "requires": { "cssom": "0.3.x" @@ -4194,7 +4199,7 @@ }, "currently-unhandled": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "resolved": "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "requires": { "array-find-index": "^1.0.1" @@ -4259,7 +4264,7 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "resolved": "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" @@ -4320,7 +4325,7 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decimal.js": { @@ -4330,7 +4335,7 @@ }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "deep-equal": { @@ -4353,7 +4358,7 @@ }, "deep-is": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "resolved": "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "deepmerge": { @@ -4408,7 +4413,7 @@ }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz", "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "requires": { "strip-bom": "^2.0.0" @@ -4459,7 +4464,7 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { @@ -4471,12 +4476,12 @@ }, "defined": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, "del": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/del/download/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { "globby": "^5.0.0", @@ -4505,7 +4510,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegate": { @@ -4521,7 +4526,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "des.js": { @@ -4536,7 +4541,7 @@ }, "destroy": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detect-file": { @@ -4546,7 +4551,7 @@ }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { "repeating": "^2.0.0" @@ -4618,7 +4623,7 @@ }, "dns-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" }, "dns-packet": { @@ -4632,7 +4637,7 @@ }, "dns-txt": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "requires": { "buffer-indexof": "^1.0.0" @@ -4702,7 +4707,7 @@ }, "dom-scroll-into-view": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/dom-scroll-into-view/download/dom-scroll-into-view-1.2.1.tgz", "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4=" }, "dom-serializer": { @@ -4723,7 +4728,7 @@ }, "dom-urls": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/dom-urls/-/dom-urls-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/dom-urls/download/dom-urls-1.1.0.tgz", "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=", "requires": { "urijs": "^1.16.1" @@ -4770,7 +4775,7 @@ }, "domutils": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "resolved": "http://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { "dom-serializer": "0", @@ -4796,12 +4801,12 @@ }, "dotenv": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/dotenv/download/dotenv-4.0.0.tgz", "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" }, "dotenv-expand": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-4.2.0.tgz", "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" }, "dotignore": { @@ -4824,12 +4829,12 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, "duplexer3": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { @@ -4846,7 +4851,7 @@ }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { "jsbn": "~0.1.0", @@ -4868,7 +4873,7 @@ }, "ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "ejs": { @@ -4914,12 +4919,12 @@ }, "encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "encoding": { "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "resolved": "http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { "iconv-lite": "~0.4.13" @@ -4945,7 +4950,7 @@ }, "enquire.js": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", + "resolved": "http://registry.npm.taobao.org/enquire.js/download/enquire.js-2.1.6.tgz", "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=" }, "entities": { @@ -5004,12 +5009,12 @@ }, "escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/escape-html/download/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", + "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { @@ -5081,7 +5086,7 @@ }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "chalk": { @@ -5106,7 +5111,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -5308,7 +5313,7 @@ }, "doctrine": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "resolved": "http://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { "esutils": "^2.0.2", @@ -5317,7 +5322,7 @@ }, "load-json-file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { "graceful-fs": "^4.1.2", @@ -5328,7 +5333,7 @@ }, "path-type": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "^2.0.0" @@ -5336,7 +5341,7 @@ }, "read-pkg": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { "load-json-file": "^2.0.0", @@ -5346,7 +5351,7 @@ }, "read-pkg-up": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { "find-up": "^2.0.0", @@ -5355,7 +5360,7 @@ }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" } } @@ -5454,7 +5459,7 @@ }, "etag": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter3": { @@ -5501,7 +5506,7 @@ }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "resolved": "http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "^5.0.1", @@ -5515,7 +5520,7 @@ }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { "is-posix-bracket": "^0.1.0" @@ -5523,7 +5528,7 @@ }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { "fill-range": "^2.1.0" @@ -5531,7 +5536,7 @@ }, "expand-tilde": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/expand-tilde/download/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "requires": { "homedir-polyfill": "^1.0.1" @@ -5576,7 +5581,7 @@ "dependencies": { "array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "cookie": { @@ -5594,7 +5599,7 @@ }, "path-to-regexp": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "qs": { @@ -5611,7 +5616,7 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "^1.0.0", @@ -5640,7 +5645,7 @@ }, "extglob": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { "is-extglob": "^1.0.0" @@ -5648,7 +5653,7 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { @@ -5976,7 +5981,7 @@ }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "faye-websocket": { @@ -5997,7 +6002,7 @@ }, "fbjs": { "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "resolved": "http://registry.npm.taobao.org/fbjs/download/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { "core-js": "^1.0.0", @@ -6011,7 +6016,7 @@ "dependencies": { "core-js": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-1.2.7.tgz", "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" }, "promise": { @@ -6037,7 +6042,7 @@ }, "figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { "escape-string-regexp": "^1.0.5" @@ -6045,7 +6050,7 @@ }, "file-entry-cache": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { "flat-cache": "^1.2.1", @@ -6089,12 +6094,12 @@ }, "filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" }, "fileset": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz", "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "requires": { "glob": "^7.0.3", @@ -6144,7 +6149,7 @@ }, "find-cache-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "requires": { "commondir": "^1.0.1", @@ -6154,7 +6159,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "^2.0.0" @@ -6507,12 +6512,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { "for-in": "^1.0.1" @@ -6520,7 +6525,7 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "resolved": "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "fork-ts-checker-webpack-plugin": { @@ -6823,12 +6828,12 @@ }, "forwarded": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/forwarded/download/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", + "resolved": "http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "^0.2.2" @@ -6836,7 +6841,7 @@ }, "fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "from2": { @@ -6851,7 +6856,7 @@ }, "fs-extra": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/fs-extra/download/fs-extra-3.0.1.tgz", "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", "requires": { "graceful-fs": "^4.1.2", @@ -6892,7 +6897,7 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { @@ -7464,7 +7469,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gauge": { @@ -7521,22 +7526,22 @@ }, "get-stdin": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/get-stdin/download/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", + "resolved": "http://registry.npm.taobao.org/get-stream/download/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", + "resolved": "http://registry.npm.taobao.org/get-value/download/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", + "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" @@ -7557,7 +7562,7 @@ }, "glob-base": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { "glob-parent": "^2.0.0", @@ -7566,7 +7571,7 @@ }, "glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { "is-glob": "^2.0.0" @@ -7579,7 +7584,7 @@ }, "global": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "resolved": "http://registry.npm.taobao.org/global/download/global-4.3.2.tgz", "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "requires": { "min-document": "^2.19.0", @@ -7588,7 +7593,7 @@ }, "global-dirs": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/global-dirs/download/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "requires": { "ini": "^1.3.4" @@ -7666,7 +7671,7 @@ }, "got": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "resolved": "http://registry.npm.taobao.org/got/download/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { "create-error-class": "^3.0.0", @@ -7689,7 +7694,7 @@ }, "growly": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" }, "gud": { @@ -7796,7 +7801,7 @@ }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { @@ -7818,7 +7823,7 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "^2.0.0" @@ -7826,7 +7831,7 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { @@ -7842,7 +7847,7 @@ }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -7852,14 +7857,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", @@ -7873,7 +7878,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -7881,7 +7886,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -7891,7 +7896,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -7901,7 +7906,7 @@ }, "hash-base": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { @@ -7960,7 +7965,7 @@ }, "hmac-drbg": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { @@ -7979,7 +7984,7 @@ }, "home-or-tmp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { "os-homedir": "^1.0.0", @@ -8007,7 +8012,7 @@ }, "hpack.js": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "resolved": "http://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "requires": { "inherits": "^2.0.1", @@ -8116,7 +8121,7 @@ }, "http-deceiver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "resolved": "http://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" }, "http-errors": { @@ -8386,7 +8391,7 @@ }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-glob": { @@ -8449,7 +8454,7 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", @@ -8459,7 +8464,7 @@ }, "https-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, @@ -8588,7 +8593,7 @@ }, "import-lazy": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "import-local": { @@ -8650,7 +8655,7 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "in-publish": { @@ -8669,7 +8674,7 @@ }, "indent-string": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "requires": { "repeating": "^2.0.0" @@ -8677,7 +8682,7 @@ }, "indexes-of": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" }, "infer-owner": { @@ -8688,7 +8693,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -8728,7 +8733,7 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "chalk": { @@ -8743,7 +8748,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -8780,12 +8785,12 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/invert-kv/download/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", + "resolved": "http://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "ip-regex": { @@ -8805,7 +8810,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" @@ -8818,12 +8823,12 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-arrayish/download/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", + "resolved": "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { "binary-extensions": "^1.0.0" @@ -8836,7 +8841,7 @@ }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { "builtin-modules": "^1.0.0" @@ -8871,7 +8876,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" @@ -8901,7 +8906,7 @@ }, "is-directory": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, "is-docker": { @@ -8911,12 +8916,12 @@ }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { "is-primitive": "^2.0.0" @@ -8924,12 +8929,12 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-finite": { @@ -8939,7 +8944,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-function": { @@ -8949,7 +8954,7 @@ }, "is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { "is-extglob": "^1.0.0" @@ -8957,12 +8962,12 @@ }, "is-in-browser": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "resolved": "http://registry.npm.taobao.org/is-in-browser/download/is-in-browser-1.1.3.tgz", "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" }, "is-installed-globally": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { "global-dirs": "^0.1.0", @@ -8976,12 +8981,12 @@ }, "is-npm": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz", "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { "kind-of": "^3.0.2" @@ -8989,12 +8994,12 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, "is-path-cwd": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz", "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" }, "is-path-in-cwd": { @@ -9007,7 +9012,7 @@ }, "is-path-inside": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { "path-is-inside": "^1.0.1" @@ -9015,7 +9020,7 @@ }, "is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { @@ -9028,14 +9033,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" }, "is-potential-custom-element-name": { @@ -9045,12 +9050,12 @@ }, "is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" }, "is-redirect": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-regex": { @@ -9078,7 +9083,7 @@ }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { @@ -9105,12 +9110,12 @@ }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-what": { @@ -9125,22 +9130,22 @@ }, "is-wsl": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-wsl/download/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", + "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -9148,7 +9153,7 @@ }, "isomorphic-fetch": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { "node-fetch": "^1.0.1", @@ -9157,7 +9162,7 @@ }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-api": { @@ -9218,12 +9223,12 @@ "dependencies": { "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { "has-flag": "^1.0.0" @@ -9245,7 +9250,7 @@ "dependencies": { "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } @@ -9260,7 +9265,7 @@ }, "jest": { "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/jest/download/jest-20.0.4.tgz", "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=", "requires": { "jest-cli": "^20.0.4" @@ -9268,12 +9273,12 @@ "dependencies": { "ansi-escapes": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz", "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" }, "callsites": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" }, "camelcase": { @@ -9301,7 +9306,7 @@ }, "jest-cli": { "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/jest-cli/download/jest-cli-20.0.4.tgz", "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=", "requires": { "ansi-escapes": "^1.4.0", @@ -9370,12 +9375,12 @@ }, "jest-changed-files": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-20.0.3.tgz", "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=" }, "jest-config": { "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/jest-config/download/jest-config-20.0.4.tgz", "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=", "requires": { "chalk": "^1.1.3", @@ -9392,7 +9397,7 @@ }, "jest-diff": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-diff/download/jest-diff-20.0.3.tgz", "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=", "requires": { "chalk": "^1.1.3", @@ -9403,12 +9408,12 @@ }, "jest-docblock": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-docblock/download/jest-docblock-20.0.3.tgz", "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=" }, "jest-environment-jsdom": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-20.0.3.tgz", "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=", "requires": { "jest-mock": "^20.0.3", @@ -9418,7 +9423,7 @@ }, "jest-environment-node": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-20.0.3.tgz", "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=", "requires": { "jest-mock": "^20.0.3", @@ -9440,7 +9445,7 @@ }, "jest-jasmine2": { "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-20.0.4.tgz", "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=", "requires": { "chalk": "^1.1.3", @@ -9456,7 +9461,7 @@ }, "jest-matcher-utils": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-20.0.3.tgz", "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=", "requires": { "chalk": "^1.1.3", @@ -9465,7 +9470,7 @@ }, "jest-matchers": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-matchers/download/jest-matchers-20.0.3.tgz", "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=", "requires": { "jest-diff": "^20.0.3", @@ -9476,7 +9481,7 @@ }, "jest-message-util": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-message-util/download/jest-message-util-20.0.3.tgz", "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=", "requires": { "chalk": "^1.1.3", @@ -9486,17 +9491,17 @@ }, "jest-mock": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-mock/download/jest-mock-20.0.3.tgz", "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=" }, "jest-regex-util": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-20.0.3.tgz", "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=" }, "jest-resolve": { "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/jest-resolve/download/jest-resolve-20.0.4.tgz", "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=", "requires": { "browser-resolve": "^1.11.2", @@ -9506,7 +9511,7 @@ }, "jest-resolve-dependencies": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-20.0.3.tgz", "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=", "requires": { "jest-regex-util": "^20.0.3" @@ -9514,7 +9519,7 @@ }, "jest-runtime": { "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/jest-runtime/download/jest-runtime-20.0.4.tgz", "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=", "requires": { "babel-core": "^6.0.0", @@ -9569,7 +9574,7 @@ }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "yargs": { @@ -9596,7 +9601,7 @@ }, "jest-snapshot": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-20.0.3.tgz", "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=", "requires": { "chalk": "^1.1.3", @@ -9609,7 +9614,7 @@ }, "jest-util": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-util/download/jest-util-20.0.3.tgz", "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=", "requires": { "chalk": "^1.1.3", @@ -9623,7 +9628,7 @@ }, "jest-validate": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/jest-validate/download/jest-validate-20.0.3.tgz", "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=", "requires": { "chalk": "^1.1.3", @@ -9680,12 +9685,12 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsdom": { "version": "9.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "resolved": "http://registry.npm.taobao.org/jsdom/download/jsdom-9.12.0.tgz", "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", "requires": { "abab": "^1.0.3", @@ -9711,14 +9716,14 @@ "dependencies": { "acorn": { "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz", "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" } } }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-parse-better-errors": { @@ -9729,7 +9734,7 @@ }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "resolved": "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { @@ -9739,7 +9744,7 @@ }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { "jsonify": "~0.0.0" @@ -9747,7 +9752,7 @@ }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json2module": { @@ -9773,7 +9778,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "jsonfile": { @@ -9786,12 +9791,12 @@ }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", @@ -9947,7 +9952,7 @@ }, "jsx-ast-utils": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", + "resolved": "http://registry.npm.taobao.org/jsx-ast-utils/download/jsx-ast-utils-1.4.1.tgz", "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=" }, "katex": { @@ -9960,7 +9965,7 @@ }, "keycode": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/keycode/download/keycode-2.2.0.tgz", "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" }, "killable": { @@ -9970,7 +9975,7 @@ }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -9995,7 +10000,7 @@ }, "latest-version": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/latest-version/download/latest-version-3.1.0.tgz", "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "requires": { "package-json": "^4.0.0" @@ -10003,12 +10008,12 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/lazy-cache/download/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", + "resolved": "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { "invert-kv": "^1.0.0" @@ -10016,12 +10021,12 @@ }, "leven": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz", "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" }, "levn": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { "prelude-ls": "~1.1.2", @@ -10030,7 +10035,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { "graceful-fs": "^4.1.2", @@ -10073,7 +10078,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "^2.0.0", @@ -10092,32 +10097,32 @@ }, "lodash._reinterpolate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" }, "lodash.cond": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "resolved": "http://registry.npm.taobao.org/lodash.cond/download/lodash.cond-4.5.2.tgz", "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" }, "lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "resolved": "http://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, "lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/lodash.defaults/download/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" }, "lodash.isequal": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "resolved": "http://registry.npm.taobao.org/lodash.isequal/download/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, "lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, "lodash.sortby": { @@ -10149,7 +10154,7 @@ }, "lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "resolved": "http://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, @@ -10160,7 +10165,7 @@ }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { @@ -10173,7 +10178,7 @@ }, "loud-rejection": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "resolved": "http://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { "currently-unhandled": "^0.4.1", @@ -10212,14 +10217,14 @@ "dependencies": { "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, "makeerror": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "resolved": "http://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz", "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "requires": { "tmpl": "1.0.x" @@ -10235,17 +10240,17 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/map-cache/download/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", + "resolved": "http://registry.npm.taobao.org/map-obj/download/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", + "resolved": "http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "^1.0.0" @@ -10318,7 +10323,7 @@ }, "md5": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/md5/download/md5-2.2.1.tgz", "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", "requires": { "charenc": "~0.0.1", @@ -10352,7 +10357,7 @@ }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "mem": { @@ -10379,7 +10384,7 @@ }, "memory-fs": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "resolved": "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { "errno": "^0.1.3", @@ -10388,7 +10393,7 @@ }, "meow": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "resolved": "http://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "requires": { "camelcase-keys": "^2.0.0", @@ -10418,7 +10423,7 @@ }, "merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge-stream": { @@ -10434,7 +10439,7 @@ }, "methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "microevent.ts": { @@ -10444,7 +10449,7 @@ }, "micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { "arr-diff": "^2.0.0", @@ -10497,7 +10502,7 @@ }, "min-document": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "resolved": "http://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "requires": { "dom-walk": "^0.1.0" @@ -10551,7 +10556,7 @@ }, "minimalistic-crypto-utils": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, @@ -10726,7 +10731,7 @@ }, "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", + "resolved": "http://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" }, "mutationobserver-shim": { @@ -10736,7 +10741,7 @@ }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "resolved": "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nan": { @@ -10764,12 +10769,12 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "kind-of": { @@ -10781,7 +10786,7 @@ }, "natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "negotiator": { @@ -10852,7 +10857,7 @@ }, "node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz", "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" }, "node-libs-browser": { @@ -10888,13 +10893,13 @@ "dependencies": { "process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "resolved": "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true } @@ -10976,7 +10981,7 @@ }, "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { "remove-trailing-separator": "^1.0.1" @@ -10984,7 +10989,7 @@ }, "normalize-range": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, "normalize-scroll-left": { @@ -10994,7 +10999,7 @@ }, "normalize-url": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "resolved": "http://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "requires": { "object-assign": "^4.0.1", @@ -11005,7 +11010,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "^2.0.0" @@ -11033,12 +11038,12 @@ }, "num2fraction": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/num2fraction/download/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", + "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "numeral": { @@ -11063,12 +11068,12 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/object-assign/download/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", + "resolved": "http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "^0.1.0", @@ -11078,7 +11083,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -11112,7 +11117,7 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" @@ -11120,7 +11125,7 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } @@ -11158,7 +11163,7 @@ }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { "for-own": "^0.1.4", @@ -11167,7 +11172,7 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" @@ -11175,7 +11180,7 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } @@ -11207,7 +11212,7 @@ }, "on-finished": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { "ee-first": "1.1.1" @@ -11220,7 +11225,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -11228,7 +11233,7 @@ }, "onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { "mimic-fn": "^1.0.0" @@ -11297,18 +11302,18 @@ }, "os-browserify": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { "lcid": "^1.0.0" @@ -11316,7 +11321,7 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -11336,7 +11341,7 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { @@ -11354,7 +11359,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "^1.1.0" @@ -11375,12 +11380,12 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "package-json": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/package-json/download/package-json-4.0.1.tgz", "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "requires": { "got": "^6.7.1", @@ -11436,7 +11441,7 @@ }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { "glob-base": "^0.3.0", @@ -11447,7 +11452,7 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { "error-ex": "^1.2.0" @@ -11455,12 +11460,12 @@ }, "parse-passwd": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "parse5": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "resolved": "http://registry.npm.taobao.org/parse5/download/parse5-1.5.1.tgz", "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=" }, "parseurl": { @@ -11479,7 +11484,7 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-browserify": { @@ -11490,27 +11495,27 @@ }, "path-dirname": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/path-dirname/download/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", + "resolved": "http://registry.npm.taobao.org/path-exists/download/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", + "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/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", + "resolved": "http://registry.npm.taobao.org/path-is-inside/download/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", + "resolved": "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { @@ -11528,14 +11533,14 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" } } }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { "graceful-fs": "^4.1.2", @@ -11558,22 +11563,22 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/pinkie/download/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", + "resolved": "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { "pinkie": "^2.0.0" @@ -11581,7 +11586,7 @@ }, "pkg-dir": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "requires": { "find-up": "^2.1.0" @@ -11632,7 +11637,7 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { @@ -12063,7 +12068,7 @@ }, "postcss-load-config": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-1.2.0.tgz", "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", "requires": { "cosmiconfig": "^2.1.0", @@ -12074,7 +12079,7 @@ }, "postcss-load-options": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/postcss-load-options/download/postcss-load-options-1.2.0.tgz", "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", "requires": { "cosmiconfig": "^2.1.0", @@ -12083,7 +12088,7 @@ }, "postcss-load-plugins": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/postcss-load-plugins/download/postcss-load-plugins-2.3.0.tgz", "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", "requires": { "cosmiconfig": "^2.1.1", @@ -13574,27 +13579,27 @@ }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, "pretty-bytes": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/pretty-bytes/download/pretty-bytes-4.0.2.tgz", "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" }, "pretty-error": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz", "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "requires": { "renderkid": "^2.0.1", @@ -13603,7 +13608,7 @@ }, "pretty-format": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/pretty-format/download/pretty-format-20.0.3.tgz", "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=", "requires": { "ansi-regex": "^2.1.1", @@ -13617,7 +13622,7 @@ }, "process": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "resolved": "http://registry.npm.taobao.org/process/download/process-0.5.2.tgz", "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" }, "process-nextick-args": { @@ -13632,7 +13637,7 @@ }, "promise": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/promise/download/promise-8.0.1.tgz", "integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=", "requires": { "asap": "~2.0.3" @@ -13665,12 +13670,12 @@ }, "prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/prr/download/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", + "resolved": "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { @@ -13793,7 +13798,7 @@ }, "q": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "resolved": "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, @@ -13819,7 +13824,7 @@ }, "query-string": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "resolved": "http://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "requires": { "object-assign": "^4.1.0", @@ -13828,12 +13833,12 @@ }, "querystring": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/querystring/download/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", + "resolved": "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, @@ -13885,7 +13890,7 @@ }, "rafl": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/rafl/-/rafl-1.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/rafl/download/rafl-1.2.2.tgz", "integrity": "sha1-/pMPdYIRAg1H44gV9Rlqi+QVB0A=", "requires": { "global": "~4.3.0" @@ -14521,7 +14526,7 @@ }, "react-codemirror": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/react-codemirror/-/react-codemirror-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/react-codemirror/download/react-codemirror-1.0.0.tgz", "integrity": "sha1-kUZ7U7H12A2Rai/QtMetuFqQAbo=", "requires": { "classnames": "^2.2.5", @@ -14904,9 +14909,9 @@ } }, "react-monaco-editor": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/react-monaco-editor/-/react-monaco-editor-0.36.0.tgz", - "integrity": "sha512-JVA5SZhOoYZ0DCdTwYgagtRb3jHo4KN7TVFiJauG+ZBAJWfDSTzavPIrwzWbgu8ahhDqDk4jUcYlOJL2BC/0UA==", + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/react-monaco-editor/-/react-monaco-editor-0.37.0.tgz", + "integrity": "sha512-4fbmTIPOfEdmAlslYPVXt+TRSd975XwgfxuSEL32efjXQwTzPZWA/Wf5qn8nYBMl+Lfdhu1DGDTLE6CZ4UOjzw==", "requires": { "@types/react": "^16.x", "monaco-editor": "*", @@ -14937,7 +14942,7 @@ }, "react-popper": { "version": "0.10.4", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.10.4.tgz", + "resolved": "http://registry.npm.taobao.org/react-popper/download/react-popper-0.10.4.tgz", "integrity": "sha1-rypBXqIike3VBGeNev2opu4ylao=", "requires": { "popper.js": "^1.14.1", @@ -15119,7 +15124,7 @@ }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { "load-json-file": "^1.0.0", @@ -15129,7 +15134,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { "find-up": "^1.0.0", @@ -15138,7 +15143,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { "path-exists": "^2.0.0", @@ -15147,7 +15152,7 @@ }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { "pinkie-promise": "^2.0.0" @@ -15181,12 +15186,12 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { @@ -15208,7 +15213,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -15226,7 +15231,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -15240,7 +15245,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -15248,7 +15253,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -15256,7 +15261,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" @@ -15264,7 +15269,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -15274,7 +15279,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" @@ -15282,7 +15287,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -15324,7 +15329,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -15332,7 +15337,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -15342,7 +15347,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -15353,7 +15358,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -15394,7 +15399,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -15402,7 +15407,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -15412,7 +15417,7 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { @@ -15472,7 +15477,7 @@ }, "redent": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { "indent-string": "^2.1.0", @@ -15541,7 +15546,7 @@ }, "regexpu-core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { "regenerate": "^1.2.1", @@ -15560,7 +15565,7 @@ }, "registry-url": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/registry-url/download/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "requires": { "rc": "^1.0.1" @@ -15568,12 +15573,12 @@ }, "regjsgen": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/regjsgen/download/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", + "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { "jsesc": "~0.5.0" @@ -15581,19 +15586,19 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, "relateurl": { "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "resolved": "http://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "renderkid": { @@ -15615,12 +15620,12 @@ }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "http://registry.npm.taobao.org/repeat-string/download/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", + "resolved": "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { "is-finite": "^1.0.0" @@ -15680,22 +15685,22 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/require-directory/download/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", + "resolved": "http://registry.npm.taobao.org/require-from-string/download/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", + "resolved": "http://registry.npm.taobao.org/require-main-filename/download/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", + "resolved": "http://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { "caller-path": "^0.1.0", @@ -15704,7 +15709,7 @@ }, "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "reqwest": { @@ -15728,7 +15733,7 @@ }, "resolve-cwd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "requires": { "resolve-from": "^3.0.0" @@ -15736,14 +15741,14 @@ "dependencies": { "resolve-from": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" } } }, "resolve-dir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/resolve-dir/download/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "requires": { "expand-tilde": "^2.0.0", @@ -15776,7 +15781,7 @@ }, "resolve-from": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz", "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" }, "resolve-pathname": { @@ -15786,12 +15791,12 @@ }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { "onetime": "^2.0.0", @@ -15830,7 +15835,7 @@ }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "resolved": "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "requires": { "align-text": "^0.1.1" @@ -15996,12 +16001,12 @@ }, "rx-lite": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "resolved": "http://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" }, "rx-lite-aggregates": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "resolved": "http://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { "rx-lite": "*" @@ -16022,7 +16027,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -16035,7 +16040,7 @@ }, "sane": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz", + "resolved": "http://registry.npm.taobao.org/sane/download/sane-1.6.0.tgz", "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=", "requires": { "anymatch": "^1.3.0", @@ -16049,7 +16054,7 @@ "dependencies": { "bser": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/bser/download/bser-1.0.2.tgz", "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", "requires": { "node-int64": "^0.4.0" @@ -16057,7 +16062,7 @@ }, "fb-watchman": { "version": "1.9.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", + "resolved": "http://registry.npm.taobao.org/fb-watchman/download/fb-watchman-1.9.2.tgz", "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", "requires": { "bser": "1.0.2" @@ -16238,7 +16243,7 @@ }, "select-hose": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { @@ -16256,7 +16261,7 @@ }, "semver-diff": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/semver-diff/download/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "requires": { "semver": "^5.0.3" @@ -16318,7 +16323,7 @@ }, "serve-index": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "resolved": "http://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "requires": { "accepts": "~1.3.4", @@ -16374,12 +16379,12 @@ }, "serviceworker-cache-polyfill": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/serviceworker-cache-polyfill/download/serviceworker-cache-polyfill-4.0.0.tgz", "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=" }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { @@ -16395,7 +16400,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -16405,7 +16410,7 @@ }, "setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "resolved": "http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { @@ -16450,7 +16455,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "^1.0.0" @@ -16458,7 +16463,7 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shell-quote": { @@ -16572,7 +16577,7 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wrap-ansi": { @@ -16784,7 +16789,7 @@ }, "slash": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { @@ -16820,7 +16825,7 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -16828,7 +16833,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -16836,7 +16841,7 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } @@ -16853,7 +16858,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -16887,7 +16892,7 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { @@ -16952,7 +16957,7 @@ }, "sort-keys": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "requires": { "is-plain-obj": "^1.0.0" @@ -16997,7 +17002,7 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { @@ -17103,7 +17108,7 @@ }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { @@ -17139,7 +17144,7 @@ }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "^0.2.5", @@ -17148,7 +17153,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -17182,7 +17187,7 @@ }, "store": { "version": "2.0.12", - "resolved": "https://registry.npmjs.org/store/-/store-2.0.12.tgz", + "resolved": "http://registry.npm.taobao.org/store/download/store-2.0.12.tgz", "integrity": "sha1-jFNOKguDH3K3X8XxEZhXxE711ZM=" }, "stream-browserify": { @@ -17226,7 +17231,7 @@ }, "strict-uri-encode": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, "string-convert": { @@ -17236,7 +17241,7 @@ }, "string-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/string-length/download/string-length-1.0.1.tgz", "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", "requires": { "strip-ansi": "^3.0.0" @@ -17253,12 +17258,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/ansi-regex/download/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", + "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -17324,7 +17329,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -17332,7 +17337,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "^0.2.0" @@ -17340,12 +17345,12 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "requires": { "get-stdin": "^4.0.1" @@ -17353,7 +17358,7 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { @@ -17608,7 +17613,7 @@ }, "sw-precache-webpack-plugin": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz", + "resolved": "http://registry.npm.taobao.org/sw-precache-webpack-plugin/download/sw-precache-webpack-plugin-0.11.4.tgz", "integrity": "sha1-ppUBflTu1XVVFJOlGdwdqNotxeA=", "requires": { "del": "^2.2.2", @@ -17628,7 +17633,7 @@ }, "sw-toolbox": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz", + "resolved": "http://registry.npm.taobao.org/sw-toolbox/download/sw-toolbox-3.6.0.tgz", "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=", "requires": { "path-to-regexp": "^1.0.1", @@ -17720,7 +17725,7 @@ }, "term-size": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/term-size/download/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { "execa": "^0.7.0" @@ -17939,7 +17944,7 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "resolved": "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "theming": { @@ -17960,7 +17965,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { @@ -17980,7 +17985,7 @@ }, "timed-out": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/timed-out/download/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { @@ -18028,23 +18033,23 @@ }, "tmpl": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "resolved": "http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz", "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" }, "to-arraybuffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/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", + "resolved": "http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" @@ -18063,7 +18068,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "resolved": "http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "^3.0.0", @@ -18072,7 +18077,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -18101,17 +18106,17 @@ }, "tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/tr46/download/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "trim-newlines": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/trim-newlines/download/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", + "resolved": "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "true-case-path": { @@ -18136,13 +18141,13 @@ }, "tty-browserify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" @@ -18150,12 +18155,12 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "resolved": "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { "prelude-ls": "~1.1.2" @@ -18177,7 +18182,7 @@ }, "typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "ua-parser-js": { @@ -18204,7 +18209,7 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "optional": true }, @@ -18410,12 +18415,12 @@ }, "uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, "uniqs": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, @@ -18439,7 +18444,7 @@ }, "unique-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/unique-string/download/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "requires": { "crypto-random-string": "^1.0.0" @@ -18452,7 +18457,7 @@ }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unquote": { @@ -18463,7 +18468,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "^0.3.1", @@ -18472,7 +18477,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "^2.0.3", @@ -18482,7 +18487,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -18492,19 +18497,19 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "unzip-response": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/unzip-response/download/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, "upath": { @@ -18556,12 +18561,12 @@ }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/urix/download/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", + "resolved": "http://registry.npm.taobao.org/url/download/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { "punycode": "1.3.2", @@ -18570,7 +18575,7 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } @@ -18627,7 +18632,7 @@ }, "url-parse-lax": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "^1.0.1" @@ -18657,7 +18662,7 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { @@ -18671,12 +18676,12 @@ }, "utila": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" }, "utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { @@ -18705,7 +18710,7 @@ }, "vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "vendors": { @@ -18726,7 +18731,7 @@ }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "resolved": "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", @@ -18765,7 +18770,7 @@ }, "walker": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "resolved": "http://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz", "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "requires": { "makeerror": "1.0.x" @@ -18781,7 +18786,7 @@ }, "watch": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", + "resolved": "http://registry.npm.taobao.org/watch/download/watch-0.10.0.tgz", "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=" }, "watchpack": { @@ -19807,7 +19812,7 @@ }, "globby": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "requires": { "array-union": "^1.0.1", @@ -19819,7 +19824,7 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } @@ -20050,7 +20055,7 @@ }, "whatwg-fetch": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "resolved": "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, "whatwg-mimetype": { @@ -20060,7 +20065,7 @@ }, "whatwg-url": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "resolved": "http://registry.npm.taobao.org/whatwg-url/download/whatwg-url-4.8.0.tgz", "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", "requires": { "tr46": "~0.0.3", @@ -20069,7 +20074,7 @@ "dependencies": { "webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-3.0.1.tgz", "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" } } @@ -20084,7 +20089,7 @@ }, "which-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" }, "wide-align": { @@ -20106,7 +20111,7 @@ }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz", "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" }, "wolfy87-eventemitter": { @@ -20142,7 +20147,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "^1.0.1", @@ -20151,7 +20156,7 @@ "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", + "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -20159,7 +20164,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -20179,12 +20184,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/write/download/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { "mkdirp": "^0.5.1" @@ -20207,12 +20212,12 @@ }, "xdg-basedir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-3.0.0.tgz", "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" }, "xml-name-validator": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "resolved": "http://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-2.0.1.tgz", "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=" }, "xmlchars": { @@ -20228,12 +20233,12 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { @@ -20249,7 +20254,7 @@ }, "yargs-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "requires": { "camelcase": "^3.0.0" diff --git a/package.json b/package.json index 397d4ee5..db35dca4 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "dependencies": { "@monaco-editor/react": "^2.3.0", "@novnc/novnc": "^1.1.0", + "actioncable": "^5.2.4-3", "antd": "^3.26.15", "array-flatten": "^2.1.2", "autoprefixer": "7.1.6", @@ -84,9 +85,10 @@ "react-hot-loader": "^4.12.20", "react-infinite-scroller": "^1.2.4", "react-loadable": "^5.3.1", - "react-monaco-editor": "0.36", + "react-monaco-editor": "0.37", "react-player": "^1.15.3", "react-redux": "5.0.7", + "react-resizable": "^1.10.1", "react-router": "^4.2.0", "react-router-dom": "^4.2.2", "react-split-pane": "^0.1.91", diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index 8a6d4df9..788f821c 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -538,10 +538,6 @@ a:hover.leftnav-box-inner .btn-cir { /*右侧头部*/ -/*右侧内容*/ -.content { - min-width: 1000px; -} /* tab */ @@ -1270,14 +1266,16 @@ a.shixun-task-btn { /*-------------学员统计 通关排行榜------------*/ -/*-----------实训配置、评测脚本-------------*/body { +/*-----------实训配置、评测脚本-------------*/ +html body { font-size: 14px; line-height: 2.0; - background: #fafafa !important; + background: #fafafa; font-family: "微软雅黑", "宋体"; color: #05101a; height: 100%; position: relative; + padding-right: 0px!important; } html, @@ -1568,6 +1566,10 @@ a.edu-txt-w80, .font-50 { font-size: 50px !important; } +.font-80 { + font-size: 80px !important; +} +.color-grey-b{color: #bbb !important} /*a标签的下划线*/ a.decoration { @@ -1615,7 +1617,7 @@ a.decoration { } .mt8 { - margin-top: 8px; + margin-top: 8px !important; } .mt9 { @@ -2662,7 +2664,18 @@ a.color-green:hover { .width89 { width: 89%; } - +.width50 { + width: 50%; +} +.width40 { + width: 40%; +} +.width45 { + width: 45%; +} +.width10 { + width: 10%; +} .width20 { width: 20%; } @@ -3913,6 +3926,7 @@ html>body #ajax-indicator { .markdown-body { text-align: justify; word-break: break-all; + width:100%; } .RightPaneDrawer .ant-drawer-content { @@ -6701,4 +6715,7 @@ ul.count_ul li:not(:last-child):after { .ant-notification { z-index: 10001 !important; +} +input.ant-input-lg::placeholder{ +font-size: 14px !important; } \ No newline at end of file diff --git a/public/css/font-awesome.css b/public/css/font-awesome.css deleted file mode 100755 index 8539c00d..00000000 --- a/public/css/font-awesome.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:a 2s infinite linear}.fa-pulse{animation:a 1s infinite steps(8)}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-excel:before{content:"\f1c3"}.fa-file-image:before{content:"\f1c5"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-meh:before{content:"\f11a"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-moon:before{content:"\f186"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shower:before{content:"\f2cc"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-spotify:before{content:"\f1bc"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-moving:before{content:"\f4df"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/public/css/iconfont.css b/public/css/iconfont.css index 75165c04..78227bc1 100644 --- a/public/css/iconfont.css +++ b/public/css/iconfont.css @@ -1,10 +1,10 @@ @font-face {font-family: "iconfont"; - src: url('iconfont.eot?t=1591254770962'); /* IE9 */ - src: url('iconfont.eot?t=1591254770962#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), - url('iconfont.woff?t=1591254770962') format('woff'), - url('iconfont.ttf?t=1591254770962') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ - url('iconfont.svg?t=1591254770962#iconfont') format('svg'); /* iOS 4.1- */ + src: url('iconfont.eot?t=1594284253327'); /* IE9 */ + src: url('iconfont.eot?t=1594284253327#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1594284253327') format('woff'), + url('iconfont.ttf?t=1594284253327') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1594284253327#iconfont') format('svg'); /* iOS 4.1- */ } .iconfont { @@ -15,6 +15,142 @@ -moz-osx-font-smoothing: grayscale; } +.icon-zhunbeizhong:before { + content: "\e797"; +} + +.icon-yunhangzhong:before { + content: "\e796"; +} + +.icon-yitongguo:before { + content: "\e795"; +} + +.icon-weitongguo:before { + content: "\e794"; +} + +.icon-gongzuoliu:before { + content: "\e793"; +} + +.icon-gengxinchengji:before { + content: "\e790"; +} + +.icon-wenjian1:before { + content: "\e78e"; +} + +.icon-bianji6:before { + content: "\e78d"; +} + +.icon-tongji2:before { + content: "\e78c"; +} + +.icon-qiandao:before { + content: "\e78b"; +} + +.icon-fenban1:before { + content: "\e78a"; +} + +.icon-taolun1:before { + content: "\e789"; +} + +.icon-shipinzhibo:before { + content: "\e788"; +} + +.icon-xuexiziyuan:before { + content: "\e787"; +} + +.icon-kaoshiwenjuan:before { + content: "\e786"; +} + +.icon-kaoshishijuan:before { + content: "\e785"; +} + +.icon-biyezuoye:before { + content: "\e784"; +} + +.icon-fenzuzuoye1:before { + content: "\e783"; +} + +.icon-putongzuoye1:before { + content: "\e782"; +} + +.icon-shixunzuoye:before { + content: "\e781"; +} + +.icon-gonggaolan:before { + content: "\e780"; +} + +.icon-zuzhixiangmu:before { + content: "\e77f"; +} + +.icon-zuzhichengyuan:before { + content: "\e774"; +} + +.icon-hebingqingqiu:before { + content: "\e7f2"; +} + +.icon-shixunxiangqing:before { + content: "\e775"; +} + +.icon-lijifabu:before { + content: "\e776"; +} + +.icon-kaiqizhong:before { + content: "\e777"; +} + +.icon-daochu:before { + content: "\e778"; +} + +.icon-yijiandianping:before { + content: "\e779"; +} + +.icon-chakanshixunbaogao:before { + content: "\e77a"; +} + +.icon-tijiaozongjie:before { + content: "\e77b"; +} + +.icon-daimachazhong:before { + content: "\e77c"; +} + +.icon-bianjizuoye:before { + content: "\e77d"; +} + +.icon-lijijiezhi:before { + content: "\e77e"; +} + .icon-jingxiang:before { content: "\e773"; } diff --git a/public/css/iconfont.eot b/public/css/iconfont.eot index 9c2d6a00..c35e5313 100644 Binary files a/public/css/iconfont.eot and b/public/css/iconfont.eot differ diff --git a/public/css/iconfont.js b/public/css/iconfont.js index 9ac39e75..41acb9e1 100644 --- a/public/css/iconfont.js +++ b/public/css/iconfont.js @@ -1 +1 @@ -!function(c){var l,a,h,i,o,t,z,s='',p=(l=document.getElementsByTagName("script"))[l.length-1].getAttribute("data-injectcss");if(p&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function m(){t||(t=!0,i())}a=function(){var c,l,a,h,i,o=document.createElement("div");o.innerHTML=s,s=null,(c=o.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(a=document.body).firstChild?(h=l,(i=a.firstChild).parentNode.insertBefore(h,i)):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),a()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=a,o=c.document,t=!1,(z=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(z,50)}m()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,m())})}(window); \ No newline at end of file +!function(c){var l,a,h,i,o,t,z,s='',p=(l=document.getElementsByTagName("script"))[l.length-1].getAttribute("data-injectcss");if(p&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function m(){t||(t=!0,i())}a=function(){var c,l,a,h,i,o=document.createElement("div");o.innerHTML=s,s=null,(c=o.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(a=document.body).firstChild?(h=l,(i=a.firstChild).parentNode.insertBefore(h,i)):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),a()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=a,o=c.document,t=!1,(z=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(z,50)}m()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,m())})}(window); \ No newline at end of file diff --git a/public/css/iconfont.json b/public/css/iconfont.json index f36a34ab..e97cc02b 100644 --- a/public/css/iconfont.json +++ b/public/css/iconfont.json @@ -5,6 +5,244 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "15792809", + "name": "准备中", + "font_class": "zhunbeizhong", + "unicode": "e797", + "unicode_decimal": 59287 + }, + { + "icon_id": "15792805", + "name": "运行中", + "font_class": "yunhangzhong", + "unicode": "e796", + "unicode_decimal": 59286 + }, + { + "icon_id": "15792803", + "name": "已通过", + "font_class": "yitongguo", + "unicode": "e795", + "unicode_decimal": 59285 + }, + { + "icon_id": "15792796", + "name": "未通过", + "font_class": "weitongguo", + "unicode": "e794", + "unicode_decimal": 59284 + }, + { + "icon_id": "15762732", + "name": "工作流", + "font_class": "gongzuoliu", + "unicode": "e793", + "unicode_decimal": 59283 + }, + { + "icon_id": "15689245", + "name": "更新成绩", + "font_class": "gengxinchengji", + "unicode": "e790", + "unicode_decimal": 59280 + }, + { + "icon_id": "15605136", + "name": "文件", + "font_class": "wenjian1", + "unicode": "e78e", + "unicode_decimal": 59278 + }, + { + "icon_id": "15605133", + "name": "编辑", + "font_class": "bianji6", + "unicode": "e78d", + "unicode_decimal": 59277 + }, + { + "icon_id": "15591171", + "name": "统计", + "font_class": "tongji2", + "unicode": "e78c", + "unicode_decimal": 59276 + }, + { + "icon_id": "15591167", + "name": "签到", + "font_class": "qiandao", + "unicode": "e78b", + "unicode_decimal": 59275 + }, + { + "icon_id": "15591165", + "name": "分班", + "font_class": "fenban1", + "unicode": "e78a", + "unicode_decimal": 59274 + }, + { + "icon_id": "15591163", + "name": "讨论", + "font_class": "taolun1", + "unicode": "e789", + "unicode_decimal": 59273 + }, + { + "icon_id": "15591161", + "name": "视频直播", + "font_class": "shipinzhibo", + "unicode": "e788", + "unicode_decimal": 59272 + }, + { + "icon_id": "15591155", + "name": "学习资源", + "font_class": "xuexiziyuan", + "unicode": "e787", + "unicode_decimal": 59271 + }, + { + "icon_id": "15591132", + "name": "考试问卷", + "font_class": "kaoshiwenjuan", + "unicode": "e786", + "unicode_decimal": 59270 + }, + { + "icon_id": "15590984", + "name": "考试试卷", + "font_class": "kaoshishijuan", + "unicode": "e785", + "unicode_decimal": 59269 + }, + { + "icon_id": "15590922", + "name": "毕业作业", + "font_class": "biyezuoye", + "unicode": "e784", + "unicode_decimal": 59268 + }, + { + "icon_id": "15590919", + "name": "分组作业", + "font_class": "fenzuzuoye1", + "unicode": "e783", + "unicode_decimal": 59267 + }, + { + "icon_id": "15590916", + "name": "普通作业", + "font_class": "putongzuoye1", + "unicode": "e782", + "unicode_decimal": 59266 + }, + { + "icon_id": "15590913", + "name": "实训作业", + "font_class": "shixunzuoye", + "unicode": "e781", + "unicode_decimal": 59265 + }, + { + "icon_id": "15590860", + "name": "公告栏", + "font_class": "gonggaolan", + "unicode": "e780", + "unicode_decimal": 59264 + }, + { + "icon_id": "15465934", + "name": "组织项目", + "font_class": "zuzhixiangmu", + "unicode": "e77f", + "unicode_decimal": 59263 + }, + { + "icon_id": "15465923", + "name": "组织成员", + "font_class": "zuzhichengyuan", + "unicode": "e774", + "unicode_decimal": 59252 + }, + { + "icon_id": "14332762", + "name": "合并请求", + "font_class": "hebingqingqiu", + "unicode": "e7f2", + "unicode_decimal": 59378 + }, + { + "icon_id": "15226856", + "name": "实训详情", + "font_class": "shixunxiangqing", + "unicode": "e775", + "unicode_decimal": 59253 + }, + { + "icon_id": "15226857", + "name": "立即发布", + "font_class": "lijifabu", + "unicode": "e776", + "unicode_decimal": 59254 + }, + { + "icon_id": "15226858", + "name": "开启中", + "font_class": "kaiqizhong", + "unicode": "e777", + "unicode_decimal": 59255 + }, + { + "icon_id": "15226859", + "name": "导出", + "font_class": "daochu", + "unicode": "e778", + "unicode_decimal": 59256 + }, + { + "icon_id": "15226860", + "name": "一键点评", + "font_class": "yijiandianping", + "unicode": "e779", + "unicode_decimal": 59257 + }, + { + "icon_id": "15226861", + "name": "查看实训报告", + "font_class": "chakanshixunbaogao", + "unicode": "e77a", + "unicode_decimal": 59258 + }, + { + "icon_id": "15226862", + "name": "提交总结", + "font_class": "tijiaozongjie", + "unicode": "e77b", + "unicode_decimal": 59259 + }, + { + "icon_id": "15226863", + "name": "代码查重", + "font_class": "daimachazhong", + "unicode": "e77c", + "unicode_decimal": 59260 + }, + { + "icon_id": "15226864", + "name": "编辑作业", + "font_class": "bianjizuoye", + "unicode": "e77d", + "unicode_decimal": 59261 + }, + { + "icon_id": "15226865", + "name": "立即截止", + "font_class": "lijijiezhi", + "unicode": "e77e", + "unicode_decimal": 59262 + }, { "icon_id": "15115208", "name": "镜像", diff --git a/public/css/iconfont.svg b/public/css/iconfont.svg index 44ced3ca..598ec8c2 100644 --- a/public/css/iconfont.svg +++ b/public/css/iconfont.svg @@ -20,6 +20,108 @@ Created by iconfont /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf index 584c3157..9c105b49 100644 Binary files a/public/css/iconfont.ttf and b/public/css/iconfont.ttf differ diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff index e87b4169..a528f9d6 100644 Binary files a/public/css/iconfont.woff and b/public/css/iconfont.woff differ diff --git a/public/css/iconfont.woff2 b/public/css/iconfont.woff2 index fb325df1..a3f07dee 100644 Binary files a/public/css/iconfont.woff2 and b/public/css/iconfont.woff2 differ diff --git a/public/css/merge.css b/public/css/merge.css index 62bf6470..59200bb6 100755 --- a/public/css/merge.css +++ b/public/css/merge.css @@ -1,166 +1,40 @@ -.CodeMirror-merge { - position: relative; - white-space: pre; -} -.CodeMirror-merge, -.CodeMirror-merge .CodeMirror { - min-height: 50px; +.maxW50{max-width: 50%;} +.minW50{min-width: 50%;} +.width70{width: 70%;} +.width30{width: 30%;} +.custom-commit-tabs .ant-tabs-bar{border-bottom: none;} +.maxW200px{max-width: 200px;} +.pr_tags_open{ + background: #28BD6C !important; + color: #fff !important; + border: none !important; } - -.CodeMirror-merge-2pane .CodeMirror-merge-pane { - width: 48%; +.pr_tags_closed{ + background: #FA6400 !important; + color: #fff !important; + border: none !important; } - -.CodeMirror-merge-2pane .CodeMirror-merge-gap { - width: 4%; +.pr_tags_merged{ + background: #4C9ED3 !important; + color: #fff !important; + border: none !important; } - -.CodeMirror-merge-3pane .CodeMirror-merge-pane { - width: 31%; +.ant-btn-success{ + border: 1px solid #28BD6C !important; + color: #28BD6C !important; } - -.CodeMirror-merge-3pane .CodeMirror-merge-gap { - width: 3.5%; +.ant-btn-success:hover{ + background: #28BD6C !important; + color:#fff !important; } - -.CodeMirror-merge-pane { - display: inline-block; - white-space: normal; - vertical-align: top; -} - -.CodeMirror-merge-pane-rightmost { - position: absolute; - right: 0px; - z-index: 1; -} - -.CodeMirror-merge-gap { - z-index: 2; - display: inline-block; - height: 100%; - -moz-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; - position: relative; - background: #515151; -} - -.CodeMirror-merge-scrolllock-wrap { - position: absolute; - bottom: 0; - left: 50%; -} - -.CodeMirror-merge-scrolllock { - position: relative; - left: -50%; - cursor: pointer; - color: #d8d8d8; - line-height: 1; -} - -.CodeMirror-merge-copybuttons-left, -.CodeMirror-merge-copybuttons-right { - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - line-height: 1; -} - -.CodeMirror-merge-copy { - position: absolute; - cursor: pointer; - color: #ce374b; - z-index: 3; -} - -.CodeMirror-merge-copy-reverse { - position: absolute; - cursor: pointer; - color: #44c; -} - -.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { - left: 2px; -} - -.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { - right: 2px; -} - -.CodeMirror-merge-r-inserted, -.CodeMirror-merge-l-inserted { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==); - background-position: bottom left; - background-repeat: repeat-x; -} - -.CodeMirror-merge-r-deleted, -.CodeMirror-merge-l-deleted { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==); - background-position: bottom left; - background-repeat: repeat-x; -} - -.CodeMirror-merge-r-chunk { - background: #9a6868; -} - -.CodeMirror-merge-r-connect { - fill: #9a6868; -} - -.CodeMirror-merge-l-chunk { - background: #eef; -} - -.CodeMirror-merge-l-chunk-start { - border-top: 1px solid #88e; -} - -.CodeMirror-merge-l-chunk-end { - border-bottom: 1px solid #88e; -} - -.CodeMirror-merge-l-connect { - fill: #eef; - stroke: #88e; - stroke-width: 1px; -} - -.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { - background: #dfd; -} - -.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { - border-top: 1px solid #4e4; -} - -.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { - border-bottom: 1px solid #4e4; -} - -.CodeMirror-merge-collapsed-widget:before { - content: "(...)"; -} - -.CodeMirror-merge-collapsed-widget { - cursor: pointer; - color: #88b; - background: #eef; - border: 1px solid #ddf; - font-size: 90%; - padding: 0 3px; - border-radius: 4px; -} - -.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { - display: none; -} -.color-grey { - color: #888 !important; +.display-flex{display: flex !important;} +.merge-flex1{flex:1} +.ant-tag.pr-branch-tag{ + border-radius: 12px; + height: 24px; + background: rgba(241,248,255,1); + border: none; + font-size: 13px; + padding: 0 10px; } \ No newline at end of file diff --git a/public/css/taskstyle.css b/public/css/taskstyle.css deleted file mode 100755 index d5a9fe4a..00000000 --- a/public/css/taskstyle.css +++ /dev/null @@ -1,2482 +0,0 @@ -html { - height: 100%; -} - -.w20_center { - width: 20px; - text-align: center; -} - -.task-container { - min-width: 1300px; - margin: 0 auto; - background: #f5f9fc; - position: relative; -} - -/*左侧导航*/ -.leftbar { - height: 100%; - background: #1f212d; - width: 80px; -} - -.user-info { - width: 80px; - height: 100px; - padding-top: 15px; -} - -a.user-info-img { - display: block; - width: 50px; - height: 50px; - margin: 0 auto; -} - -a.user-info-img img { - border-radius: 100px; - border: 2px solid #666; -} - -a.user-info-img img:hover { - border: 2px solid #888; -} - -a.user-info-name { - display: block; - font-size: 16px; - color: #fff; - max-width: 100px; - margin: 10px auto; - text-align: center; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.leftnav-box { - width: 80px; - height: 60px; - background: #292b3a; - padding: 10px 0; - margin-bottom: 2px; -} - -a.leftnav-box-inner { - display: block; - width: 77px; - border-left: 3px solid #292b3a; - background: #292b3a; - text-align: center; - padding: 10px 0; - color: #575f6c; -} - -a:hover.leftnav-box-inner, -a.leftnav-active { - border-left: 3px solid #3498db; - color: #fff !important; -} - -a:hover.leftnav-box-inner .btn-cir { - background: #fff; - color: #333333 -} - -a.leftnav-box-reset-inner { - display: block; - width: 77px; - border-left: 3px solid #292b3a; - background: #292b3a; - text-align: center; - color: #575f6c; -} - -a:hover.leftnav-box-reset-inner { - border-left: 3px solid #3498db; - color: #fff !important; -} - - - -/*右侧头部*/ -.rightbar-header { - width: 100%; - background: #282c37; - height: 60px; - min-width: 1000px; -} - -.rightbar-score { - margin-top: 17px; - font-size: 14px; - margin-right: 20px; -} - -.rightbar-score li { - float: left; - color: #fff; - margin-right: 20px; -} - -.rightbar-score li a { - color: #fff; -} - -a.rightbar-pause { - color: #29bd8b; - font-size: 18px; - margin-right: 15px; - margin-top: 12px; -} - -.rightbar-h2 { - color: #fff; - margin: 12px 0 0 20px; - font-weight: normal; -} - -.rightbar { - background: #f5f9fc; - color: #333; - position: relative; -} - -/*右侧内容*/ -.content { - min-width: 1000px; -} - -.content-row { - padding: 15px; -} - -.content-info { - width: 49.5%; - min-width: 250px; -} - -.content-editor { - width: 49.3%; - min-width: 250px; - margin-left: 15px; -} - -.panel-header { - border-bottom: 1px solid #eee; - padding: 10px 15px; - color: #898989; -} - -.panel-header-border { - border: 1px solid #eee; - padding: 10px 15px; - border-bottom: none; -} - -/* tab */ -.tab_content { - width: 100%; - margin: 0 auto; - background: #fff; -} - -#tab_nav { - height: 42px; - background: #fff; - border-bottom: 1px solid #EEEEEE -} - -#tab_nav li { - float: left; - padding: 0 30px; - text-align: center; - height: 40px; - line-height: 40px; -} - -#tab_nav li a { - font-size: 14px; -} - -.tab_hover { - border-bottom: 2px solid #3498db; - background: #fff; - color: #3498db -} - -/*.tab_hover_setting{background:#FC7033;}*/ -.tab_hover a { - color: #3498db !important; -} - -/*.tab_hover_setting a{color:#fff;}*/ -.undis { - display: none; -} - -.dis { - display: block; -} - -.tab-info {} - -.content-editor-inner { - overflow: auto; -} - -.tab-info-inner { - overflow: auto; - height: 600px; - margin: 0 0 0px 15px; - padding-top: 15px -} - -.content-history-inner { - height: 120px; - overflow: auto; - padding: 15px; -} - -.content-history { - width: 48.7%; - min-width: 500px; -} - -.history-success { - width: 100%; - height: 40px; - line-height: 40px; - background: #eef1f2; - color: #666; -} - -.history-fail { - width: 100%; - height: 40px; - line-height: 40px; - background: #fdebeb; - color: #e53238; -} - -.icon-fail { - display: inline-block; - padding: 0 8px; - background: #e53238; - color: #fff; -} - -.icon-success { - display: inline-block; - padding: 0 8px; - background: #252e38; - color: #fff; -} - -.info-partly { - display: block; - box-flex: 1; - flex: 1; - -webkit-flex: 1; - position: relative; -} - -.content-output { - width: 37.5%; - min-width: 200px; -} - -.content-submit { - width: 10%; - min-width: 135px; -} - -.content-submitbox { - width: 120px; - margin: 15px auto; - height: 135px; -} - -.panel-inner { - background: #EFF2F7; - margin: 15px; - padding: 15px; -} - -.panel-inner-title { - font-size: 14px; - color: #666; - max-width: 85%; - line-height: 30px; - word-wrap: break-word; - margin-bottom: 10px -} - -.panel-footer { - min-width: 1000px; - height: 210px !important; -} - -/* 弹框 */ -.task-popup-text-center { - text-align: center; - color: #333; -} - -.task-popup-title { - border-bottom: 1px solid #eee; - padding: 10px 15px; -} - -.task-popup-submit { - margin: 0 auto 15px; - width: 120px; -} - -/* TPM */ -.task-header { - width: 100%; - min-width: 1200px; - background: url("/images/task/task-bg-header.png"); - height: 180px; - background-size: cover; - display: flex; - align-items: center; -} - -.task-header-info { - width: 1200px; - margin: 0 auto; - color: #fff -} - -.task-header-info h2 a, -.task-header-info h2 { - font-weight: normal; - color: #fff; -} - -a.task-header-name { - max-width: 200px; -} - -.task-header-title { - display: block; - max-width: 750px; - word-wrap: break-word; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.task-header-nav { - width: 100%; - min-width: 1200px; - height: 50px; -} - -.task-header-navs { - width: 1200px; - margin: 0 auto; -} - -.task-header-navs li { - float: left; -} - -.task-header-navs li { - display: block; - height: 50px; - padding: 0 50px; - color: #666; - text-align: center; - font-size: 16px; - line-height: 50px; -} - -.task-header-navs li:hover, -.task-header-navs li:hover a { - color: #FC7033 !important; -} - -.task-header-navs li.active { - border-bottom: 2px solid #FC7033; - color: #FC7033; -} - -.task-header-navs li.active a { - color: #FC7033 !important; -} - -.task-header-navs li.active .edu-cir-grey, -.task-header-navs li:hover .edu-cir-grey, -.edu-cir-grey.active { - background: #FF7500; - color: #FFFFff -} - -.task-pm-content { - width: 1200px; - margin: 0 auto; - min-height: 566px -} - -.task-pm-box { - width: 100%; - background: #fff; - border: 1px solid #e8e8e8; -} - -.task-paner-con { - padding: 15px; - color: #666; - line-height: 2.0; -} - -.task-paner-con img { - max-width: 100% -} - -.panel-form { - margin: 0 30px 0px 20px; - padding: 30px 0; -} - -.panel-form li { - margin-bottom: 20px; - font-size: 14px; - color: #666; -} - - -.panel-form-label { - display: inline-block; - width: 10%; - min-width: 90px; - text-align: right; - line-height: 40px; - color: #666; -} - -.panel-form-label1 { - display: inline-block; - width: 20%; - min-width: 90px; - text-align: right; - line-height: 40px; -} - -.panel-form input, -.panel-form textarea { - border: 1px solid #e2e2e2; - color: #666; - line-height: 1.9; -} - -.panel-box-sizing { - -moz-box-sizing: border-box; - /*Firefox3.5+*/ - -webkit-box-sizing: border-box; - /*Safari3.2+*/ - -o-box-sizing: border-box; - /*Opera9.6*/ - -ms-box-sizing: border-box; - /*IE8*/ - box-sizing: border-box; -} - -input.panel-form-width-690 { - padding: 5px; - width: 90%; - height: 40px; - min-width: 700px; -} - -input.panel-form-width-200 { - padding: 5px; - height: 40px; - width: 200px; -} - -input.panel-form-width-100 { - padding: 5px; - width: 100%; - height: 40px; - min-width: 700px; -} - -textarea.panel-form-width-100 { - padding: 5px; - width: 100%; - height: 150px; - min-width: 700px; -} - -textarea.panel-form-width-40 { - padding: 5px; - width: 100%; - height: 40px; - min-width: 700px; -} - -textarea.panel-form-width-690 { - padding: 5px; - width: 90%; - height: 150px; - min-width: 700px; -} - -textarea.panel-form-width2-100 { - padding: 5px; - width: 100%; - height: 40px; - min-width: 700px; -} - -textarea.panel-form-width2-690 { - padding: 5px; - width: 90%; - height: 40px; - min-width: 700px; -} - -textarea.panel-form-width2-695 { - padding: 5px; - width: 95%; - height: 40px; - min-width: 700px; -} - -.panel-form-width-670 { - width: 670px; - padding: 5px; -} - -.panel-form-height-150 { - height: 150px; -} - -.panel-form-height-30 { - height: 30px; -} - -.task-bg-grey { - background: #f3f3f3 !important; - width: 90%; - min-width: 700px; - padding: 10px; - border: 1px solid #f3f3f3; -} - -.task-bg-grey-ligh { - line-height: 1.9; - padding: 5px 10px; -} - -.task-bg-grey li { - margin-bottom: 0 -} - -.task-bd-grey { - width: 680px; - padding: 10 0px; -} - -.panel-form-width-690 { - padding: 5px; - width: 90%; - min-height: 40px; - min-width: 700px; -} - -input.task-tag-input { - border: none; - background: none; - height: 30px; - padding: 0 5px; - color: #888; - line-height: 30px; -} - -textarea.task-textarea-pd { - padding-bottom: 0; - padding-top: 0; -} - -.task-setting-tab { - min-height: 600px; -} - -.task-pd15-box { - padding: 15px; -} - -.mb20 { - margin-bottom: 20px; -} - -input.knowledge_frame { - height: 28px; - line-height: 28px; - border: none; - background: #f3f5f7; -} - -/* TPi全屏展示css */ -.content-all-fix { - position: absolute; - top: 75px; - left: 15px; - right: 15px; - z-index: 99; - height: 91%; - width: 98.5%; -} - -.content-all-fix .big-tab-info-inner { - display: block; - height: 50%; - overflow: auto; - margin: 15px 0 0px 15px; -} - -.content-half-fix { - min-width: 450px; - margin: 0; - position: absolute; - top: 75px; - left: 15px; - z-index: 99; -} - -.content-half-fix .content-history-inner { - height: 100%; - overflow: auto; -} - -.content-half-fix02 { - margin: 0; - position: absolute; - top: 65px; - z-index: 99; - right: 45px; -} - -.content-history-extend { - height: 98%; - overflow: auto; -} - -.task-bg-grey .prettyprint { - font-size: 9pt; - font-family: Courier New, Arial; - border: 1px solid #ddd; - border-left: 5px solid #6CE26C; - background: #f6f6f6; - padding: 5px; -} - -/* 左右版TPI 20170410byLB */ -#game_task_pass img { - cursor: pointer -} - -.-fit { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.-layout-v { - display: flex; - flex-direction: column; - -webkit-flex-direction: column; -} - -.page--header { - position: fixed; - top: 0; - right: 0; - z-index: 7000; - height: 44px; - color: #fff; - background: #05101A; - left: 0px; - padding: 5px 0; -} - -.page--leftnav { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 9001; - width: 80px; - height: 100%; - background: #282c37; -} - -.page--body { - position: relative; - margin-top: 54px; -} - -.-margin-t-64 { - margin-top: 64px; -} - -.-flex { - box-flex: 1; - flex: 1; - -webkit-flex: 1; -} - -/*.-flex-auto{flex-basis:100%;}*/ -.split-panel.-fit { - position: absolute; -} - -.split-panel { - position: relative; - overflow: hidden; - min-height: 200px; - height: 100%; -} - -.-stretch { - align-items: stretch; -} - -.-layout { - display: flex; -} - -.split-panel--first { - overflow: hidden; -} - -.-relative { - position: relative; -} - -.-bg-white { - background-color: #eee; -} - -.split-panel.-handle .split-panel--second { - padding-left: 2px; -} - -.task-answer-view { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - display: flex; - flex-direction: column; - border-top: 1px solid #515151; -} - -.-vertical { - flex-direction: column; - box-flex-direction: column; - -webkit-flex-direction: column; -} - -.-layout-h { - display: flex; - flex-direction: row; - box-flex-direction: row; - -webkit-flex-direction: row; -} - -.-horizontal { - flex-direction: row-reverse; - box-flex-direction: row-reverse; - -webkit-flex-direction: row-reverse; -} - -.-scroll { - overflow: auto; -} - -.-flex-basic0 { - flex-basis: 0% !important; - box-flex-basis: 0% !important; - -webkit-flex-basis: 0% !important; - display: none -} - -/*王昌------------拖拽增加样式---------------修改*/ -.-flex-basic40 { - width: 40%; - box-flex: auto; - flex: auto; - -webkit-flex: auto; -} - -.-flex-basic50 { - width: 60%; - box-flex: auto; - flex: auto; - -webkit-flex: auto; -} - -.b-label { - width: 4px; - cursor: ew-resize; - background: #2b2b2b; -} - -.h-center { - height: 4px; - cursor: ns-resize; - background: #333; -} - -.-changebg { - height: 3px; -} - -.-brother { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - z-index: 999; -} - -.-bg-weightblack { - background: #000; -} - -.-flex-basic70 { - box-flex: 4 9 auto; - flex: 4 9 auto; - -webkit-flex: 4 9 auto; - height: 70%; -} - -/*---------------------------------------------*/ -.-flex-basic60 { - box-flex: 2 1 auto; - flex: 2 1 auto; - -webkit-flex: 2 1 auto; - height: 30%; -} - -.-flex-basic100 { - flex-basis: 100% !important; - box-flex-basis: 100% !important; - -webkit-flex-basis: 100% !important; -} - -.-header-title { - max-width: 500px; - font-weight: normal; -} - -.-header-right { - background: #333; - border-radius: 25px; - padding: 5px 15px; - height: 30px; - position: absolute; - right: 10px; - line-height: 30px; -} - -.-header-right-info { - padding: 10px; - background: #fff; - border-radius: 3px; - top: 50px; - right: 10px; - position: relative; - display: none; - color: #666; -} - -.-header-right-info font { - border: 1px solid #dddddd; - display: block; - border-width: 8px; - position: absolute; - top: -15px; - right: 20px; - border-style: solid; - border-color: transparent transparent #fff transparent; - font-size: 0; - line-height: 0; -} - -.-header-right-box:hover .-header-right-info { - display: block; -} - -.-task-bar-bg { - width: 160px; - height: 15px; - border-radius: 15px; - background: #ff9932; - color: #fff; - font-size: 12px; - line-height: 15px; - text-align: right; - position: relative; - padding-right: 10px; -} - -.-task-bar-inner { - background: #ffc100; - display: block; - height: 15px; - border-radius: 15px; - position: absolute; - top: 0; - left: 0; -} - -.-task-widht-10 { - width: 10%; -} - -.-task-widht-20 { - width: 20%; -} - -.-task-widht-30 { - width: 30%; -} - -.-task-widht-40 { - width: 40%; -} - -.-task-widht-50 { - width: 50%; -} - -.-task-widht-60 { - width: 60%; -} - -.-task-widht-70 { - width: 70%; -} - -.-task-widht-80 { - width: 80%; -} - -.-task-widht-90 { - width: 90%; -} - -.-task-widht-100 { - width: 100%; -} - -.-footer-left { - min-height: 48px; - background: #f5f5f5; -} - -.-footer-left ul { - width: 100% -} - -.-footer-left ul li { - cursor: pointer; - color: #666; -} - -.-footer-left ul li:hover { - color: #888; -} - -.-bg-black { - background: #2b2b2b; - color: #f4f1ed; -} - -.-bg-darkblack { - background: #1D1D1D; - color: #fff; -} - -.task-answer-view { - border-top: 1px solid #515151; - background: #333; -} - -#blacktab_nav { - height: 40px; - background: #292929; -} - -#blacktab_nav li { - float: left; - padding: 0px 50px; - text-align: center; - height: 40px; - line-height: 40px; -} - -#blacktab_nav .add-webssh { - position: relative; -} - -#blacktab_nav .add-webssh span { - position: absolute; - top: 0; - right: 5px; - color: #fff; - cursor: pointer; -} - -#blacktab_nav li a { - font-size: 14px; -} - -#blacktab_nav li.code-file-tab { - padding: 0px; - width: 120px; - box-sizing: border-box; - padding: 0px 15px; -} - -.code-flie-list { - display: none; - position: absolute; - z-index: 5; - top: 40px; - background: #515151; - width: 300px; - left: 0px; - color: #fff; -} - -.blue-line { - border-left: 3px solid #199ED8 !important; - padding-left: 5px; -} - -.codefile-all { - max-height: 122px; - overflow-y: auto; - overflow-x: hidden; -} - -.codefile-all p { - text-align: left; - cursor: pointer; - height: 22px; - line-height: 22px; - margin-bottom: 3px; - padding-left: 5px; - border-left: 3px solid #515151; - width: 273px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.codefile-all p:hover { - background: #CCCCCC; - color: #333; -} - -.blacktab_hover a { - color: #fff; -} - -.-task-ces-top { - padding: 5px 15px; - background: #515151; - color: #bfbfbf; -} - -.-task-ces-info-left { - display: inline-block; - width: 100px; - text-align: right; -} - -.-position-a-r15 { - position: absolute; - top: 5px; - right: 15px; -} - -.-task-ml80 { - margin-left: 80px; -} - -.page--over { - position: fixed; - top: 0; - left: 80px; - right: 0; - z-index: 8000; - height: 100%; - color: #fff; -} - -.-task-list-header { - border-bottom: 1px solid #eee; - padding: 5px 15px; - color: #898989; - font-size: 14px; - font-weight: normal; -} - -.-task-list-header h3 { - font-weight: normal; - font-size: 16px; - color: #333; -} - -.-task-list-inner { - background: #EFF2F7; - margin: 10px; - padding: 5px; -} - -.-task-list-title { - font-size: 14px; - color: #666; - word-wrap: break-word; - font-weight: normal; - max-width: 80%; -} - -.greytab-inner { - background: #fff; -} - -.blacktab-inner { - background: #333; -} - -.task-padding16 { - padding: 16px; -} - -.task-padding10 { - padding: 10px; -} - -.task-padding-new { - padding-top: 16px -} - -/* TPM统计 20170321byLB */ -.panel-warp-3 { - width: 30%; - background: #23b181; - color: #fff; - margin: 2.5%; - margin-right: 0; - position: relative; -} - -.panel-warp-3-over { - background: #fff; - opacity: 0.8; - color: #29bd8b; - width: 100%; - height: 135px; - position: absolute; - top: 0; - left: 0; - text-align: center; - padding-top: 130px; -} - -.panel-warp-3-over a { - color: #29bd8b; - font-size: 18px; - text-align: center; - font-weight: bold; -} - -.panel-warp-img { - width: 30px; - height: 30px; - border-radius: 100px; -} - -.panel-warp-name { - display: block; - max-width: 100px; -} - -.panel-warp-inner { - padding: 15px; -} - -.panel-warp-dbg { - background: #29bd8b; - padding: 15px; - height: 120px; -} - -.panel-warp-dbg li { - margin-bottom: 15px; -} - -.panel-warp-dbg li:last-child { - margin-bottom: 0; -} - -.fa-icons-trophy { - position: relative; - padding-top: 10px; -} - -.fa-icons-trophy span { - position: absolute; - top: 12px; - right: 10px; - color: #f04b27; - font-size: 14px; - font-weight: bold; -} - -.fa-icons-flower { - display: inline-block; - width: 14px; - height: 14px; - background: url("../images/task/icons-flower.png") 0 0 no-repeat; -} - -.fa-icons-flower:hover { - display: inline-block; - width: 14px; - height: 14px; - background: url("../images/task/icons-flower.png") -18px 0 no-repeat; -} - -/* 实训首页 20170330byLB */ -.task-index { - width: 1200px; - margin: 0 auto; -} - -.task-index-head { - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); -} - -.task-index-head-top { - padding: 30px; - background: #FCA24B; - background: linear-gradient(to right, rgb(104, 177, 215) 0%, rgb(1, 75, 79) 100%); -} - -/*.task-index-head-top{ padding:30px;background:#FFA65E;}*/ -.top-xz { - position: absolute; - border: 14px solid #FFFFFF; - border-radius: 50%; - box-shadow: 0px 2px 10px rgba(142, 142, 142, 0.6); - opacity: 0.4; -} - -.task-index-head-top-course { - padding: 30px; - background: linear-gradient(to right, rgb(69, 191, 165) 0%, rgb(164, 175, 247) 100%); -} - -.task-inde-head-title { - color: #fff; -} - -.task-index-head-info { - background: #fff; - padding: 10px 30px; -} - -.task-index-head-info li { - width: 100px; - float: left; - text-align: center; - color: #666; -} - -.task-index-list { - width: 1200px; -} - - -.task-index-list-box { - box-sizing: border-box; - width: 23.87%; - margin: 0 1.5% 30px 0px; - border-radius: 2px; - border: 1px solid #eee; - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); - color: #666; - position: relative; -} - -.task-index-list-box:hover { - -webkit-animation: bounce-down 1s linear 1; - animation: bounce-down 1s linear 1; -} - -.task-index-list-box:hover .black-half { - display: block; -} - -.task-index-list-box:nth-child(4n+0) { - margin: 0 0 30px 0; -} - -.task-mg8 { - margin: 0 15px 15px 0px; - border-radius: 2px; - border: 1px solid #eee; - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); - color: #666; - position: relative; -} - -.task-index-list-box-top { - padding: 16px; - padding-top: 30px; - background: #fff; - text-align: center; - position: relative; - height: 160px; -} - -.task-index-list-title { - max-width: 80%; - display: block; - margin: 10px auto 0px; - font-size: 14px; - font-weight: bold; -} - -.task-index-list-user { - padding: 5px 10px; - border-radius: 25px; - background: #F5F6F7; - margin: 0px auto 20px; - display: inline-block; -} - -.task-index-list-box-bottom { - background: #F5F6F7; - color: #666; - padding: 10px 10%; - text-align: center; -} - -.task-index-list-box-bottom li { - display: inline; - margin: 0 5px; -} - -.task-index-list-box-bottom2 { - background: #fff; - color: #666; - padding: 10px 10%; - text-align: center; -} - -.task-index-list-box-bottom2 li { - display: inline; - margin: 0 5px; -} - -.task-vip { - position: absolute; - right: 15px; - top: 15px; -} - -@-webkit-keyframes bounce-down { - 25% { - -webkit-transform: translateY(-10px); - } - - 50%, - 100% { - -webkit-transform: translateY(0); - } -} - -@keyframes bounce-down { - 25% { - transform: translateY(-10px); - } - - 50%, - 100% { - transform: translateY(0); - } -} - -.task-index-list-hover { - position: absolute; - top: 0; - left: 0; - color: #fff; - width: 100%; - height: 100%; - border-radius: 2px 2px 0 0; -} - -.task-index-list-hover p { - margin: 15px; - overflow: hidden; - text-align: left; - height: 85%; -} - -.task-index-list-hover { - display: none; -} - -.task-mg8:hover .task-index-list-hover { - display: block; -} - -.task-mg8:hover { - box-shadow: 0 5px 15px 0 rgba(0, 0, 0, 0.15); - cursor: pointer; -} - -.task-dropdown {} - -.task-dropdown-menu { - min-width: 100px; - border: 1px solid rgba(0, 0, 0, .05); - box-shadow: 0 6px 12px rgba(0, 0, 0, .15); -} - -.task-dropdown-menu li a { - color: #666; -} - -/* 伸展型搜索 20170330byLB */ -.search-wrapper { - position: absolute; - font-size: 14px; -} - -.search-wrapper .input-holder { - overflow: hidden; - height: 30px; - position: relative; - width: 32px; - background: none; -} - -.search-wrapper.active .input-holder { - width: 320px; - border: none; - border-bottom: 2px solid #ccc; -} - -.search-wrapper .input-holder .search-input { - width: 100%; - height: 30px; - font-size: 14px; - position: absolute; - top: 0px; - left: 0; - border: none; - opacity: 0; -} - -.search-wrapper.active .input-holder .search-input { - opacity: 1; - outline: none; - background: none; -} - -.search-wrapper .search-icon { - width: 20px; - height: 20px; - border: none; - padding: 0px; - outline: none; - position: relative; - z-index: 2; - float: right; - cursor: pointer; - background: none; - color: #666; - top: 2px; -} - -.search-wrapper .close { - position: absolute; - z-index: 1; - top: 2px; - right: 20px; - width: 25px; - height: 25px; - cursor: pointer; - opacity: 0; - color: #666; -} - -.search-wrapper.active .close { - right: -35px; - opacity: 1; -} - -a.sortArrowActiveD { - background: url(../images/post_image_list.png) -0px -20px no-repeat; - width: 7px; - height: 9px; - float: left; - margin-top: 10px; - margin-left: 5px; -} - -a.sortArrowActiveU { - background: url(../images/post_image_list.png) -17px -20px no-repeat; - width: 7px; - height: 9px; - float: left; - margin-left: 5px; - margin-top: 10px; -} - -.postSort { - width: 75px; - float: right -} - -.shixunPostSort { - width: 60px; - float: right -} - -.remove_li li { - list-style-type: none !important; -} - -a.shixun-task-btn { - display: inline-block; - font-weight: bold; - border: none; - padding: 0 12px; - color: #666; - letter-spacing: 1px; - text-align: center; - font-size: 14px; - height: 30px; - line-height: 30px; - border-radius: 3px; -} - -a.shixun-task-ban-btn { - background-color: #c2c4c6; - display: inline-block; - font-weight: bold; - border: none; - padding: 0 12px; - color: #666; - letter-spacing: 1px; - text-align: center; - font-size: 14px; - height: 30px; - line-height: 30px; - border-radius: 3px; - cursor: default; -} - -.shixun-panel-list>div:nth-child(odd) { - background: #f9f9f9; -} - -.shixun-panel-list>div:nth-child(even) { - background: #fff; -} - -.shixun-panel-list { - background: #fff; - margin: 0 1px; -} - -.shixun-panel-inner { - background: #EFF2F7; - padding: 15px; - height: 70px; -} - -.challange_operate { - display: none -} - -.shixun-panel-inner:hover .challange_operate { - display: block -} - -.shixun_title { - color: #333; - font-size: 16px; -} - -.g_frame { - border: 1px solid #29bd8b; - color: #29bd8b; - padding: 0 5px; - border-radius: 3px; - text-align: center; -} - -.loading-center { - text-align: center; - align-items: center; - justify-content: center; -} - -.center { - vertical-align: middle; - text-align: center; -} - -.itoblock_w150 { - display: block; - float: left; - width: 150px -} - -.itoblock_w75 { - display: block; - float: left; - width: 75px -} - -/*实训--技能勋章*/ -.modal-list li { - float: left; - padding: 0px 15px; - background: #ff7500; - color: #ffffff; - border-radius: 4px; - margin-right: 10px -} - -.modal-list li:before { - content: '●'; - color: #FFFFFF; - margin-right: 5px; - font-size: 14px -} - -.modal-list span { - width: 8px; - height: 8px; - border-radius: 50%; - background: #ffffff; - display: block; - float: left; - margin-right: 5px; - margin-top: 10px; -} - -/* 合作者 20170516byLB */ -.task-partner-list { - padding: 15px; - border-bottom: 1px solid #eee; -} - -.task-width33 { - width: 33.3%; -} - -.read_only { - -moz-user-select: none; - -webkit-user-select: none; -} - -.task-form-28 { - width: 28%; - padding: 0px 10px -} - - -/* 实训首页的搜索 */ -.xy_box { - padding: 16px; - height: 180px -} - -.task_yx_bo { - margin: 0px auto 13px; -} - -.course-nav-box { - padding: 0px 10px; - margin: 30px 0px -} - -.xy_level { - width: 80%; - margin: 0px auto; - border-top: 1px solid #eee; - margin-top: 5px; - line-height: 35px; -} - -.course-nav-row { - padding: 7px 0px -} - -.course-nav-row_item li { - width: auto; - height: 30px; - line-height: 30px; - margin: 5px; - padding: 0px 15px; -} - -.course-nav-row_item label { - cursor: pointer; -} - -.check_item { - height: 40px; - line-height: 40px; - padding: 0px 15px; -} - -.more_check { - position: absolute; - bottom: 5px; - right: 10px; - cursor: pointer; -} - - -.bottomdashed1 { - border-bottom: 1px dashed #eeeeee; -} - -/*更多和收起*/ -.two_line_lesson { - height: 80px; - overflow: hidden; -} - -.more_line_lesson { - max-height: 200px; - display: block; -} - -.scroll_lesson { - overflow-x: hidden; - overflow-y: scroll; -} - -.searchFor { - width: auto; -} - -.searchFor .searchCon { - width: 250px; - border-bottom: 1px solid #cccccc; - float: left; - height: 30px; -} - -.searchFor .searchCon input { - border: none; - outline: none; - height: 29px; - width: 91%; -} - -.searchFor .searchImg { - margin: 5px 10px 0px 0px; - cursor: pointer; -} - -.searchFor .search_close { - font-size: 18px; - float: right; - color: #666; - height: 29px; - line-height: 29px; - cursor: pointer; -} - -.tab_color { - color: #bfbfbf !important; -} - -/*_game_show.html.erb页面新增的一个tab*/ -.comments_item_content img { - border-radius: 50%; - margin-right: 5px -} - -.comment_item_one { - flex: 1; -} - -.comment_item_bottom { - border-bottom: 1px solid #efefef; - display: flex -} - -.comment_item_top { - border-top: 1px solid #efefef -} - -.comment_item_left_green { - border-left: 3px solid #29bd8b -} - -.return_item { - height: 20px; - line-height: 20px; - margin-top: 5px; -} - -.comment-input { - width: 100%; - margin: 10px; - margin-right: 17px; -} - -.comment-input textarea { - border: none !important; - width: 100%; - outline: none; - height: 30px; - border-radius: 4px; - padding-left: 5px; - float: left -} - -.comment_position { - position: absolute; - bottom: 8px; - right: 20px -} - -/*-------新建阶段添加选项部分----------*/ -.option-item { - border: 1px solid #e2e2e2; -} - -.option-item, -.add-option-item { - display: block; - width: 38px; - height: 38px; - text-align: center; - line-height: 38px; - border-radius: 4px -} - -.check-option-bg { - background: #FF7500; - color: #ffffff !important; - border: 1px solid #FF7500 -} - -.add-option-input { - padding: 5px; - width: 90%; - height: 40px; - min-width: 700px; -} - -.add-option-input a { - display: block; - width: 100%; - height: 100%; - cursor: pointer -} - -.position-delete { - position: absolute; - right: -22px; - top: 12px; - cursor: pointer -} - -/*--------TPI的答案选项卡------*/ -.quiz-task-options:not(.-compact) { - padding: 10px; -} - -.card { - position: relative; - border-radius: 2px; - overflow: hidden; -} - -/*.card:hover{background: #3f3f3f;}*/ -.card-check { - background: #3498db !important; -} - -.-justify { - justify-content: space-between; -} - -.-center { - align-items: center; - min-height: 66px; -} - -.markdown { - letter-spacing: 0; - line-height: 1.6; - word-wrap: break-word; - word-break: break-word; -} - -.markdown code { - padding: 0; - line-height: 23px; - margin: 0; - font-family: "微软雅黑", "宋体"; -} - - -/*模拟实战---加载等待*/ -.loading_all { - background: #ffffff; - z-index: 100000; - width: 100%; - height: 100%; - position: fixed; - left: 0px; - top: 0px; - text-align: center; -} - -.loading_main img { - border-radius: 4px; -} - -.loading_main span { - font-size: 44px; - font-weight: bold; - color: #ff7500; - letter-spacing: 5px; - margin-left: 5px; -} - -.load { - width: auto; - top: 50%; - margin-top: -100px; - position: relative; -} - -.loading_seconde { - color: #ff7500; - letter-spacing: 3px; - font-size: 16px; -} - -#ajax-indicator-base { - position: absolute; - /* fixed not supported by IE*/ - /* - - top: 50%; - left: 50%; - margin-left: -20px; - margin-top: -40px; - width: 20%; - height: 5%; */ - width: 100%; - height: 100%; - font-weight: bold; - text-align: center; - /*padding:0.6em;*/ - z-index: 9999; - background: rgba(225, 225, 225, 0); -} - -html>body #ajax-indicator-base { - position: fixed; -} - -#ajax-indicator-base embed { - position: relative; - top: 40%; - width: 40px; - height: 40px; - margin-left: -40px; - left: 50%; -} - -/*#ajax-indicator-base span{ - color:#fff; - background-position: 0% 40%; - background-repeat: no-repeat; - */ -/*background-image: url(/images/loading.gif);*/ -/* - padding-left: 26px; - vertical-align: bottom; - z-index:999; -}*/ - -.save-tip { - display: none; - position: fixed; - top: 0px; - left: 0px; - width: 100%; - height: 100%; -} - -.save-tip-content { - position: absolute; - top: 50%; - left: 50%; - margin-left: -36px; - margin-top: -19px; - background: rgba(0, 0, 0, 0.7); - color: #fff; - padding: 5px 15px; - border-radius: 4px -} - -.empty { - background: #494A4C; - display: inline; - margin: 0 2px; - padding: 0 3px; -} - -.tab-key { - background: #494A4C; - display: inline; - margin: 0 2px; - padding: 0 6px; -} - -/*二次回复的提示语的样式*/ -.points-data-tip-top { - position: absolute; - left: 100px; - top: -30px; - opacity: .7; - width: 150px; - height: 30px; - z-index: 9999; - display: none; -} - -.data-tip-top1 { - position: relative; - box-shadow: 0px 0px 8px #000; - background: #000; - color: #fff; - word-wrap: break-word; - text-align: center; - border-radius: 4px; - padding: 0 10px; - border: 1px solid #000; -} - -.data-tip-top1:after, -.data-tip-top1:before { - position: absolute; - content: ''; - width: 0; - height: 0; - left: 45%; - bottom: -10px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 10px solid #000; -} - -.data-tip-top1:before { - bottom: -11px; -} - -/*选择题tab切换*/ -.nav_option li { - overflow: hidden; - width: 110px; - text-align: center; - cursor: pointer; - height: 38px; - line-height: 38px; - border-top-right-radius: 5px; - border-top-left-radius: 5px; - border: 1px solid #e2e2e2; - border-bottom: 0px; - color: #FF7500; - border-right: none; -} - -.nav_option li:last-child { - border-right: 1px solid #e2e2e2; -} - -.nav_option li a { - width: 100%; - height: 100%; - display: block; -} - -/*---------------------试卷----------------------*/ -.question_item_con { - font-weight: normal !important; - border: 1px solid #EEEEEE !important; - color: #333 !important; - background: #FFFFff !important; - position: relative -} - -.exam_operator { - cursor: pointer; - position: absolute; - right: 15px; - top: 11px; -} - -.question_item_con .write_answer { - border-top: 1px solid #EEEEEE; - background: #EFF9FD; - padding: 10px 15px; - text-align: justify; -} - -.add_item_part { - width: auto; - padding: 2px 20px; - border: 1px solid #ff7500; - border-radius: 3px; - margin-left: 15px; - cursor: pointer; - color: #ff7500 !important; -} - -.add_item_part:hover { - color: #fff !important; - background-color: #ff7500 -} - -/*作业问答*/ -.work_search_ul { - border: 1px solid #EEEEEE; - border-radius: 4px; -} - -.work_search_ul li span { - display: block; - float: left; - height: 38px; - line-height: 38px -} - -.work_search_ul li { - border-bottom: 1px dashed #EEEEEE; -} - -.work_search_ul li:last-child { - border-bottom: none -} - -.work_search_ul .magic-radio+label, -.work_search_ul .magic-checkbox+label { - top: 5px -} - -/*更新提示*/ -.update_back_main { - display: none; - position: fixed; - left: 0px; - top: 0px; - background: rgba(0, 0, 0, 0.3); - width: 100%; - z-index: 7001; - height: 100%; -} - -.tip-panel-animate-left { - position: absolute; - z-index: 9000; - left: 80px; - top: 290px; - background: #FFFFff; - width: 430px; - height: 140px; - border-radius: 3px; -} - -.tip-panel-animate { - position: absolute; - z-index: 10001; - right: 4px; - top: 40px; - background: #FFFFff; - width: 430px; - height: 140px; - border-radius: 3px; - display: none -} - -.tip-panel-animate .tip-img, -.tip-panel-animate-left .tip-img { - width: 130px; - text-align: center; - background-color: #E8E9ED; - height: 100%; -} - -.tip-panel-animate .tip-img img, -.tip-panel-animate-left .tip-img img { - width: 70px; - height: 70px; - margin: 35px 30px; -} - -.tip-right-con { - width: 69.7%; - height: 100%; -} - -.tip-operator-btn { - width: 100%; - border-top: 1px solid #eee; - height: 40px; - position: absolute; - right: 0px; - bottom: 0px; - text-align: center; -} - -.tip-operator-btn a, -.tip-operator-btn span { - height: 100%; - text-align: center; - line-height: 40px; - width: 50% -} - -.tip-operator-btn a:hover, -.tip-operator-btn span:hover { - background-color: #f9f9f9 -} - -.tip-operator-btn a:first-child, -.tip-operator-btn span:first-child { - border-right: 1px solid #eee; - width: 49.5% -} - -.animate-tip { - animation: rightToleft 1s; -} - -.animate-tip-hide { - animation: leftToright 1s; -} - -@keyframes rightToleft { - from { - right: -400px; - } - - to { - right: 4px; - } -} - -@keyframes leftToright { - from { - right: 4px; - } - - to { - right: -420px; - } -} - -.animate-tip-l { - animation: rightToleft-l 1s; -} - -.animate-tip-hide-l { - animation: leftToright-l 1s; -} - -@keyframes rightToleft-l { - from { - left: -400px; - } - - to { - left: 80px; - } -} - -@keyframes leftToright-l { - from { - left: 80px; - } - - to { - left: -420px; - } -} - -/*----------实训TPI图片查看效果--------------*/ -.photo_display { - box-sizing: border-box; - width: 100%; - position: fixed; - top: 0px; - left: 0px; - padding-top: 64px; - padding-left: 80px; - background: rgba(0, 0, 0, 0); - height: 100%; - z-index: 100 -} - -.photo_display .task-popup { - width: 100% !important; - height: 100% !important; -} - -#picture-content img { - max-width: 100%; - height: 400px; - display: block; - margin: 0px auto; - margin-bottom: 20px; -} - -#box-img { - width: 100%; - height: 100%; - display: table; - text-align: center; - background: #fff; -} - -#box-img span { - display: table-cell; - vertical-align: middle; -} - -/*-------------学员统计 通关排行榜------------*/ -.rankings_num { - position: absolute; - width: 100%; - top: 3px; - height: 15px; - line-height: 15px; - left: 0px; - font-size: 12px; - color: #F24B27; - text-align: center -} - -.census_main { - width: 1086px; - overflow: hidden; - position: relative; - min-height: 350px; - margin: 0px 45px; -} - -.census_main ul { - position: absolute; - min-width: 1086px; -} - -.census_main ul>li { - float: left; - width: 260px; - margin: 6px 6px; - min-height: 335px -} - -.census_main ul>li:nth-child(4n) { - margin-right: 0px; -} - -.part_main { - border-radius: 5px; - background: #FFFFff; - border: 1px solid #EEEEEE -} - -.part_main .part_top { - background: #FF9E6A; - color: #FFFFff; - padding: 10px 15px; - border-radius: 5px 5px 0px 0px; -} - -.wipe { - display: none; - cursor: pointer; - line-height: 332px; - color: #FFFFff !important; - font-size: 16px; - width: 100%; - position: absolute; - left: 0px; - top: 0px; - background: rgba(0, 0, 0, 0.3); - height: 100%; - z-index: 3; - text-align: center; - border-radius: 5px; -} - -.part_main:hover .wipe { - display: block; -} - - -#census_left, -#census_right { - display: none; - position: absolute; - cursor: pointer; - background: #FCF2EC; - padding: 10px 5px; - width: 35px; - box-sizing: border-box; - top: 122.5px; - text-align: center -} - -#census_left i, -#census_right i { - color: #FBBD81; -} - - -/*-----------实训配置、评测脚本-------------*/ -.edit_script_text .test_script_text { - word-break: break-all; - background-color: #f7f7f7; -} - -.edit_script_text .CodeMirror-lines { - padding: 0px !important; - padding-bottom: 4px -} \ No newline at end of file diff --git a/src/App.js b/src/App.js index 4a586cac..41ba3d34 100644 --- a/src/App.js +++ b/src/App.js @@ -12,7 +12,6 @@ import LoginDialog from './modules/login/LoginDialog'; import Notcompletedysl from './modules/user/Notcompletedysl'; import Trialapplicationysl from './modules/login/Trialapplicationysl'; import Trialapplicationreview from './modules/user/Trialapplicationreview'; -import Addcourses from "./modules/courses/coursesPublic/Addcourses"; import AccountProfile from "./modules/user/AccountProfile"; import Accountnewprofile from './modules/user/Accountnewprofile'; import Certifiedprofessional from './modules/modals/Certifiedprofessional'; @@ -20,8 +19,7 @@ import Certifiedprofessional from './modules/modals/Certifiedprofessional'; import Loading from './Loading' import Loadable from 'react-loadable'; -import marked from './common/marked' - +import marked from './common/marked'; import moment from 'moment' import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles'; @@ -48,14 +46,16 @@ const Projects = Loadable({ loader: () => import('./forge/Index'), loading: Loading, }) - +//forge项目-devOps详情 +const OpsDetail = Loadable({ + loader: () => import('./forge/DevOps/opsDetail'), + loading: Loading, +}) //403页面 const Shixunauthority = Loadable({ loader: () => import('./modules/403/Shixunauthority'), loading: Loading, }) - - //404页面 const Shixunnopage = Loadable({ loader: () => import('./modules/404/Shixunnopage'), @@ -67,13 +67,8 @@ const http500 = Loadable({ loader: () => import('./modules/500/http500'), loading: Loading, }) -// 个人主页 -// const InfosIndex = Loadable({ -// loader: () => import('./modules/user/usersInfo/InfosIndex'), -// loading: Loading, -// }) const InfosIndex = Loadable({ - loader: () => import('./forge/users/Infos'), + loader: () => import('./forge/users/Index'), loading: Loading, }) // 组织 @@ -89,7 +84,7 @@ const Sponsor = Loadable({ class App extends Component { constructor(props) { - super(props) + super(props); this.state = { Addcoursestype: false, Addcoursestypes: false, @@ -97,8 +92,8 @@ class App extends Component { occupation: 0, mygetHelmetapi: null, } - } + HideAddcoursestypess = (i) => { this.setState({ Addcoursestype: false, @@ -161,7 +156,7 @@ class App extends Component { this.setState({ mygetHelmetapi: undefined }); - document.title = "EduCoder"; + document.title = "Forge"; var link = document.createElement('link'), oldLink = document.getElementById('dynamic-favicon'); link.id = 'dynamic-favicon'; @@ -190,8 +185,6 @@ class App extends Component { getAppdata = () => { let url = "/setting.json"; axios.get(url).then((response) => { - // console.log("app.js开始请求/setting.json"); - // console.log("获取当前定制信息"); if (response) { if (response.data) { this.setState({ @@ -209,27 +202,18 @@ class App extends Component { } catch (e) { this.gettablogourlnull(); } - - } else { - this.gettablogourlnull(); - } - } else { this.gettablogourlnull(); - } - }).catch((error) => { this.gettablogourlnull(); - }); }; render() { - let { mygetHelmetapi } = this.state; return ( @@ -239,40 +223,47 @@ class App extends Component { - this.HideAddcoursestypess(i)} /> - {/*项目*/} - { - return () - } - }> - + {/*项目*/} + { + return () + } + }> + + {/*项目*/} + { + return () + } + }> + + {/*403*/} - { - return () - } - }> - - {/*404*/} - - {/* 个人主页 */} - { - - return () + return () + } + }> + + {/*404*/} + + {/* 个人主页 */} + { + return () } }> () + (props) => ( + + ) } /> - diff --git a/src/AppConfig.js b/src/AppConfig.js index d94d50e6..dadadc5f 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -59,51 +59,14 @@ function setpostcookie() { } setpostcookie(); - -function railsgettimes(proxy) { - clearAllCookie() - if (timestamp && checkSubmitFlg === false) { - $.ajax({ - url: proxy, async: true, success: function (data) { - if (data.status === 0) { - timestamp = data.message; - setpostcookie(); - } - } - }) - checkSubmitFlg = true - window.setTimeout(() => { - checkSubmitFlg = false; - }, 2000); - } else if (checkSubmitFlg === false) { - $.ajax({ - url: proxy, async: true, success: function (data) { - if (data.status === 0) { - timestamp = data.message; - setpostcookie(); - } - } - }) - checkSubmitFlg = true - window.setTimeout(() => { - checkSubmitFlg = false; - }, 2000); - } - -} - window._debugType = debugType; export function initAxiosInterceptors(props) { initOnlineOfflineListener() - // TODO 避免重复的请求 https://github.com/axios/axios#cancellation - // TODO 读取到package.json中的配置? - var proxy = "http://localhost:3000" - // proxy = "https://pre-newweb.educoder.net" - proxy = "https://testforgeplus.trustie.net/" + var + proxy = "http://localhost:3000" + proxy = "https://testforgeplus.trustie.net" - // 在这里使用requestMap控制,避免用户通过双击等操作发出重复的请求; - // 如果需要支持重复的请求,考虑config里面自定义一个allowRepeat参考来控制 const requestMap = {}; window.setfalseInRequestMap = function (keyName) { requestMap[keyName] = false; @@ -114,23 +77,17 @@ export function initAxiosInterceptors(props) { setpostcookie() clearAllCookie() - if (config.url.indexOf(proxy) != -1 || config.url.indexOf(':') != -1) { + if (config.url.indexOf(proxy) !== -1 || config.url.indexOf(':') !== -1) { return config } requestProxy(config) let url = `/api${config.url}`; - //qq登录去掉api - if (config.params && config.params.redirect_uri != undefined) { - if (config.params.redirect_uri.indexOf('otherloginqq') != -1) { - url = `${config.url}`; - } - } - if (`${config[0]}` != `true`) { + if (`${config[0]}` !== `true`) { if (window.location.port === "3007") { config.url = `${proxy}${url}`; - if (config.url.indexOf('?') == -1) { + if (config.url.indexOf('?') === -1) { config.url = `${config.url}?debug=${debugType}`; } else { config.url = `${config.url}&debug=${debugType}`; diff --git a/src/components/render-html.jsx b/src/components/render-html.jsx index 34c123a9..f8154f9c 100644 --- a/src/components/render-html.jsx +++ b/src/components/render-html.jsx @@ -14,6 +14,7 @@ export default ({ value = "", is_md = true, className, style = {} }) => { } html = html.replace(/▁/g, "▁▁▁"); + // html = html.replace(/\n/g,"
"); const el = useRef(); function onAncherHandler(e) { diff --git a/src/forge/Activity/Activity.js b/src/forge/Activity/Activity.js index aa19a891..7e84e418 100644 --- a/src/forge/Activity/Activity.js +++ b/src/forge/Activity/Activity.js @@ -1,6 +1,6 @@ import React , { Component } from 'react'; import { Dropdown , Menu , Icon , Pagination , Spin } from 'antd'; -import '../css/index.css'; +import '../css/index.scss'; import '../Branch/branch.css'; import './activity.css'; import NoneData from '../Nodata'; @@ -27,7 +27,6 @@ const ARRAY = [ name:'1个月' } ] -// const dataformat="YYYY-MM-DD HH:mm"; class Activity extends Component{ constructor(props){ @@ -97,27 +96,22 @@ class Activity extends Component{ const { time,type,status } = this.state; this.getInfo(time,type,status,page); } + menu =()=> ( + + { + ARRAY && ARRAY.map((item,key)=>{ + return( + {item.name} + ) + }) + } + + ) render(){ const { time , data , page , project_trends , isSpin } = this.state; - const menu = ( - - { - ARRAY && ARRAY.map((item,key)=>{ - return( - {item.name} - ) - }) - } - - ); - let name = time && ARRAY.filter(item=>item.id === parseInt(time)) ; - // console.log(name); - - const second_per = (parseInt(data && data.close_issues_count)/parseInt(data && data.issues_count)*100)+'%'; - const third_per = (parseInt(data && data.close_issues_count)/parseInt(data && data.issues_count)*100)+'%'; const fourth_per = (parseInt(data && data.open_issues_count)/parseInt(data && data.issues_count)*100)+'%'; return( @@ -162,7 +156,7 @@ class Activity extends Component{
- + 周期: {name && name.length>0 && name[0].name} diff --git a/src/forge/Activity/ActivityItem.js b/src/forge/Activity/ActivityItem.js index 90e5e83d..ba0ff5d7 100644 --- a/src/forge/Activity/ActivityItem.js +++ b/src/forge/Activity/ActivityItem.js @@ -1,46 +1,45 @@ -import React , { Component } from 'react'; -import {Link} from 'react-router-dom'; +import React, { Component } from 'react'; +import { Link } from 'react-router-dom'; import './activity.css'; import { getImageUrl } from 'educoder'; -class ActivityItem extends Component{ - render(){ +class ActivityItem extends Component { + render() { const { projectsId } = this.props.match.params; const { item } = this.props; - return( - - + return ( +
+
{/* 如果是版本发布 */} - { item.trend_type==="VersionRelease"?  - - {item.name} - {item.trend_type} + {item.trend_type === "VersionRelease" ? +

+ {item.name} + {item.trend_type}

: // 如果是任务 - item.trend_type==="Issue"? - - {item.name} - {item.trend_type} -

- : - // 如果是合并请求 - - {item.name} - {item.trend_type} -

- } - - - - {item.user_name} - - - { item.created_at && 创建于{item.created_at}} + item.trend_type === "Issue" ? +

+ {item.name} + {item.trend_type}

-
-
+ : + // 如果是合并请求 +

+ {item.name} + {item.trend_type} +

+ } +

+ + + {item.user_name} + + {item.created_at && 创建于{item.created_at}} +

+
+
) } } diff --git a/src/forge/Branch/CloneAddress.js b/src/forge/Branch/CloneAddress.js index 9010c2f7..0031407d 100644 --- a/src/forge/Branch/CloneAddress.js +++ b/src/forge/Branch/CloneAddress.js @@ -14,6 +14,7 @@ class CloneAddress extends Component { const { http_url, downloadUrl } = this.props; return (
+

版本库地址已变更,请基于新地址提交代码

{ http_url && HTTP } diff --git a/src/forge/Branch/SelectBranch.js b/src/forge/Branch/SelectBranch.js deleted file mode 100644 index d31532bd..00000000 --- a/src/forge/Branch/SelectBranch.js +++ /dev/null @@ -1,172 +0,0 @@ -import React , { Component } from 'react'; -import { Dropdown , Icon , Input } from 'antd'; -import { getBranch } from '../GetData/getData'; -import "./branch.css" -import axios from 'axios'; -const $ = window.$; -class SelectBranch extends Component{ - constructor(props){ - super(props); - this.state={ - visible:false, - value:undefined, - search:"branch", - tags:undefined, - branchsFilter:undefined, - data:undefined - } - } - componentDidMount() { - this.getTagList(); - - document.body.addEventListener('click', e => { - let v= this.state.visible; - if(e.target.className && e.target.className.animVal!=undefined) return; - - let s = e.target && e.target.className && e.target.className.indexOf('showtag')> -1; - let classF =e.target && e.target.className && e.target.className.indexOf("downobject") > -1 || e.target.className==="ant-input OptionsInput"; - if(e.target && e.target.className === "ant-dropdown-trigger" || s){ - this.setState({ - visible:!v, - value:undefined - }) - if(!v){ - this.getBranchs(); - } - return; - }else if (classF) { - return; - } else{ - this.setState({ - visible:false, - value:undefined - }) - } - }); - } - componentDidUpdate=(prevProps)=>{ - if(this.props.repo_id && this.props.repo_id!=prevProps.repo_id){ - this.getTagList(); - } - } - // 获取分支 - getBranchs=()=>{ - debugger; - const { projectsId } = this.props; - let result = getBranch(projectsId); - if(result){ - this.setState({ - data:result.data - }) - if(result.data && result.data.length>0){ - this.setState({ - search:"branch" - }) - } - } - } - getTagList=()=>{ - const { repo_id } = this.props; - if(repo_id){ - const url = `/repositories/${repo_id}/tags.json`; - axios.get(url).then((result)=>{ - if(result){ - this.setState({ - tags:result.data - }) - } - }).catch(error=>{ - console.log(error); - }) - } - } - - InputClick=(e)=>{ - this.stopPropagations(e); - } - - stopPropagations=(e)=>{ - e.stopPropagation(); - } - - // 输入搜索内容 - changeValue=(e)=>{ - this.setState({ - value:e.target.value - }) - let { branchs } = this.props; - const { tags } = this.state; - let array = branchs; - if(search === "tag" && tags.length>0){ - array = tags; - } - let branchsFilter = e.target.value ? (array && array.length>0 && array.filter(item=>item.name.indexOf(e.target.value)>-1)) : array; - this.setState({ - branchsFilter - }) - } - - // 选择分支 - changeBranchs=(e,value)=>{ - e.stopPropagation(); - this.setState({ - visible:false, - value - }) - const { changeBranch } = this.props; - changeBranch && changeBranch(value); - } - - // 切换搜索的列表 - changeSearch=(search)=>{ - this.setState({ - search - }) - } - - render(){ - const { visible , value , search , tags , branchsFilter , data } = this.state; - const { branchs , branch } = this.props; - - - console.log(data); - const menu = ( -
- ); - return( -
- - - - {search ==="branch"?"分支":"标签"}: - - {branch} - - - - - -
- ) - } -} -export default SelectBranch; \ No newline at end of file diff --git a/src/forge/Component/Cards.jsx b/src/forge/Component/Cards.jsx new file mode 100644 index 00000000..f35d890a --- /dev/null +++ b/src/forge/Component/Cards.jsx @@ -0,0 +1,19 @@ +import React from 'react'; +import './Component.scss'; + +export default (({img , title, desc , rightBtn})=>{ + return( +
+
+
+

+ {title} + {rightBtn} +

+
+ {desc} +
+
+
+ ) +}) \ No newline at end of file diff --git a/src/forge/Component/Component.scss b/src/forge/Component/Component.scss index 99e9f7fc..9a58f5a2 100644 --- a/src/forge/Component/Component.scss +++ b/src/forge/Component/Component.scss @@ -1,10 +1,122 @@ - ul.ant-menu{ - border-right: none; +ul.ant-menu{ + border-right: none; +} +ul.ant-menu li:last-child{ + border-bottom: none; +} +li.ant-menu-item{ + margin:0px!important; + border-bottom: 1px solid #eee; +} +// Cards +.cards{ + display: flex; + align-items: center; + padding:20px 34px; + background-color: #fff; + margin-bottom:18px; + .img{ + margin-right: 20px; + width: 190px; + height: 90px; + border:1px solid rgba(238,238,238,1); + display: flex; + justify-content: center; + align-items: center; + img{ + max-width: 100%; + } } - ul.ant-menu li:last-child{ - border-bottom: none; + .content{ + flex:1; + width: 0; + .titles{ + display: flex; + justify-content: space-between; + margin-bottom: 10px!important; + align-items: center; + &>span{ + font-size:18px ; + color: #333; + } + } + .desc{ + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + } } - li.ant-menu-item{ - margin:0px!important; - border-bottom: 1px solid #eee; - } \ No newline at end of file +} +// Tabs +.tabsStyle{ + .ant-tabs-bar.ant-tabs-top-bar{ + padding-left: 35px; + margin-bottom: 0px; + } + .ant-tabs-nav .ant-tabs-tab{ + padding:19px 0px; + margin-right: 40px; + } + .ant-tabs-ink-bar{ + width:25px!important; + bottom: 10px; + } +} +.statusColor{ + display: inline-block; + padding:0px 10px; + height:20px; + line-height: 20px; + border-radius:11px; + color: #fff; + margin-left: 5px; + &.running{ + background:#5091FF; + color: #F1F8FF; + } + &.Preparing{ + background:rgba(255,110,33,1); + color:rgba(255,248,244,1); + } + &.pass{ + background:#28BD6C; + color: #EEFDF5; + } + &.failed{ + background:#F73030; + color:#FCEEEE ; + } +} +.handleBox{ + position: fixed; + top:45%; + right:240px; + z-index: 10000; +} +@media screen and (max-width: 1800px){ + .handleBox{ + right:190px; + } +} +@media screen and (max-width: 1700px){ + .handleBox{ + right:140px; + } +} +@media screen and (max-width: 1600px){ + .handleBox{ + right:90px; + } +} +@media screen and (max-width: 1450px){ + .handleBox{ + right:10px; + } +} +@media screen and (max-width: 1380px){ + .handleBox{ + right:0px; + } +} \ No newline at end of file diff --git a/src/forge/Component/FileLanguage.jsx b/src/forge/Component/FileLanguage.jsx new file mode 100644 index 00000000..bd531909 --- /dev/null +++ b/src/forge/Component/FileLanguage.jsx @@ -0,0 +1,66 @@ +import React from 'react'; +import { Select } from 'antd'; + +const Option = Select.Option; +const LANGUAGE = [ + "apex", + "azcli", + "bat", + "clojure", + "coffee", + "cpp", + "csharp", + "csp", + "css", + "dockerfile", + "fsharp", + "go", + "handlebars", + "html", + "ini", + "java", + "javascript", + "json", + "less", + "lua", + "markdown", + "msdax", + "mysql", + "objective", + "perl", + "pgsql", + "php", + "postiats", + "powerquery", + "powershell", + "pug", + "python", + "r", + "razor", + "redis", + "redshift", + "ruby", + "rust", + "sb", + "scheme", + "scss", + "shell", + "solidity", + "sql", + "st", + "swift", + "typescript", + "vb", + "xml", + "yaml", +]; +export default (({ language , select_language })=>{ + return( + + ) +}) \ No newline at end of file diff --git a/src/forge/Component/Handbook.jsx b/src/forge/Component/Handbook.jsx new file mode 100644 index 00000000..bcb38187 --- /dev/null +++ b/src/forge/Component/Handbook.jsx @@ -0,0 +1,13 @@ +import React from 'react'; +import Handbook from '../Images/handbook.png'; +import './Component.scss'; + +export default (()=>{ + return( +
+ + + +
+ ) +}) \ No newline at end of file diff --git a/src/forge/Component/ListCount.jsx b/src/forge/Component/ListCount.jsx new file mode 100644 index 00000000..5a88dd43 --- /dev/null +++ b/src/forge/Component/ListCount.jsx @@ -0,0 +1,41 @@ +import React from 'react'; +import styled from 'styled-components'; + +export default (({fork,parise})=>{ + const DivStyle = styled.div`{ + display:flex; + align-item:center; + }`; + const SpanStylefork = styled.span`{ + display:flex; + align-item:center; + margin-left:30px; + padding:0px 12px; + border-radius:13px; + background-color:#EBF4FE; + height:24px; + line-height:24px; + font-size:12px; + }`; + const SpanStyleparise = styled.span`{ + display:flex; + align-item:center; + margin-left:30px; + padding:0px 12px; + border-radius:13px; + background-color:#FFF3DC; + height:24px; + line-height:24px; + font-size:12px; + }`; + return( + + { + fork || fork ===0 ? fork({fork}):"" + } + { + parise || parise ===0?点赞({parise}):"" + } + + ) +}) \ No newline at end of file diff --git a/src/forge/Component/MemberCards.jsx b/src/forge/Component/MemberCards.jsx new file mode 100644 index 00000000..78dd78d0 --- /dev/null +++ b/src/forge/Component/MemberCards.jsx @@ -0,0 +1,74 @@ +import React from 'react'; +import './Component.scss'; +import styled from 'styled-components'; + +const Img = styled.img`{ + border-radius:50%; + width:50px; + height:50px; + margin-right:14px; +}` +const Name = styled.div`{ + color:#5091FF; + font-size:16px; + height:22px; + line-height:22px; + margin-bottom:7px; +}` +const Time = styled.div`{ + color:#888; + font-size:12px; + height:16px; + line-height:16px; + margin-bottom:9px; + display:flex; + align-item:center; +}` +const I = styled.i`{ + font-size:13px!important; + color:#60B25E; + margin-right:2px; +}` +const FocusBtn = styled.a`{ + display:inline-block; + height:30px; + line-height:26px; + padding:0px 12px; + background-color:#fafafa; + border:1px solid #eee; + border-radius:2px; + color:#888!important; +}` +const Ifocused = styled.i`{ + font-size:16px!important; + color:#FFA802; + margin-right:4px; +}` +const Ifocus = styled.i`{ + font-size:16px!important; + color:#BBBBBB; + margin-right:4px; +}` +const Div = styled.div`{ + margin-bottom: 18px; + padding:20px 16px; + display: flex; + align-items: center; + border:1px solid #eee; +}` +export default (({img,name,time, focusStatus})=>{ + return( +
+ +
+ {name} + + { + focusStatus ? + 已关注 : + 关注 + } +
+
+ ) +}) \ No newline at end of file diff --git a/src/forge/Component/OpsStatus.jsx b/src/forge/Component/OpsStatus.jsx new file mode 100644 index 00000000..02883bd6 --- /dev/null +++ b/src/forge/Component/OpsStatus.jsx @@ -0,0 +1,44 @@ +import React from 'react'; +import './Component.scss'; + +export const Tags = (status)=>{ + switch(status){ + case 1: + return( + 运行中 + ); + case 2: + return ( + 未通过 + ); + case 3: + return ( + 已通过 + ); + default: + return ( + 准备中 + ); + } +} + +export const TagsLine = (status)=>{ + switch(status){ + case 1: + return( + 运行中 + ); + case 2: + return ( + 未通过 + ); + case 3: + return ( + 已通过 + ); + default: + return ( + 准备中 + ); + } +} \ No newline at end of file diff --git a/src/forge/Component/SearchUser.jsx b/src/forge/Component/SearchUser.jsx new file mode 100644 index 00000000..1df7ec64 --- /dev/null +++ b/src/forge/Component/SearchUser.jsx @@ -0,0 +1,70 @@ +import React , { useState , useEffect } from 'react'; +import { AutoComplete } from 'antd'; +import { getImageUrl } from "educoder"; +import axios from 'axios'; +const Option = AutoComplete.Option; + +export default ({ getUser })=>{ + const [ searchKey , setSearchKey ] = useState(undefined); + const [ userDataSource , setUserDataSource ] = useState(undefined); + + function getUserList(e){ + const url = `/users/list.json`; + axios.get(url, { + params: { + search: e, + }, + }) + .then((result) => { + if (result) { + setUserDataSource(result.data.users); + } + }) + .catch((error) => { + console.log(error); + }); + }; + + function changeInputUser(value){ + setSearchKey(value); + getUserList(value); + } + + function selectInputUser(id, option){ + setSearchKey(option.props.searchValue); + getUserList(option.props.searchValue); + getUser && getUser(id); + } + const source = + userDataSource && userDataSource.map((item, key) => { + return ( + + ); + }); + return( + + ) +} \ No newline at end of file diff --git a/src/forge/Component/Setnav.jsx b/src/forge/Component/Setnav.jsx new file mode 100644 index 00000000..97012159 --- /dev/null +++ b/src/forge/Component/Setnav.jsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; + +/** + * nav:{list:[],active:0} */ +export default(({ header , nav })=>{ + return( +
    + {header} + { + nav && nav.list && nav.list.length>0 ? + nav.list.map((item,key)=>{ + return( +
  • +

    + + {item.name} + +

    +
  • + ) + }) + :"" + } +
+ ) +}) \ No newline at end of file diff --git a/src/forge/Component/Tabs.jsx b/src/forge/Component/Tabs.jsx new file mode 100644 index 00000000..c3dd18d1 --- /dev/null +++ b/src/forge/Component/Tabs.jsx @@ -0,0 +1,20 @@ +import React from 'react'; +import { Tabs } from 'antd'; +import './Component.scss'; + +const { TabPane } = Tabs; + +export default (({ nav, index , onChange , children })=>{ + return( + nav && nav.length > 0 ? + + { + nav.map((item,key)=>{ + return( + {children} + ) + }) + } + :"" + ) +}) \ No newline at end of file diff --git a/src/forge/Component/Title.jsx b/src/forge/Component/Title.jsx new file mode 100644 index 00000000..9b3f8bf3 --- /dev/null +++ b/src/forge/Component/Title.jsx @@ -0,0 +1,19 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Nav = styled.div`{ + background-color:#fff; + padding:20px 30px; + border-bottom:1px solid #eee; + font-size:16px; + color:#333; + display:flex; + justify-content: space-between; + align-items:center; +}` + +export default (({children})=>{ + return( + + ) +}) \ No newline at end of file diff --git a/src/forge/Component/layout.jsx b/src/forge/Component/layout.jsx new file mode 100644 index 00000000..f59a8e34 --- /dev/null +++ b/src/forge/Component/layout.jsx @@ -0,0 +1,156 @@ +import styled from 'styled-components'; + +export const Banner = styled.div`{ + padding:20px 25px; + color:#333; + font-size:18px; + border-bottom:1px solid #eee; + background-color:#fff; + border-radius:5px 5px 0px 0px; +}` +export const AlignCenterBetween = styled.div`{ + display:flex; + align-items: center; + padding: 14px 14px 14px 20px; + justify-content: space-between; + border-bottom:1px solid #eee; +}` +export const FlexAJ = styled.div`{ + display:flex; + align-items: center; + justify-content: space-between; +}` +export const AlignCenter = styled.div`{ + display:flex; + align-items: center; +}` +// 左右结构 +export const Box = styled.div`{ + display:flex; + align-item:flex-start; +}` +export const Long = styled.div`{ + width:72%; + border-radius:5px; + margin-bottom:30px; +}` +export const Short = styled.div`{ + width:28%; + border-radius:5px; + margin-bottom:30px; +}` +export const Gap = styled.div`{ + padding-left:20px; + box-sizing:border-box; +}` +export const WhiteBack = styled.div`{ + background-color:#fff; + border-radius:5px; +}` +export const Blueline = styled.a`{ + height:30px; + line-height:28px; + border-radius:2px; + border:1px solid rgba(80,145,255,1); + color:rgba(80,145,255,1); + padding:0px 12px; + display:inline-block; +}` +export const Redline = styled.a`{ + height:30px; + line-height:28px; + border-radius:2px; + border:1px solid #F73030; + color:#F73030; + padding:0px 12px; + display:inline-block; + min-width:80px; + text-align:center; +}` +export const Greenline = styled.a`{ + height:30px; + line-height:28px; + border-radius:2px; + border:1px solid #28BD6C; + color:#28BD6C; + padding:0px 12px; + display:inline-block; + min-width:80px; + text-align:center; +}` +export const Greenback = styled.a`{ + height:30px; + line-height:30px; + border-radius:2px; + background-color:#28BD6C; + color:#fff; + padding:0px 12px; + display:inline-block; + min-width:80px; + text-align:center; +}` +export const Blueback = styled.a`{ + height:30px; + line-height:30px; + border-radius:2px; + background-color:rgba(80,145,255,1); + color:#fff; + padding:0px 12px; + display:inline-block; + min-width:80px; + text-align:center; +}` +export const Redback = styled.a`{ + height:30px; + line-height:30px; + border-radius:2px; + background-color:#F73030; + color:#fff; + padding:0px 12px; + display:inline-block; + min-width:80px; + text-align:center; +}` +export const NumUl = styled.ul`{ + padding-left: 20px; + & > li{ + list-style-type: decimal; + color:#888; + height:24px; + line-height:24px; + } +}` +export const GreenUnder = styled.a`{ + color:#28BD6C!important; + position:relative; + &:after{ + position:absolute; + bottom:-2px; + left:0px; + width:100%; + height:1px; + content:''; + background:#28BD6C; + } +}` +export const Cancel = styled.a`{ + height:32px; + line-height:32px; + border-radius:2px; + background-color:#BBBBBB; + color:#fff; + padding:0px 12px; + display:inline-block; + min-width:64px; + text-align:center; + letter-spacing: 4px; +}` +export const Content = styled.div`{ + width:1200px; + margin:20px auto; + text-align:center; + display:flex; + align-Items:center; + background-color:#fff; + justify-content: center; +}` diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx new file mode 100644 index 00000000..5c1fd202 --- /dev/null +++ b/src/forge/DevOps/About.jsx @@ -0,0 +1,78 @@ +import React , { forwardRef , useCallback } from 'react'; +import activate from '../Images/activate.png'; +import { Blueback } from '../Component/layout'; +import styled from 'styled-components'; +import { Link } from 'react-router-dom'; +import { Form , Input } from 'antd'; +import axios from 'axios'; + +const P = styled.p`{ + width:200px; + line-height:30px; + font-size:16px; + color:#333; + text-align:center; + margin-top:30px; + margin-bottom:30px!important; +}`; +function About( props , ref){ + const { form: { getFieldDecorator , validateFields } } = props; + const helper = useCallback( + (label, name, rules, widget, isRequired) => ( + + {label} + + {getFieldDecorator(name, { rules, validateFirst: true })(widget)} + + + ), + [] + ); + + function startActive(){ + console.log(props); + validateFields((error,values)=>{ + if(!error){ + const url = `/dev_ops/cloud_accounts.json`; + axios.post(url,{ + ...values, + }).then(result=>{ + if(result){ + + } + }).catch(error=>{ + console.log(error); + }) + } + }) + } + return( +
+ +

定义DevOps工作流,帮助您检测bug、发布代码…

+ 了解什么是DevOps? +
+ {helper( + "服务器IP地址:", + "ip_num", + [{ required: true, message: "请输入服务器IP地址" }], + ,true + )} + {helper( + "服务器用户名:", + "account", + [{ required: true, message: "请输入服务器用户名" }], + ,true + )} + {helper( + "服务器密码:", + "secret", + [{ required: true, message: "请输入服务器密码" }], + ,true + )} + + 开始激活 +
+ ) +} +export default Form.create()(forwardRef(About)); \ No newline at end of file diff --git a/src/forge/DevOps/Dispose.jsx b/src/forge/DevOps/Dispose.jsx new file mode 100644 index 00000000..ec6e0bd4 --- /dev/null +++ b/src/forge/DevOps/Dispose.jsx @@ -0,0 +1,91 @@ +import React , { forwardRef , useCallback , useState } from 'react'; +import { Form , AutoComplete } from 'antd'; +import { Blueback } from '../Component/layout'; +import Editor from "react-monaco-editor"; +import Modals from './DisposeModal'; +import FileLanguage from '../Component/FileLanguage'; + +import docker from '../Images/docker.png'; +import gradle from '../Images/gradle.png'; +import java from '../Images/java.png'; +import js from '../Images/js.png'; +import php from '../Images/php.png'; +import python from '../Images/python.png'; + + +const Option = AutoComplete.Option; +export default Form.create()( + forwardRef(({ form })=>{ + const [ visible , setVisible ] = useState(false); + const [ ymlValue , setYmlValue ] = useState("class Main 1111"); + const [ fileLanguage , setFileLanguage ] = useState(undefined); + + const { getFieldDecorator , validateFields } = form; + + const helper = useCallback( + (label, name, rules, widget, isRequired = false) => ( + + {label} + + {getFieldDecorator(name, { rules, validateFirst: true })(widget)} + + + ), + [] + ) + // 修改文件内容 + function changeEditor(value){ + setYmlValue(value); + } + + // 切换语言 + function select_language(value){ + setFileLanguage(value); + } + + // 确定提交 + function submit(){ + validateFields((error,value)=>{ + if(!error){ + console.log(value); + } + }) + } + return( + + setVisible(flag)}> +
+

编程语言:

+
    +
  • +
  • +
  • +
  • +
  • +
  • +
+
+ +
+

配置脚本:

+
+

+ .trustie-pipeline.yml + +

+ +
+ 确定提交 +
+
+ ) + }) +) \ No newline at end of file diff --git a/src/forge/DevOps/DisposeModal.jsx b/src/forge/DevOps/DisposeModal.jsx new file mode 100644 index 00000000..7514c319 --- /dev/null +++ b/src/forge/DevOps/DisposeModal.jsx @@ -0,0 +1,28 @@ +import React from 'react'; +import styled from 'styled-components'; +import { Modal ,Button } from 'antd'; + +const Div = styled.div`{ + height:130px; + line-height:130px; + text-align:center; + color:#333; +}` +export default (({visible , closeFunc})=>{ + return( + + + +
+ } + onCancel={()=>closeFunc(false)} + > +
工作流配置完成,您的DevOps之旅即刻开启!
+ + ) +}) diff --git a/src/forge/DevOps/Index.jsx b/src/forge/DevOps/Index.jsx new file mode 100644 index 00000000..8ccc61c8 --- /dev/null +++ b/src/forge/DevOps/Index.jsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { WhiteBack } from '../Component/layout'; +import './ops.scss'; + +import { Route, Switch } from 'react-router-dom'; +import Loadable from 'react-loadable'; +import Loading from '../../Loading'; + +const About = Loadable({ + loader: () => import('./About'), + loading: Loading, +}) +const Infos = Loadable({ + loader: () => import('./Infos'), + loading: Loading, +}) +export default ((props)=>{ + return( + + + () + } + > + () + } + > + () + } + > + + + ) +}) \ No newline at end of file diff --git a/src/forge/DevOps/Infos.jsx b/src/forge/DevOps/Infos.jsx new file mode 100644 index 00000000..97cdca70 --- /dev/null +++ b/src/forge/DevOps/Infos.jsx @@ -0,0 +1,42 @@ +import React , { useEffect , useState } from 'react'; +import { Banner } from '../Component/layout'; +import { Link } from 'react-router-dom'; + +import Dispost from './Dispose'; +import Structure from './Structure'; + +import styled from 'styled-components'; + +const Div = styled.div`{ + padding:24px 30px; +}`; +export default ((props)=>{ + const [ menu , setMenu ] = useState(false); + + const path = props.location.pathname; + useEffect(()=>{ + console.log(props.match.params.projectsId) + if(path === `/projects/${props.match.params.projectsId}/ops/list`){ + setMenu(true); + }else{ + setMenu(false); + } + },[path]) + + return( +
+ + 工作流配置 + { menu ? 构建列表:""} + +
+ { + menu ? + + : + + } +
+
+ ) +}) \ No newline at end of file diff --git a/src/forge/DevOps/OpsDetailLeftpanel.jsx b/src/forge/DevOps/OpsDetailLeftpanel.jsx new file mode 100644 index 00000000..427f0c99 --- /dev/null +++ b/src/forge/DevOps/OpsDetailLeftpanel.jsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { FlexAJ , Blueline , AlignCenter } from '../Component/layout'; +import styled from 'styled-components'; +import { Menu } from 'antd'; +import { TagsLine } from '../Component/OpsStatus'; + +const SubMenu = Menu.SubMenu; +const Img = styled.img`{ + width:25px; + height:25px; + border-radius:50%; + margin-right:10px; +}` +export default (()=>{ + return( +
+ + + + 开始时间:2020.07.10 15:30 + 运行时间:20s + + 重新创建 + +
+ + + 分支: + master + 8b3476f5 + +
+ + CI
}> + + Build setup 01 {TagsLine(1)}20s + + + + + ) +}) \ No newline at end of file diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx new file mode 100644 index 00000000..a7f0f11e --- /dev/null +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -0,0 +1,21 @@ +import React from 'react'; +import { FlexAJ , AlignCenter } from '../Component/layout'; + +export default (()=>{ + return( +
+
+ + Build setup 01 + 20 + +
+
+ +
+
+ +
+
+ ) +}) \ No newline at end of file diff --git a/src/forge/DevOps/Structure.jsx b/src/forge/DevOps/Structure.jsx new file mode 100644 index 00000000..dddd9845 --- /dev/null +++ b/src/forge/DevOps/Structure.jsx @@ -0,0 +1,204 @@ +import React , { useState } from 'react'; +import { FlexAJ , Blueback } from '../Component/layout'; +import { Table , Pagination } from 'antd'; +import styled from 'styled-components'; +const STATUS = [ + {name:"所有",value:"1"}, + {name:"准备中",value:"2"}, + {name:"运行中",value:"3"}, + {name:"已完成",value:"4"} +] +const LIMIT = 15; +const datasource = [ + { + status:2, + author:"caishi", + message:{ + branch:"master", + sha:"8b3476f5", + image:"https://dss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2034740944,4251903193&fm=26&gp=0.jpg", + message:"将分支“ 221063-improve-buy-ci-minutes-link”" + }, + begin:"2020-07-08", + run:"20s" + }, + { + status:1, + author:"caishi", + message:{ + branch:"master", + sha:"8b3476f5", + image:"https://dss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2034740944,4251903193&fm=26&gp=0.jpg", + message:"将分支“ 221063-improve-buy-ci-minutes-link”" + }, + begin:"2020-07-08", + run:"" + } +]; + +const Img = styled.img`{ + border-radius:50%; + margin-rigth:10px; + width:25px; + height:25px; +}` +export default (()=>{ + const [ status ,setStatus ] = useState("1"); + const [ page ,setPage ] = useState(1); + const [ total ,setTotal ] = useState(10); + + + function ChangeStatus(value){ + setStatus(value) + } + // 切换分页 + function ChangePage(page){ + setPage(page) + } + function renderStatus() { + return( +
    + { + STATUS.map((item,key)=>{ + return
  • ChangeStatus(item.value)} className={ status === item.value ? "active":""}>{item.name}
  • + }) + } +
+ ) + } + function renderStatusBtn(status){ + if(status >1 && status <=3){ + return( + 重新构建 + ) + }else{ + return( + 撤销构建 + ) + } + } + function renderTableStatus (status){ + switch (status){ + case 1: + return( + 运行中 + ); + case 2: + return ( + 未通过 + ); + case 3: + return ( + 已通过 + ); + default: + return ( + 准备中 + ); + } + } + const column = [ + { + title:'序号', + dataIndex:"No", + key:"No", + width:"8%", + render:(item,value,key)=>{ + return( + #{key+1} + ) + } + }, + { + title:'状态', + dataIndex:"status", + key:"status", + width:"12%", + render:(value,item,key)=>{ + return(renderTableStatus(value)) + } + }, + { + title:'构建人', + dataIndex:"author", + key:"author", + width:"12%", + align:"center" + }, + { + title:'提交信息', + dataIndex:"message", + key:"message", + width:"30%", + render:(value,item,key)=>{ + let meg = item.message; + return ( + +
+ { meg.branch && 分支{meg.branch}} + { meg.sha && {meg.sha}} +
+ + +
{meg.message}
+
+
+ ) + } + }, + { + title:'开始时间', + dataIndex:"begin", + key:"begin", + width:"15%", + render:(value,item,key)=>{ + return ( + {value || "--"} + ) + } + }, + { + title:'运行时间', + dataIndex:"run", + key:"run", + width:"15%", + render:(value,item,key)=>{ + return ( + {value || "--"} + ) + } + }, + { + title:'操作', + dataIndex:"operation", + key:"operation", + render:(value,item,key)=>{ + return(renderStatusBtn(item.status)); + } + } + ] + return( +
+ + {renderStatus()} + + 手动创建 + 分支 + 标签 + + +
+ { + total > LIMIT ? +
+ +
:"" + } +
+ ) +}) \ No newline at end of file diff --git a/src/forge/DevOps/ops.scss b/src/forge/DevOps/ops.scss new file mode 100644 index 00000000..b9dcafcc --- /dev/null +++ b/src/forge/DevOps/ops.scss @@ -0,0 +1,267 @@ +.opsPanel +{ + margin:20px auto; + width: 1200px; + // 开始激活页面 + .activatePanel{ + display: flex; + flex-direction: column; + align-items: center; + padding:60px 0px; + } + .disposePanel{ + .language{ + display: flex; + li{ + margin-right: 20px; + } + } + .editorBody{ + border:1px solid #ddd; + margin:20px 0px; + .editorHead{ + background-color: #F1F8FF; + height: 48px; + line-height: 48px; + display: flex; + justify-content: space-between; + padding:0px 20px; + border-bottom: 1px solid #ddd; + } + .monaco-editor{ + width:1138px!important; + } + } + .ant-modal-close{ + top:7px; + } + .listPart{ + .listNav{ + display: flex; + li{ + background-color: #fafafa; + border:1px solid #eee; + border-radius: 5px; + height: 38px; + line-height:38px; + padding:0px 20px; + color: #333; + margin-right: 20px; + cursor: pointer; + &:last-child{ + margin-right: 0px; + } + &.active{ + border:1px solid #5091FF; + color: #5091FF; + background-color: #fff; + } + } + } + .normalTable{ + margin-top: 20px; + .ant-table-thead > tr > th, .ant-table-tbody > tr > td{ + padding:10px 5px; + color:#333; + } + .ant-table-thead{ + border:1px solid rgba(238,238,238,1) + } + } + } + } + // 列表 + .listPart{ + .statusTag{ + display: flex; + padding:0px 16px; + height: 32px; + line-height: 32px; + border-radius:20px; + float: left; + i{ + font-size: 20px!important; + margin-right: 7px; + } + &.running{ + background:#F1F8FF; + border:1px solid #5091FF; + color: #5091FF; + } + &.Preparing{ + background:rgba(255,248,244,1); + border:1px solid rgba(255,110,33,1); + color:rgba(255,110,33,1) ; + } + &.pass{ + background:#EEFDF5; + border:1px solid #28BD6C; + color:#28BD6C ; + } + &.failed{ + background:#FCEEEE; + border:1px solid #F73030; + color:#F73030 ; + } + } + + } + +} +// ops详情 +.opsDetailPanel{ + height: 100vh; + background-color: #114879; + .opsInfos{ + height: 60px; + background-color: #114879; + color:#fff; + padding:0px 20px; + } + .opsSection{ + height:calc( 100% - 60px ); + background-color: #fff; + display: flex; + section{ + height: 100%; + float: left; + &.leftSection{ + width:100%; + .leftheader{ + background-color: #F1F8FF; + padding:10px 20px; + .nest{ + color: #888888; + margin-right: 18px; + &>span{ + color: #333; + } + } + } + .leftMainContent{ + padding:14px 20px; + .contentBranch{ + border:1px solid #eee; + background-color: #fafafa; + padding:0px 18px; + height: 40px; + border-radius: 3px; + color:#888; + i{ + font-size: 16px; + color:#BBB; + margin-right: 10px; + } + .branchname{ + color:#333; + margin-right: 15px; + } + .branchsha{ + color:#FF6E21; + } + } + } + .leftMenu{ + li.ant-menu-item,.ant-menu-submenu{ + padding:0px 13px 0px 20px!important; + position: relative; + color: #333; + } + .ant-menu-submenu-title{ + margin:0px; + padding:0px 0px 0px 20px!important + } + .ant-menu-submenu-arrow{ + position: absolute; + left: 2px; + } + .ant-menu.ant-menu-sub{ + .ant-menu-item:hover{ + background-color: #F1F8FF; + } + } + } + .statuslineColor{ + display: inline-block; + height: 20px; + line-height: 20px; + padding:0px 10px; + border-radius: 11px; + font-size: 12px; + margin-left: 6px; + &.pass{ + border:1px solid rgba(40,189,108,1); + color:rgba(40,189,108,1); + } + &.failed{ + border:1px solid #F73030; + color:#F73030; + } + &.running{ + border:1px solid #5091FF; + color:#5091FF; + } + &.Preparing{ + border:1px solid rgba(255,110,33,1); + color:rgba(255,110,33,1); + } + } + } + &.rightSection{ + width:100%; + background-color: #081930; + .rightMainContent{ + padding:24px 30px; + & > div{ + margin-bottom: 12px; + .items{ + height: 45px; + line-height: 45px; + padding:0px 24px; + background:rgba(24,41,62,1); + border-radius:5px; + color:#fff; + cursor: pointer; + i{ + font-size: 13px; + margin-left: 10px; + } + } + } + } + } + } + .Resizer.vertical{ + position: relative; + } + .Resizer.vertical:hover:before{ + background: #eee; + } + .Resizer.vertical:before { + content: ""; + border-radius: 50%; + background: hsla(0,0%,92.2%,.3); + width: 24px; + height: 24px; + position: absolute; + z-index: 999; + top: 50%; + margin-top: -12px; + right: -12px; + } + .Resizer.vertical::after{ + position: absolute; + content: "\e712"; + font-family: iconfont; + font-size: 10px; + transform: scale(.8); + top: 50%; + margin-top: -10px; + color: #666; + right: -12px; + opacity: .3; + z-index: 1000; + cursor: col-resize; + } + } +} \ No newline at end of file diff --git a/src/forge/DevOps/opsDetail.jsx b/src/forge/DevOps/opsDetail.jsx new file mode 100644 index 00000000..efb6f846 --- /dev/null +++ b/src/forge/DevOps/opsDetail.jsx @@ -0,0 +1,33 @@ +import React from 'react'; +import './ops.scss'; +import { FlexAJ, AlignCenter } from '../Component/layout'; +import { Tags } from '../Component/OpsStatus'; +import SplitPane from 'react-split-pane'; +import LeftPanel from './OpsDetailLeftpanel'; +import RightPanel from './OpsDetailRightpanel'; + + +export default (()=>{ + return( +
+ + + #1 + 将分支“221063-improve-buy-ci-minutes-link”合并到“221063-improve-buy-ci-minutes-link" + {Tags(1)} + + 退出 + +
+ +
+ +
+
+ +
+
+
+
+ ) +}); \ No newline at end of file diff --git a/src/forge/GetData/getData.jsx b/src/forge/GetData/getData.jsx index 75e661f8..e0474a33 100644 --- a/src/forge/GetData/getData.jsx +++ b/src/forge/GetData/getData.jsx @@ -1,9 +1,13 @@ import axios from 'axios'; - +// 获取分支列表 export const getBranch = async (id)=>{ return (await axios.get(`/projects/${id}/branches.json`)).data; } - +// 获取标签列表 export const getTag = async (id)=>{ return (await axios.get(`/repositories/${id}/tags.json`)).data; +} +// 获取hooks(仓库设置-管理web钩子)列表 +export const getHooks = async (id,params)=>{ + return (await axios.get(`/projects/${id}/hooks.json`,{params})).data; } \ No newline at end of file diff --git a/src/forge/Images/activate.png b/src/forge/Images/activate.png new file mode 100644 index 00000000..25c12227 Binary files /dev/null and b/src/forge/Images/activate.png differ diff --git a/src/forge/Images/docker.png b/src/forge/Images/docker.png new file mode 100644 index 00000000..28975cfb Binary files /dev/null and b/src/forge/Images/docker.png differ diff --git a/src/forge/Images/gradle.png b/src/forge/Images/gradle.png new file mode 100644 index 00000000..e39a041b Binary files /dev/null and b/src/forge/Images/gradle.png differ diff --git a/src/forge/Images/handbook.png b/src/forge/Images/handbook.png new file mode 100644 index 00000000..93903a6d Binary files /dev/null and b/src/forge/Images/handbook.png differ diff --git a/src/forge/Images/java.png b/src/forge/Images/java.png new file mode 100644 index 00000000..2711832a Binary files /dev/null and b/src/forge/Images/java.png differ diff --git a/src/forge/Images/js.png b/src/forge/Images/js.png new file mode 100644 index 00000000..4471dbec Binary files /dev/null and b/src/forge/Images/js.png differ diff --git a/src/forge/Images/php.png b/src/forge/Images/php.png new file mode 100644 index 00000000..8c33aed3 Binary files /dev/null and b/src/forge/Images/php.png differ diff --git a/src/forge/Images/python.png b/src/forge/Images/python.png new file mode 100644 index 00000000..87da5706 Binary files /dev/null and b/src/forge/Images/python.png differ diff --git a/src/forge/Index.js b/src/forge/Index.js index 9c4a90c5..20eabd5c 100644 --- a/src/forge/Index.js +++ b/src/forge/Index.js @@ -6,15 +6,15 @@ import { withRouter } from "react-router"; import { SnackbarHOC } from "educoder"; import { CNotificationHOC } from "../modules/courses/common/CNotificationHOC"; import { TPMIndexHOC } from "../modules/tpm/TPMIndexHOC"; - -import "./css/index.css"; +import Handbook from './Component/Handbook'; +import "./css/index.scss"; import Loadable from "react-loadable"; import Loading from "../Loading"; import { ImageLayerOfCommentHOC } from "../modules/page/layers/ImageLayerOfCommentHOC"; const ProjectNew = Loadable({ - loader: () => import("./New/Index"), + loader: () => import("./New/Index"), loading: Loading, }); const ProjectIndex = Loadable({ @@ -27,42 +27,47 @@ const ProjectDetail = Loadable({ loading: Loading, }); +const Infos = Loadable({ + loader: () => import("./users/Infos"), + loading: Loading, +}); class Index extends Component { + render() { return (
+ ( - + )} > ( - + )} > ( - + )} > ( - + this.props.current_user && this.props.current_user.login ? + + : + )} - /> + >
); diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index 9452eaba..7eb4fe7d 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -1,8 +1,9 @@ import React , { Component } from 'react'; -import { Spin } from 'antd'; +import { Spin , Pagination } from 'antd'; import { getImageUrl } from 'educoder'; import { truncateCommitId } from '../common/util' import SelectBranch from '../Branch/Select'; +import Nodata from '../Nodata'; import axios from 'axios'; import {Link} from "react-router-dom"; @@ -12,23 +13,26 @@ class CoderRootCommit extends Component{ super(props) this.state={ branch:"master", - data:undefined, + commitDatas:undefined, dataCount:undefined, - limit:50, + limit:20, page:1, - isSpin:false + isSpining:false } } componentDidMount=()=>{ const { branch , page , limit } = this.state; this.setState({ - isSpin:true + isSpining:true }) this.getCommitList( branch , page , limit ); } getCommitList=(branch , page , limit)=>{ + this.setState({ + isSpining:true + }) const { projectsId } = this.props.match.params; const url = `/repositories/${projectsId}/commits.json`; axios.get(url,{ @@ -38,9 +42,12 @@ class CoderRootCommit extends Component{ limit } }).then((result)=>{ - if(result){ + if(result && result.data){ + this.setState({ + isSpining:false + }) const array = []; - result.data && result.data.commits.length > 0 && result.data.commits.map((item,key)=>{ + result.data.commits && result.data.commits.length > 0 && result.data.commits.map((item,key)=>{ array.push({ name:item.author && item.author.name, login: item.author && item.author.login, @@ -51,9 +58,9 @@ class CoderRootCommit extends Component{ }) }) this.setState({ - data:array, + commitDatas:array, dataCount:result.data.total_count, - isSpin:false + isSpining:false }) } }).catch((error)=>{console.log(error)}) @@ -62,42 +69,28 @@ class CoderRootCommit extends Component{ // 切换分支 search:tag为根据标签搜索 changeBranch=(value)=>{ const { page , limit } = this.state; + const { getTopCount } = this.props; this.setState({ - isSpin:true, + isSpining:true, branch:value, }) this.getCommitList(value , page , limit); + getTopCount && getTopCount(value); } ChangePage=(page)=>{ + const { branch , limit } = this.state; this.getCommitList(branch , page , limit); } - render(){ - const { branch , data , dataCount , limit , page , isSpin } = this.state; - const { branchs , projectDetail } = this.props; + const { branch , commitDatas , dataCount , limit , page , isSpining } = this.state; + const { branchs , projectDetail, commit_class } = this.props; const { projectsId } = this.props.match.params; - const title =()=>{ - return( -
- {dataCount}次提交代码({branch}) -
- ) - } - const Pagination =()=> { - if(dataCount > limit){ - return( -
- -
- ) - } - } return( -
+
- +
- {title()} +
+ {dataCount}次提交代码({branch}) +
{ - data && data.length > 0 && data.map((item,key)=>{ + commitDatas && commitDatas.length > 0 ? commitDatas.map((item,k)=>{ return( -
-

+

+

{truncateCommitId(`${item.sha}`)} {item.message} - {/* 浏览代码 */}

{item.image_url?:""} -

+

) - }) + }): }
- { Pagination() } + { + dataCount > limit ? +
+ +
+ :"" + }
diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index a67b0689..75234365 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -42,7 +42,9 @@ class CoderRootDirectory extends Component { readOnly: true, zip_url:undefined, tar_url:undefined, - chooseType:undefined + chooseType:undefined, + + md:false } } changeAddress = (address) => { @@ -90,6 +92,9 @@ class CoderRootDirectory extends Component { // 页面地址返回到主目录 returnMain = (branch) => { const { projectsId } = this.props.match.params; + this.setState({ + readOnly:true + }) this.props.history.push(`/projects/${projectsId}/coders`); this.getProjectRoot(branch); }; @@ -114,11 +119,9 @@ class CoderRootDirectory extends Component { isSpin: false, branchLastCommit: last_commit && last_commit.commit, lastCommitAuthor: - last_commit && - (last_commit.author || - (last_commit.commit && last_commit.commit.author)), + last_commit && (last_commit.author || (last_commit.commit && last_commit.commit.author)), zip_url: result.data.zip_url, - tar_url: result.data.tar_url, + tar_url: result.data.tar_url }); if (entries && entries.length > 0) { this.renderData(entries); @@ -138,6 +141,7 @@ class CoderRootDirectory extends Component { this.props.history.push(`/projects/${projectsId}/coders?url=${arr.path}`); this.setState({ readOnly: readOnly, + chooseType:"file" }); }; @@ -231,7 +235,7 @@ class CoderRootDirectory extends Component { message: item.commit && item.commit.message, ...item, }); - if (item.name === "README.md") { + if (item.is_readme_file) { readMeContent.push({ ...item }); readMeFile.push({ ...item }); } @@ -244,12 +248,21 @@ class CoderRootDirectory extends Component { }; // 点击跳转到子目录 - goToSubRoot=(path,type)=>{ + goToSubRoot=(path,type,filename)=>{ this.setState({ chooseType:type }) const { projectsId } = this.props.match.params; this.props.history.push(`/projects/${projectsId}/coders?url=${path}`); + if(filename.substring(filename.length - 3) === ".md"){ + this.setState({ + md:true + }) + }else{ + this.setState({ + md:false + }) + } }; // readme文件内容 @@ -263,7 +276,7 @@ class CoderRootDirectory extends Component {
- + {readMeContent[0].name} @@ -273,7 +286,7 @@ class CoderRootDirectory extends Component { onClick={() => this.ChangeFile(readMeFile[0], false)} className="ml20 pull-right" > - + ) : ( "" @@ -299,7 +312,11 @@ class CoderRootDirectory extends Component { this.setState({ branch: value, isSpin: true, + readOnly:true }); + const { getTopCount } = this.props; + getTopCount && getTopCount(value); + let { search } = this.props.history.location; if (search && search.indexOf("?url=") > -1) { let url = search.split("?url=")[1]; @@ -315,101 +332,21 @@ class CoderRootDirectory extends Component { // 子目录路径返回链接 returnUlr=(url)=>{ this.setState({ - chooseType:"dir" + chooseType:"dir", + readOnly:true }) const { projectsId } = this.props.match.params; this.props.history.push(`/projects/${projectsId}/coders?url=${url}`); } - render(){ - const { branchLastCommit , lastCommitAuthor , rootList , branch ,filePath , fileDetail , subFileType , readMeContent, isSpin , zip_url , tar_url} = this.state; - const { isManager , isDeveloper , projectDetail } = this.props; - const { projectsId } = this.props.match.params; - const columns = [ - { - dataIndex: 'name', - width:"30%", - render: (text,item) => ( - this.goToSubRoot(item.path,item.type)} className="ml12"> - {text} - - ), - }, - { - dataIndex: "commit", - width: "60%", - render: (text, item) => - item.commit && item.commit.message ? ( - - {item.commit.message} - - ) : ( - "" - ), - }, - { - dataIndex: "commit", - width: "10%", - className: "edu-txt-right", - render: (text, item) => - item.commit && item.commit.time_from_now ? ( - - {item.commit.time_from_now} - - ) : ( - "" - ), - }, - ]; - const title = () => { - if (branchLastCommit) { - return ( -
- {lastCommitAuthor ? ( - - {lastCommitAuthor.login ? ( - - - {lastCommitAuthor.name} - - ) : ( - {lastCommitAuthor.name} - )} - - ) : ( - "" - )} - - {branchLastCommit.message} - - {branchLastCommit.time_from_now} - - {truncateCommitId(branchLastCommit.sha)} - -
- ); - } else { - return undefined; - } - }; + onEdit=(readOnly)=>{ + this.setState({ + readOnly + }) + } - const downloadUrl = () => ( + downloadUrl = (zip_url,tar_url) => { + return( {zip_url && ( @@ -422,7 +359,88 @@ class CoderRootDirectory extends Component { )} - ); + ) + } + + title = (branchLastCommit,lastCommitAuthor) => { + console.log(branchLastCommit) + if (branchLastCommit) { + return ( +
+ {lastCommitAuthor ? ( + + {lastCommitAuthor.login ? ( + + + {lastCommitAuthor.name} + + ) : ( + {lastCommitAuthor.name} + )} + + ) : ( + "" + )} + + {branchLastCommit.message} + + {branchLastCommit.time_from_now} + + {truncateCommitId(branchLastCommit.sha)} + +
+ ); + }else{ + return false; + } + } + + render(){ + const { branchLastCommit , lastCommitAuthor , rootList , branch ,filePath , fileDetail , subFileType , readMeContent, isSpin , zip_url , tar_url} = this.state; + const { isManager , isDeveloper , projectDetail } = this.props; + const { projectsId } = this.props.match.params; + + const columns = [ + { + dataIndex: 'name', + width:"30%", + render: (text,item) => ( + this.goToSubRoot(item.path,item.type,text)} className="ml12 task-hide" style={{ display: "block", maxWidth: "345px" }}> + {text} + + ), + }, + { + dataIndex: "commit", + width: "60%", + render: (text, item) => + item.commit && item.commit.message ? + + {item.commit.message} + + : "" + }, + { + dataIndex: "commit", + width: "10%", + className: "edu-txt-right", + render: (text, item) => + item.commit && item.commit.time_from_now ? + + {item.commit.time_from_now} + + :"" + }, + ]; const urlRoot = filePath === undefined ? "" : `/${filePath}`; let array = filePath && filePath.split("/"); @@ -431,11 +449,11 @@ class CoderRootDirectory extends Component {
- {filePath && ( @@ -463,7 +481,7 @@ class CoderRootDirectory extends Component { )}
- {subFileType && (isManager || isDeveloper) && ( + {subFileType && (projectDetail && parseInt(projectDetail.type)) !== 2 && (isManager || isDeveloper) && (
)} @@ -495,7 +513,7 @@ class CoderRootDirectory extends Component { title()} + title={() => this.title(branchLastCommit,lastCommitAuthor)} > )} {/* 子目录列表、文件 */} @@ -505,6 +523,7 @@ class CoderRootDirectory extends Component { {...this.props} {...this.state} readOnly={this.state.readOnly} + onEdit={this.onEdit} > )} {/* readme.txt (isManager || isDeveloper)*/} diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index abc47bb5..1ba64db0 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -1,8 +1,11 @@ import React, { Component } from "react"; -import { Popconfirm, Select } from "antd"; +import { Popconfirm, Select } from "antd"; import "./list.css"; import axios from "axios"; import Meditor from "../Newfile/m_editor"; +import MDEditor from "../../modules/tpm/challengesnew/tpm-md-editor"; +import RenderHtml from "../../components/render-html"; + function bytesToSize(bytes) { if (bytes === 0) return "0 B"; @@ -15,34 +18,98 @@ class CoderRootFileDetail extends Component { constructor(props) { super(props); this.state = { - readOnly: true, value: undefined, - language: undefined + language: undefined, + languages: undefined, + description:props.detail.content }; } componentDidMount = () => { - const { detail, readOnly } = this.props; - + const { detail } = this.props; this.setState({ value: detail.content, - readOnly: readOnly, }); + this.languages_total(); }; + + languages_total = () => { + const { detail } = this.props; + const file_name = detail.path.split("/").pop().split(".").pop(); + let languages = []; + let default_language = "javascript"; + let all_languages = { + apex: ["apex", "apxc"], + azcli: ["azcli"], + bat: ["bat"], + clojure: ["clj"], + coffee: ["coffee"], + cpp: ["cpp"], + csharp: ["cs"], + csp: ["csp"], + css: ["css"], + dockerfile: ["dockerfile", "docker", "yml"], + fsharp: ["fs"], + go: ["go"], + html: ["html", "htm", "erb"], + ini: ["ini"], + java: ["java", "class"], + javascript: ["js"], + json: ["json"], + less: ["less"], + lua: ["lua"], + markdown: ["markdown", "md", "rmd"], + msdax: ["dax"], + mysql: ["sql"], + objective: ["m", "mm", "o", "out"], + perl: ["perl"], + pgsql: ["sql"], + php: ["php"], + postiats: ["postiats"], + powerquery: [""], + powershell: ["ps1"], + pug: ["pug"], + python: ["py"], + r: ["r"], + razor: ["cshtml"], + redis: ["rdb"], + ruby: ["rb"], + rust: ["rs"], + sb: ["sb"], + scheme: ["scm", "ss"], + scss: ["scss"], + shell: ["sh"], + solidity: ["sol"], + sql: ["sql"], + st: ["st"], + swift: ["swift"], + typescript: ["ts"], + vb: ["vbp", "frm", "frx", "bas", "cls"], + xml: ["xml"], + yaml: ["yml"], + }; + for (var item in all_languages) { + languages.push(item); + let item_values = all_languages[item]; + if (item_values.indexOf(file_name) !== -1) { + default_language = item; + } + } + this.state.languages = languages; + this.state.language = default_language; + }; + select_language = (e) => { this.setState({ language: e, }); }; - EditFile = () => { - this.setState({ - readOnly: false, - }); - }; - CancelEdit = () => { - this.setState({ - readOnly: true, - }); + EditFile = (flag) => { + const { onEdit } = this.props; + onEdit && onEdit(flag); + // this.setState({ + // readOnly: false, + // }); }; // 编辑文件 @@ -77,81 +144,44 @@ class CoderRootFileDetail extends Component { }); }; - updateCode = (value) => { this.setState({ value, }); }; + onContentChange = (value) => { + this.setState({ + description: value, + }); + }; + render() { - const { detail, current_user, isManager, isDeveloper } = this.props; - const { readOnly, language } = this.state; + const { + readOnly, + detail, + current_user, + isManager, + isDeveloper, + md + } = this.props; + const { language, languages , description } = this.state; let flag = current_user && current_user.login && (isManager || isDeveloper); const Option = Select.Option; - const languages = [ - "apex", - "azcli", - "bat", - "clojure", - "coffee", - "cpp", - "csharp", - "csp", - "css", - "dockerfile", - "fsharp", - "go", - "handlebars", - "html", - "ini", - "java", - "javascript", - "json", - "less", - "lua", - "markdown", - "msdax", - "mysql", - "objective", - "perl", - "pgsql", - "php", - "postiats", - "powerquery", - "powershell", - "pug", - "python", - "r", - "razor", - "redis", - "redshift", - "ruby", - "rust", - "sb", - "scheme", - "scss", - "shell", - "solidity", - "sql", - "st", - "swift", - "typescript", - "vb", - "xml", - "yaml", - ]; + return (
- {bytesToSize(detail && detail.size)} + + {bytesToSize(detail && detail.size)} +

{flag && (

{readOnly ? ( - + this.EditFile(false)} className="ml20"> ) : ( @@ -164,14 +194,19 @@ class CoderRootFileDetail extends Component { onChange={this.select_language} > - {languages.map((item, key) => { - return ; - })} + {languages && + languages.map((item, key) => { + return ( + + ); + })} @@ -191,22 +226,29 @@ class CoderRootFileDetail extends Component {
)} - { - detail.image_type && detail.direct_download ? - :"" - }

- {detail.image_type && detail.direct_download ? ( + {detail.image_type ? (
- + +
+ ) : detail.direct_download ? ( + ) : ( + md && readOnly ? +
+ +
+ : import('../Newfile/Index'), + loading: Loading, +}) +const UploadFile = Loadable({ + loader: () => import('../Newfile/upload_file'), + loading: Loading, +}) const CoderRootDirectory = Loadable({ loader: () => import('./CoderRootDirectory'), loading: Loading, @@ -40,58 +47,102 @@ const Diff = Loadable({ }) class CoderRootIndex extends Component{ - + constructor(props){ + super(props); + this.state={ + coderCount:undefined + } + } + + componentDidMount=()=>{ + let { search } = this.props.history.location; + let branchName = undefined; + if (search && search.indexOf("?branch=") > -1) { + branchName = search.split("?branch=")[1]; + } + this.getTopCount(branchName); + } + + getTopCount=(branch)=>{ + const { projectsId } = this.props.match.params; + const url = `/repositories/${projectsId}/top_counts.json`; + axios.get(url,{params:{ + ref:branch + }}).then(result=>{ + if(result){ + this.setState({ + coderCount:result.data + }) + } + }).catch(error=>{console.log(error);}) + } render(){ return(
+ {/* 新建文件 */} + () + } + > + () + } + > + () + } + > () + () => () } > {/* diff */} () + () => () } > () + () => () } > () + () => () } > - + () + () => () } > () + () => () } > () + () => () } > () + () => () } > () + () => () } > @@ -99,4 +150,4 @@ class CoderRootIndex extends Component{ ) } } -export default CoderRootIndex; \ No newline at end of file +export default CoderRootIndex; diff --git a/src/forge/Main/CoderRootTag.js b/src/forge/Main/CoderRootTag.js index 583d1d28..e015310f 100644 --- a/src/forge/Main/CoderRootTag.js +++ b/src/forge/Main/CoderRootTag.js @@ -35,7 +35,6 @@ export default ({
  • 标签名 - {/* 描述 */} 提交信息 下载
  • @@ -49,10 +48,8 @@ export default ({ {item.name} - {/* 坎坎坷坷死二无一额坎坎坷坷死二无一额坎坎坷坷死二无一额 */} {truncateCommitId(`${item.id}`)} - {/* 2020-05-18 16:30 */} TAR diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index c37b1d92..88f20638 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -1,8 +1,8 @@ import React, { Component } from 'react'; import { Spin, Tooltip } from 'antd'; -import { Link, Route, Switch, withRouter } from 'react-router-dom'; - -import '../css/index.css' +import { Link, Route, Switch } from 'react-router-dom'; +import { Content } from '../Component/layout'; +import '../css/index.scss' import './list.css'; import Loadable from 'react-loadable'; @@ -21,14 +21,6 @@ import img_parised from '../Images/parised.png'; import img_focused from '../Images/focused.png'; import img_fork from '../Images/fork.png'; import img_milepost from '../Images/milepost.png'; -const FileNew = Loadable({ - loader: () => import('../Newfile/Index'), - loading: Loading, -}) -const UploadFile = Loadable({ - loader: () => import('../Newfile/upload_file'), - loading: Loading, -}) const Setting = Loadable({ loader: () => import('../Settings/Index'), loading: Loading, @@ -94,21 +86,26 @@ const MessageCount = Loadable({ loading: Loading, }) +const UpdateMerge = Loadable({ + loader: () => import('../Merge/UpdateMerge'), + loading: Loading, +}) + const MilepostDetail = Loadable({ loader: () => import('../Order/MilepostDetail'), loading: Loading, }) const WatchUsers = Loadable({ - loader: () => import('../UsersList/watch_users'), - loading: Loading, + loader: () => import('../UsersList/watch_users'), + loading: Loading, }) const PraiseUsers = Loadable({ - loader: () => import('../UsersList/praise_users'), - loading: Loading, + loader: () => import('../UsersList/praise_users'), + loading: Loading, }) const ForkUsers = Loadable({ - loader: () => import('../UsersList/fork_users'), - loading: Loading, + loader: () => import('../UsersList/fork_users'), + loading: Loading, }) @@ -117,6 +114,10 @@ const TrendsIndex = Loadable({ loading: Loading, }) +const DevIndex = Loadable({ + loader: () => import('../DevOps/Index'), + loading: Loading, +}) /** * permission:Manager:管理员,Reporter:报告人员(只有读取权限),Developer:开发人员(除不能设置仓库信息外) */ @@ -125,7 +126,6 @@ class Detail extends Component { constructor(props) { super(props); this.state = { - isSpin: true, projectDetail: undefined, isManager: false, isReporter: false, @@ -140,19 +140,78 @@ class Detail extends Component { author: undefined, branchs: undefined, branchList: undefined, + project: null, + firstSync:false, + secondSync:false, } } componentDidMount = () => { - this.getDetail(); + this.getProject(); } componentDidUpdate = (prevState) => { if ((prevState.match.params.projectsId !== this.props.match.params.projectsId)) { - this.getDetail(); + this.getProject(); } } + getProject = (num) => { + const { projectsId } = this.props.match.params; + const url = `/projects/${projectsId}/simple.json`; + axios.get(url).then((result) => { + if (result && result.data) { + this.setState({ + project: result.data + }) + if (result.data.type !== 0 && result.data.mirror_status === 1) { + console.log("--------start channel --------"); + // 是镜像项目,且未完成迁移 + this.canvasChannel(); + if(num){ + this.setState({ + secondSync:true, + firsrtSync:false + }) + }else{ + this.setState({ + firstSync:true, + secondSync:false + }) + } + }else{ + this.getDetail(); + this.setState({ + firsrtSync:false, + secondSync:false + }) + } + } + }) + } + canvasChannel = () => { + const name = window.location.hostname === "localhost" ? "testforgeplus.trustie.net" : window.location.hostname; + const actioncable = require("actioncable"); + var project = this.state.project; + var cable = actioncable.createConsumer(`wss://${name}/cable`); + this.canvasChannel1 = cable.subscriptions.create({ + channel: `MirrorProjectChannel`, + id: project && project.identifier + }, { + connected: () => { + console.log("###### channel connected! ######"); + }, + disconnected: () => { }, + received: data => { + console.log(`###### ---received data--- ######`); + console.log(data); + if (data) { + this.getDetail(); + cable.subscriptions.consumer.disconnect(); + } + } + }) + } getDetail = () => { const { projectsId } = this.props.match.params; @@ -172,7 +231,6 @@ class Detail extends Component { watchers_count: result.data.watchers_count, praises_count: result.data.praises_count, forked_count: result.data.forked_count, - isSpin:false }) } }).catch((error) => { }) @@ -181,23 +239,23 @@ class Detail extends Component { // 关注和取消关注 focusFunc = (flag) => { const { project_id } = this.state; - - axios({ - method: flag? 'delete' : 'post', - url: `/watchers/${flag? 'unfollow' : 'follow'}.json`, + + axios({ + method: flag ? 'delete' : 'post', + url: `/watchers/${flag ? 'unfollow' : 'follow'}.json`, params: { target_type: "project", id: project_id } - }) - .then(result => { - if(result && result.data.status === 0){ - this.setWatchersCount(result.data.watchers_count, result.data.watched); - } - }) - .catch(error => { - console.log(error); - }); + }) + .then(result => { + if (result && result.data.status === 0) { + this.setWatchersCount(result.data.watchers_count, result.data.watched); + } + }) + .catch(error => { + console.log(error); + }); } // 点赞和取消点赞 @@ -233,13 +291,6 @@ class Detail extends Component { // fork项目 forkFunc = () => { - // if (!checkIfLogin) { - // this.props.showLoginDialog(); - // return; - // } - this.setState({ - isSpin: true - }) const { project_id } = this.state; const url = `/projects/${project_id}/forks.json`; axios.post(url).then(result => { @@ -247,61 +298,29 @@ class Detail extends Component { this.props.history.push(`/projects/${result.data.id}/coders`); this.props.showNotification(result.data.message); } - this.setState({ - isSpin: false - }) }).catch(error => { - this.setState({ - isSpin: false - }) console.log(error); }) } - // 获取分支列表 - getBranch = (id) => { - const url = `/projects/${id}/branches.json`; - axios.get(url).then((result) => { - if (result && result.data.length > 0) { - const branchs = []; - result.data.map((item, key) => { - branchs.push({ - index: key, - name: item.name - }) - }) - this.setState({ - branchList: result.data, - branchs, - }) - } - }).catch((error) => { }) - } + // 同步镜像 - synchronismMirror=()=>{ + synchronismMirror = () => { const { repo_id } = this.state.projectDetail; - this.setState({ - isSpin:true - }) - const url = `/repositories/${repo_id}/sync_mirror.json`; - axios.post(url).then(result=>{ - if(result && result.data && result.data.status === 0){ - this.props.showNotification("镜像同步成功!"); - this.getDetail(); - }else{ + const url = `/repositories/${repo_id}/sync_mirror.json`; + axios.post(url).then(result => { + if (result && result.data && result.data.status === 0) { + this.getProject(2); + } else { this.props.showNotification("镜像同步失败!"); - this.setState({ - isSpin:false - }) } - - }).catch(error=>{ + }).catch(error => { console.log(error); }) } render() { - const { projectDetail, watchers_count, praises_count, forked_count, isSpin, isManager, watched, praised } = this.state; + const { projectDetail, watchers_count, praises_count, forked_count, firstSync , secondSync , isManager, watched, praised, project } = this.state; const url = this.props.history.location.pathname; const urlArr = url.split("/"); const urlFlag = (urlArr.length === 3); @@ -321,58 +340,58 @@ class Detail extends Component { : "" ); - const mirror = ( - - 镜像自 - {projectDetail && projectDetail.mirror_url} - - ) - const common ={ - getDetail:this.getDetail + const common = { + getDetail: this.getDetail } return (
    - -
    -
    -
    -

    - {projectDetail && projectDetail.author && - - {projectDetail.author.name} - +

    +
    +
    +

    + {project && project.author && + + {project.author.name} + + } + / + + {project && project.name} + { + projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ? + + + + + : "" } - / - - {projectDetail && projectDetail.name} - { - projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ? - - - - - : "" - } - { - projectDetail && checkLogin && projectDetail.type && projectDetail.type === 2 ? - - - :"" - } - -

    + { + projectDetail && projectDetail.type && projectDetail.type !== 0 ? + projectDetail.type === 2 ? + + + : + + + + :"" + } + +

    + { + firstSync ? "": { projectDetail && projectDetail.type && projectDetail.type === 2 ? - 同步镜像:"" + 同步镜像 : "" } this.focusFunc(watched)}> {watched ? '取消关注' : '关注'} - + {watchers_count} @@ -381,228 +400,225 @@ class Detail extends Component { {praised ? '取消点赞' : '点赞'} - + {praises_count} - + - Fork - + Fork + {forked_count} - + -
    -
    + } +
    + { + firstSync ? "" : +
    • -1 || urlFlag) ? "active" : ""}> 代码库 - { projectDetail && projectDetail.commits_count ? {projectDetail.commits_count}:""} - +
    • -
    • -1 && !(url.indexOf("Milepost") > 0 || url.indexOf("meilpost") > 0 || url.indexOf("tags") > 0)) ? "active" : ""}> +
    • -1 && !(url.indexOf("Milepost") > 0 || url.indexOf("meilpost") > 0 || url.indexOf("tags") > 0)) ? "active" : ""}> 任务 - { projectDetail && projectDetail.issues_count ? {projectDetail.issues_count} :""} - -
    • -
    • -1 ? "active" : ""}> - - 合并请求 - { projectDetail && projectDetail.pull_requests_count ? {projectDetail.issues_count} : "" } - -
    • -
    • -1 || url.indexOf("meilpost") > -1) ? "active" : ""}> - - 里程碑 - {projectDetail && projectDetail.version_count && {projectDetail.version_count}} - -
    • -
    • -1 ? "active" : ""}> - - 动态 + {projectDetail && projectDetail.issues_count ? {projectDetail.issues_count} : ""}
    • + { + projectDetail && parseInt(projectDetail.type) !== 2 && +
    • -1 ? "active" : ""}> + + 合并请求 + {projectDetail && projectDetail.pull_requests_count ? {projectDetail.pull_requests_count} : ""} + +
    • + } + {/*
    • -1 ? "active" : ""}> + + 工作流 + {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} + +
    • */} +
    • -1 || url.indexOf("meilpost") > -1) ? "active" : ""}> + + 里程碑 + {projectDetail && projectDetail.versions_count ? {projectDetail.versions_count} :""} + +
    • +
    • -1 ? "active" : ""}> + + 动态 + +
    • { isManager && -
    • 0 ? "active" : ""}>仓库设置
    • +
    • 0 ? "active" : ""}>仓库设置
    • }
    -
    -
    + }
    +
    + { + firstSync ? + + + + + : + + + {/* 工作流 */} + () + } + > + {/* 标签列表 */} + () + } + > + {/* 仓库设置 */} + () + } + > + {/* 任务详情 */} + () + } + > + {/* 里程碑 */} + () + } + > + {/* 新建里程碑 */} + () + } + > + {/*里程碑详情*/} + () + } + > + {/*修改里程碑*/} + () + } + > + {/* 里程碑页面新建任务 */} + () + } + > + {/* 新建任务 */} + () + } + > + {/* 修改详情 */} + () + } + > + {/* 复制详情 */} + () + } + > + {/* 动态 */} + () + } + > + {/* 代码Index */} + () + } + > + () + } + > + () + } + > + () + } + > + () + } + > - - {/* 新建文件 */} - () - } - > - () - } - > - () - } - > - - {/* 标签列表 */} - () - } - > - {/* 仓库设置 */} - () - } - > - {/* 任务详情 */} - () - } - > - {/* 里程碑 */} - () - } - > - {/* 新建里程碑 */} - () - } - > - {/*里程碑详情*/} - () - } - > - {/*修改里程碑*/} - () - } - > - - - {/* 里程碑页面新建任务 */} - () - } - > - {/* 新建任务 */} - () - } - > - - {/* 修改详情 */} - () - } - > - - {/* 复制详情 */} - () - } - > - - {/* 动态 */} - () - } - > - - - {/* 代码Index */} - () - } - > - - () - } - > - - () - } - > - - () - } - > - - () - } - > - - () - } - > - () - } - > - () - } - > - () - } - > - () - } - > - () - } - > - () - } - > - - + () + } + > + () + } + > + () + } + > + () + } + > + () + } + > + () + } + > + () + } + > + + + }
    ) } } -export default withRouter(Detail); +export default Detail; diff --git a/src/forge/Main/DetailTop.js b/src/forge/Main/DetailTop.js index 4d4d584f..6d2d1732 100644 --- a/src/forge/Main/DetailTop.js +++ b/src/forge/Main/DetailTop.js @@ -3,34 +3,30 @@ import { Link } from 'react-router-dom'; class DetailTop extends Component { render() { - const { projectDetail } = this.props; + const { coderCount } = this.props; const { projectsId } = this.props.match.params; const { pathname } = this.props.location; return (

    0 ? "active" : ""}> - {projectDetail && projectDetail.commits_count}个提交 + {(coderCount && coderCount.commits_count) || 0}个提交 0 ? "active" : ""}> - {projectDetail && projectDetail.branches_count}个分支 + {(coderCount && coderCount.branches_count) || 0}个分支 0 ? "active" : ""}> - {projectDetail && projectDetail.issue_tags_count}个标签 + {(coderCount && coderCount.tags_count) || 0}个标签 0 ? "active" : ""}> - {projectDetail && projectDetail.version_releasesed_count}个发行版 + {(coderCount && coderCount.version_releasesed_count) || 0}个发行版 - {/* 0 ? "active" : ""}> - - {projectDetail && projectDetail.contributor_users_count}位贡献者 - */} - 仓库 {projectDetail && projectDetail.size} + 仓库 {(coderCount && coderCount.size) || 0}

    ) diff --git a/src/forge/Main/Diff.jsx b/src/forge/Main/Diff.jsx index 639f2d30..28abe420 100644 --- a/src/forge/Main/Diff.jsx +++ b/src/forge/Main/Diff.jsx @@ -50,7 +50,7 @@ const DetailP = styled.p` `; export default ({ projectDetail, match }) => { - const [data, setData] = useState(undefined); + const [data, setData] = useState({undefined}); const [commit, setCommit] = useState(undefined); const [files, setFiles] = useState(undefined); const [parents, setParents] = useState(undefined); diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index f37179c4..dd19e925 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { Link } from 'react-router-dom'; import { Menu, Input , Spin, Pagination , Popover } from 'antd'; -import '../css/index.css' +import '../css/index.scss' import './list.css'; import ListItem from './IndexItem' import axios from 'axios'; @@ -196,7 +196,7 @@ class Index extends Component { const pagination = ( total && total > limit ? -
    +
    : "" ) diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index e803d54c..174fc6de 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -2,7 +2,7 @@ import React, { Component } from 'react'; import { Tooltip } from 'antd'; import { getImageUrl } from 'educoder'; import { Link } from 'react-router-dom'; -import '../css/index.css' +import '../css/index.scss' import './list.css'; import img_parise from '../Images/parise.png'; @@ -34,8 +34,8 @@ class IndexItem extends Component { : "" } { - item.type && item.type !==0 ? - item.type ==2? + item.type && item.type !== 0 ? + item.type === 2 ? : @@ -44,16 +44,12 @@ class IndexItem extends Component { :"" } - { - item.is_public ? "" : - 私有 - } 赞 ({item.praises_count}) fork ({item.forked_count})
    -

    {item.description}

    +

    {item.description}

    @@ -69,7 +65,7 @@ class IndexItem extends Component { }) : "" ) return ( -
    +
    {renderList}
    ) diff --git a/src/forge/Main/RootTable.js b/src/forge/Main/RootTable.js index 708f0f0b..deaacfce 100644 --- a/src/forge/Main/RootTable.js +++ b/src/forge/Main/RootTable.js @@ -11,7 +11,7 @@ class RootTable extends Component{ showHeader={false} size="small" pagination={false} - title={() => title()} + title={title} /> ) } diff --git a/src/forge/Main/list.css b/src/forge/Main/list.css index a022bb31..66146ccd 100644 --- a/src/forge/Main/list.css +++ b/src/forge/Main/list.css @@ -23,61 +23,7 @@ background: #fff; padding:10px; } -.list-l-Menu{ - margin-bottom: 12px; - border-radius:2px; - border:1px solid rgba(221,221,221,1); - background-color: #fff; -} -.list-l-Menu>li{ - font-size: 1rem; - padding:0px 0px 0px 20px; - box-sizing: border-box; - color: #333; - position: relative; -} -.list-l-Menu>li > p{ - height: 62px; - line-height: 62px; - width: 100%; - border-bottom: 1px solid #eee; - display: flex; - justify-content: space-between; - cursor: pointer; - padding-right: 20px; -} -.list-l-Menu>li:last-child > p{ - border-bottom: none; -} -.list-l-Menu li p span:last-child{ - color: #999; -} -.list-l-Menu .MenuTitle{ - font-size: 16px; - background-size: 100% 100%; - color: #333!important; - height: 62px; - line-height: 62px; - border-bottom: 1px solid #E0E0E0; - font-weight: 400; -} -.list-l-Menu > li:not(.MenuTitle):hover{ - background-color: #fafafa; -} -/* 左侧menu */ -.list-l-Menu .ant-menu-inline{ - border:none; -} -.list-l-Menu .ant-menu-inline .ant-menu-item{ - width:100%!important; -} -.list-l-Menu .ant-menu-item-group-title{ - padding:0px; -} -.list-l-Menu li.active{ - background-color: #fafafa; -} /* 首页列表的新建和排序的下拉列表 */ .ant-menu-inline, .ant-menu-vertical, .ant-menu-vertical-left{ @@ -95,16 +41,6 @@ } - -.list-l-Menu li.active::before{ - position: absolute; - left: 0px; - top: 10px; - width: 6px; - content: ''; - height: 33px; - background: #4CACFF; -} .list-r-operation{ display: flex; justify-content: space-between; @@ -137,6 +73,12 @@ .project-list{ padding:0px 30px; } +.border-top-grey{ + border-top: 1px solid rgba(238,238,238,1); +} +.p-r-Item:last-child{ + border-bottom: none !important; +} .p-r-Item{ display: flex; border-bottom:1px solid rgba(238,238,238,1); @@ -256,10 +198,15 @@ margin-top: 8px; color: #666; } - +.spincontent{ + height:400px; +} +.spinstyle .ant-spin-text{ + margin-top:30px; + color: #888; +} /* -----------详情------------ */ .detailHeader-wrapper{ - height: 125px; background:linear-gradient(82deg,rgba(82,91,215,1) 0%,rgba(34,24,171,1) 100%); } .headerMenu-wrapper{ @@ -305,6 +252,9 @@ align-items: center; margin-left: 30px } +.ant-tooltip { + max-width: fit-content!important; +} .detail_tag_btn_name{ padding:0px 10px; display: flex; @@ -325,6 +275,10 @@ /* color: #1C91FF !important; */ background: rgba(255,255,255,0.5); } +.files-md{ + border:1px solid #eee; + padding:20px; +} /* 详情-代码 */ .branch-wrapper{ border:1px solid #eee; @@ -378,6 +332,7 @@ border:1px solid #eee; background: #fff; margin-left: 20px; + position: relative; } .gitAddressClone > span{ display: flex; @@ -387,6 +342,53 @@ cursor: pointer; align-items: center; } +.addressTips{ + position: absolute; + font-size: 12px; + color: #FF6E21; + top:-34px; + left: 30px; + background-color: #fff; + border:1px solid #FE881D; + padding:0px 5px; + height: 28px; + line-height: 28px; +} +.addressTips>span{position: relative;display: block;} +.addressTips>span::before{ + box-sizing: content-box; + width: 0px; + height: 0px; + position: absolute; + top: 25px; + left:50%; + margin-left: -4px; + padding:0; + border-top:8px solid #FFFFFF; + border-bottom:8px solid transparent; + border-left:8px solid transparent; + border-right:8px solid transparent; + display: block; + content:''; + z-index: 12; +} +.addressTips>span::after{ + box-sizing: content-box; + width: 0px; + height: 0px; + position: absolute; + top: 26px; + left:50%; + margin-left: -4px; + padding:0; + border-top:8px solid #FE881D; + border-bottom:8px solid transparent; + border-left:8px solid transparent; + border-right:8px solid transparent; + display: block; + content:''; + z-index: 11; +} .gitAddressClone > span.addressType{ color: #4CACFF; } diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js index dd9eb809..74e46cd3 100644 --- a/src/forge/Merge/MergeItem.js +++ b/src/forge/Merge/MergeItem.js @@ -1,6 +1,8 @@ import React, { Component } from "react"; import { Link } from "react-router-dom"; -import { Popconfirm } from "antd"; +import { Popconfirm, Tag } from "antd"; +import { getImageUrl } from "educoder"; +import "./merge.css"; class MergeItem extends Component { constructor(props) { @@ -29,7 +31,7 @@ class MergeItem extends Component { if (issue_tags && issue_tags.length > 0) { return issue_tags.map((item, key) => { return ( - + {item.name} ); @@ -40,7 +42,7 @@ class MergeItem extends Component { }; render() { - const { issues, search_count, page, limit } = this.props; + const { issues, project_name, project_author_name } = this.props; const { projectsId } = this.props.match.params; const { current_user } = this.props; const renderList = () => { @@ -49,34 +51,82 @@ class MergeItem extends Component { return (
    -

    - - # {search_count - (key + (page - 1) * limit)} - +

    {item.name} + + {item.pull_request_staus === "merged" + ? "已合并" + : item.pull_request_staus === "closed" + ? "已拒绝" + : "开启的"} +

    -

    - {item.format_time} - 发布 - {item.updated_at === item.format_time ? ( - "" - ) : ( - - {item.updated_at} - 更新 +

    + + + + + + {item && item.author_name} + + + {item.pull_request_staus === "open" + ? "创建于" + : item.pull_request_staus === "merged" + ? "合并于" + : "更新于"} - )} + {item.pr_time} + + + + {item.is_original + ? item.fork_project_user + : project_author_name} + :{item.pull_request_head} + + + + + + + + {/* {item.is_fork ? item.pull_request_base : `${item.author_name}:${item.pull_request_base}`} */} + {project_author_name}:{item.pull_request_base} + + + +

      this.onMouseMove(item.id)} onMouseOut={() => this.onMouseOut()} > +
    • {item.priority}
    • {this.set_issue_tags(item.issue_tags)}
    • - {/*
    • {item.issue_type || "--"}
    • */} -
    • {item.version || "--"}
    • {item.assign_user_name ? ( +
    • {item.version || "--"}
    • +
    • -
      +
      {item.journals_count ? ( - + {item.journals_count} ) : ( diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index 4b0e335a..7a84d2e3 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -6,22 +6,19 @@ import { getImageUrl } from "educoder"; import { Form, Input, - Pagination, Spin, Dropdown, Icon, Menu, Select, Tag, + Button, + Alert, } from "antd"; -import Attachments from "../Upload/attachment"; import "./merge.css"; -import MergeSubmit from "./MergeSubmit"; -import AmplifyImg from "../Order/AmplifyImg"; -// import MDEditor from "../../modules/tpm/challengesnew/tpm-md-editor"; import RenderHtml from "../../components/render-html"; -import Comments from "../comments/comments"; import "../Order/order.css"; +import MergeFooter from "./merge_footer"; const Option = Select.Option; const TextArea = Input.TextArea; @@ -31,50 +28,21 @@ class MessageCount extends Component { super(props); this.state = { data: undefined, - isShow: false, - imgsrc: "", - journalsdata: undefined, - //图片区域是否显示 none 隐藏 block 显示 - display: "none", - titledisplay: "none", - countvalue: "", - //是否需要编辑 - isedit: undefined, - fileList: undefined, - limit: 10, - page: 1, - search_count: undefined, isSpin: false, - showFiles: true, - ismesrge: "none", + ismesrge: false, buttonshow: "none", mergename: "合并请求", mergekey: "merge", title: "", body: "", - commentsContent: undefined, - quillFlag: false, SpinFlag: true, - editMerge: false, - issue_tag_ids: undefined, - issue_chosen: undefined, - fixed_version_id: undefined, - assigned_to_id: undefined, - imageUrl: undefined, - visible: false, SpinMerge: false, - journal_spin: false, edit_spin: false, + pr_status: undefined, }; } componentDidMount = () => { - const url = this.props.history.location.pathname; - if (url.indexOf("updatemerge") > -1) { - this.setState({ - editMerge: true, - }); - } this.setState({ SpinFlag: true, }); @@ -91,8 +59,10 @@ class MessageCount extends Component { this.setState({ data: result.data, SpinFlag: false, + pr_status: result.data.pull_request.status, }); - // this.getjournalslist(); + } else { + this.setState({ SpinFlag: false }); } }) .catch((error) => { @@ -103,121 +73,29 @@ class MessageCount extends Component { }); }; - handleok = () => { - this.setState({ - isShow: false, - }); - }; - handleCancel = () => { - this.setState({ - isShow: false, - }); - }; - - imgshow = () => { - this.setState({ - isShow: true, - }); - }; - - //添加评论 - // addjournals = () => { - // const { data, page, limit, fileList, commentsContent } = this.state; - // this.setState({ - // journal_spin: true, - // }); - // if (!commentsContent) { - // this.setState({ - // quillFlag: true, - // }); - // return; - // } - // this.props.form.validateFieldsAndScroll((err, values) => { - // if (!err) { - // const url = `/issues/${data.issue.id}/journals.json`; - // axios - // .post(url, { - // ...values, - // content: commentsContent, - // issue_id: data.id, - // attachment_ids: fileList, - // }) - // .then((result) => { - // if (result) { - // this.props.form.setFieldsValue({ - // content: "", - // attachments_ids: undefined, - // }); - // this.setState({ - // showFiles: false, - // quillFlag: false, - // commentsContent: "", - // journal_spin: false, - // }); - // this.getjournalslist(page, limit); - // this.props.showNotification("评论成功!"); - // } - // }) - // .catch((error) => { - // this.setState({ - // journal_spin: false, - // }); - // console.log(error); - // }); - // } else { - // this.setState({ - // journal_spin: false, - // }); - // } - // }); - // }; - // //获取评论信息 - // getjournalslist = (page, limit) => { - // const { data } = this.state; - // const url = `/issues/${data.issue.id}/journals.json`; - // let id = data.id; - // axios - // .get(url, { - // params: { - // id, - // page, - // limit, - // }, - // }) - // .then((result) => { - // if (result) { - // this.setState({ - // journalsdata: result.data, - // search_count: result.data.journals_count, - // isSpin: false, - // fileList: undefined, - // showFiles: true, - // SpinFlag: false, - // }); - // } - // }) - // .catch((error) => { - // console.log(error); - // }); - // }; - //关闭任务 - closedetail = (id) => { - const { projectsId, orderId } = this.props.match.params; - const { data } = this.state; - const url = `/projects/${projectsId}/issues/${data.issue.id}/close_issue.json`; + closedetail = () => { + this.setState({ isSpin: true }); + const { projectsId, mergeId } = this.props.match.params; + const url = `/projects/${projectsId}/pull_requests/${mergeId}/refuse_merge.json`; axios - .post(url, { - project_id: projectsId, - id: orderId, - status_id: id, - }) + .post(url) .then((result) => { if (result) { - this.getDetail(); + this.setState({ + isSpin: false, + pr_status: 2, + }); + } else { + this.setState({ + isSpin: false, + }); } }) .catch((error) => { + this.setState({ + isSpin: false, + }); console.log(error); }); }; @@ -228,7 +106,7 @@ class MessageCount extends Component { SpinMerge: true, }); const { projectsId } = this.props.match.params; - const { data, title, body, mergekey } = this.state; + const { data, title, body, mergekey, pr_status } = this.state; const url = `/projects/${projectsId}/pull_requests/${data.pull_request.id}/pr_merge.json`; axios .post(url, { @@ -240,10 +118,12 @@ class MessageCount extends Component { }) .then((result) => { if (result) { - this.getDetail(); this.setState({ SpinMerge: false, + pr_status: 1, }); + } else { + this.setState({ SpinMerge: false }); } }) .catch((error) => { @@ -254,70 +134,6 @@ class MessageCount extends Component { }); }; - //修改评论 - // updatedetail = (id) => { - // this.setState({ - // edit_spin: true, - // }); - // const { page, limit, data } = this.state; - // const { orderId } = this.props.match.params; - // const url = `/issues/${data.issue.id}/journals/${id}.json`; - // axios - // .put(url, { - // issue_id: orderId, - // id: id, - // content: this.state.countvalue, - // }) - // .then((result) => { - // if (result) { - // this.setState({ - // isedit: undefined, - // edit_spin: false, - // }); - // this.getjournalslist(page, limit); - // } - // }) - // .catch((error) => { - // this.setState({ - // edit_spin: false, - // }); - // console.log(error); - // }); - // }; - // 获取上传后的文件id数组 - UploadFunc = (fileList) => { - this.setState({ - fileList, - }); - }; - - //删除评论 - // deleteorder = (id) => { - // const { orderId } = this.props.match.params; - // const { page, limit, data } = this.state; - // const url = `/issues/${data.issue.id}/journals/${id}.json`; - // axios - // .delete(url, { - // data: { - // issue_id: orderId, - // id: id, - // }, - // }) - // .then((result) => { - // if (result) { - // this.getjournalslist(page, limit); - // } - // }) - // .catch((error) => { - // console.log(error); - // }); - // }; - - changmodelname = (value) => { - this.setState({ - countvalue: value, - }); - }; changtitlepr = (e) => { this.setState({ title: e.target.value, @@ -329,126 +145,28 @@ class MessageCount extends Component { body: e.target.value, }); }; - editdetail = (count, status) => { - this.setState({ - countvalue: count, - isedit: status, - }); - }; + submitmerge = () => { if (this.state.mergekey === "rebase") { this.setState({ buttonshow: "block", - ismesrge: "none", + ismesrge: true, }); } else { this.setState({ ismesrge: "block", - buttonshow: "block", + buttonshow: false, }); } }; nonemerge = () => { this.setState({ - ismesrge: "none", + ismesrge: false, buttonshow: "none", }); }; - renderJournalList = (list) => { - if (list && list.length > 0) { - return list.map((item, key) => { - return ( -
      - {item.detail}: - - {item.old_value && item.old_value.length > 0 ? "更新为" : "新增"} - - - {item.value && item.value.length > 0 ? ( - item.detail === "标签" ? ( - - {item.value[0].name} - - ) : ( - item.value - ) - ) : ( - "无" - )} - -
      - ); - }); - } else { - return ( -
      - 没有评论~ -
      - ); - } - }; - - handleSubmit = () => { - this.props.form.validateFieldsAndScroll((err, values) => { - if (!err) { - const { projectsId, mergeId } = this.props.match.params; - const url = `/projects/${projectsId}/pull_requests/${mergeId}/simple_update.json`; - - if (values.issue_tag_ids === "") { - values.issue_tag_ids = []; - } else { - values.issue_tag_ids = [parseInt(values.issue_tag_ids)]; - } - - if (values.assigned_to_id === 0) { - values.assigned_to_id = ""; - } - axios - .post(url, { - ...values, - }) - .then((result) => { - if (result.data.status === 0) { - this.setState({ - editMerge: false, - }); - this.getDetail(); - this.props.showNotification(result.data.message); - } - }) - .catch((error) => { - console.log(error); - }); - } - }); - }; - - renderSelect = (list) => { - if (list && list.length > 0) { - return list.map((item, key) => { - return ( - - ); - }); - } - }; - - // 翻页 - // ChangePage = (page) => { - // this.setState({ - // page, - // isSpin: true, - // }); - // const { limit } = this.state; - // this.getjournalslist(page, limit); - // }; getOption = (e) => { if (e.key === "rebase") { this.setState({ @@ -464,171 +182,34 @@ class MessageCount extends Component { mergekey: e.key, title: "", body: "", - ismesrge: "block", + ismesrge: true, buttonshow: "block", }); } }; - changeComments = (value) => { - this.setState({ - commentsContent: value, - }); - if (value) { - this.setState({ - quillFlag: false, - }); - } - }; cancelSubmit = () => { this.setState({ editMerge: false, }); }; - change_to_edit = () => { - const { projectsId, mergeId } = this.props.match.params; - const url = `/projects/${projectsId}/pull_requests/${mergeId}/edit.json`; - axios - .get(url) - .then((result) => { - if (result) { - this.setState({ - issue_chosen: result.data.issue.issue_chosen, - issue_tag_ids: - result.data.issue.issue_tags && - result.data.issue.issue_tags[0].id, - fixed_version_id: result.data.issue.fixed_version_id, - assigned_to_id: result.data.issue.assigned_to_id, - editMerge: true, - }); - } - }) - .catch((error) => { - console.log(error); - }); - }; - commentCtx = (v) => { return ; }; - handleShowImage = (value) => { - this.setState({ - imageUrl: value, - visible: true, - }); - }; - setVisible = (flag) => { - this.setState({ - visible: flag, - }); - }; render() { const { projectsId, mergeId } = this.props.match.params; + const { data, - journalsdata, - page, - limit, - search_count, - isSpin, - isedit, - showFiles, - commentsContent, - quillFlag, - editMerge, - issue_tag_ids, - issue_chosen, - fixed_version_id, - assigned_to_id, - visible, - imageUrl, SpinMerge, - journal_spin, - edit_spin, + pr_status, + isSpin, + ismesrge, + SpinFlag, } = this.state; - const { getFieldDecorator } = this.props.form; - const { current_user } = this.props; - const url = this.props.history.location.pathname; - - const get_color = (type) => { - if (type === 0) { - return "#21ba45"; - } else if (type === 1) { - return "#a333c8"; - } else { - return "#e60b0b"; - } - }; - - const editMergeForm = () => { - return ( -
      -
      - - {getFieldDecorator("issue_tag_ids", { - initialValue: issue_tag_ids ? [issue_tag_ids] : "", - rules: [], - })( - - )} - - - {getFieldDecorator("fixed_version_id", { - initialValue: fixed_version_id ? fixed_version_id : "", - rules: [], - })( - - )} - - - - {getFieldDecorator("assigned_to_id", { - initialValue: assigned_to_id ? assigned_to_id : "", - })( - - )} - -

      - - - 保存 - - - 取消 - - -

      -
      -
      - ); - }; - + const { current_user, projectDetail } = this.props; const menu = ( this.getOption(e)}> @@ -646,320 +227,264 @@ class MessageCount extends Component { ); - const Paginations = ( - - {search_count > limit ? ( -
      - + return ( +
      + {data ? ( +
      +
      +
      +
      +
      +
      + + + {data.issue.subject} + + + + {data.pull_request && ( + + {pr_status === 1 + ? "已合并" + : pr_status === 2 + ? "已拒绝" + : "开启的"} + + )} +
      + { +
      + + + {data.pull_request.is_original ? data.pull_request.fork_project_user : data.issue.project_author_name}:{data.pull_request.head} + + + + + + + + {/* {data.pull_request.is_fork ? data.pull_request.base : `${data.pull_request.pull_request_user}:${data.pull_request.base}`} */} + {data.issue.project_author_name}:{data.pull_request.base} + + +
      + } + +
      + + + + + + + {data.issue.author_name} + + + {pr_status === 0 + ? "创建于" + : pr_status === 1 + ? "合并于" + : "更新于"} + + {data.pr_time} + + 审查人员: + {data.issue.assign_user_name ? ( + + {data.issue.assign_user_name} + + ) : ( + "--" + )} + + + 里程碑: + + {data.issue.version ? data.issue.version : "--"} + + + + 标签: + + {data.issue.issue_tags && + data.issue.issue_tags.length > 0 + ? data.issue.issue_tags[0].name + : "--"} + + + + 优先级: + + {data.issue.priority ? data.issue.priority : "--"} + + + +
      +
      +
      +
      + {current_user && projectDetail && + pr_status !== 2 && + projectDetail.permission !=="Reporter" && ( + + )} + {projectDetail && projectDetail.permission !=="Reporter" && pr_status === 0 && ( + + )} +
      +
      +
      +
      + {data.issue.description && + data.issue.description.length > 0 ? ( + this.commentCtx(data.issue.description) + ) : ( + 没有描述 + )} +
      +
      +
      + {pr_status === 2 && ( + + )} + {pr_status === 1 && ( + + )} + {pr_status === 0 && projectDetail && projectDetail.permission !=="Reporter" && ( + +
      +

      + } + > + {this.state.mergename} + +

      + +
      +
      +
      + + - )} - {helper( - "公司介绍", - "intro", - [{ max: 5000, message: "超过5000字符" }], - - )} - - ); -}); diff --git a/src/modules/recruitment/jobForm/popup/AddClass.js b/src/modules/recruitment/jobForm/popup/AddClass.js deleted file mode 100644 index 5924188a..00000000 --- a/src/modules/recruitment/jobForm/popup/AddClass.js +++ /dev/null @@ -1,51 +0,0 @@ -import React, { useCallback } from "react"; -import { Input, Form } from "antd"; -import Modal from "../../util/Modal"; -import { CenterBtnGrp, OkBtn, CancelBtn } from "../../util/GeneralButton"; - -const InnerForm = Form.create()(({ form, onCancel, setValue }) => { - const { getFieldDecorator, validateFields } = form; - const rules = [ - { required: true, message: "请输入职业分类" }, - { max: 10, message: "超过10字符" }, - { whitespace: true, message: "不能全空" }, - ]; - const formLayout = { - labelCol: { span: 5 }, - wrapperCol: { span: 17 }, - }; - const onOk = useCallback(() => { - validateFields((e, v) => { - if (e) { - return; - } - setValue(v); - onCancel(); - }); - }, []); - return ( -
      - - {getFieldDecorator("father", { rules })( - - )} - - - {getFieldDecorator("son", { rules })( - - )} - - - - - -
      - ); -}); - -//visible, setValue, onCancel -export default ({ setValue, ...props }) => ( - - - -); diff --git a/src/modules/recruitment/jobForm/popup/SelectClass.js b/src/modules/recruitment/jobForm/popup/SelectClass.js deleted file mode 100644 index 3252a777..00000000 --- a/src/modules/recruitment/jobForm/popup/SelectClass.js +++ /dev/null @@ -1,66 +0,0 @@ -import { Row, Col } from 'antd'; -import React, { useState, useCallback, useRef, useEffect } from 'react'; -import Loading from '../../util/Loading'; -import { getJobCate } from '../../data/getJobCate'; -import Modal from '../../util/Modal'; -import { CenterBtnGrp, OkBtn, CancelBtn } from '../../util/GeneralButton'; -import FatherNav from './selectWidget/FatherNav'; -import SonArea from './selectWidget/SonArea'; - - -//visible, setValue, onCancel -export default ({ setValue, ...props }) => { - const [isloaded, setLoaded] = useState(false); - const dataRef = useRef(null); - useEffect(() => { - const f = async () => { - const map = await getJobCate(); - //const map = mock; - dataRef.current = map; - setLoaded(true); - } - f(); - return () => { setLoaded(false); }; - }, []); - const [selectedCate, setCate] = useState(null); - const [selectedJob, setJob] = useState(null); - const selectCate = useCallback(text => { - if (text === selectedCate) { - return; - } - setCate(text); - setJob(null); - }, []); - const selectJob = useCallback(text => { - if (text === selectedJob) { - return; - } - setJob(text); - }, []); - const onOk = useCallback(() => { - if (selectedJob === null) { - return; - } - props.onCancel(); - setValue({ father: selectedCate, son: selectedJob }); - }, [selectedCate, selectedJob]); - const Content = - - - - -
      - -
      - - - - - -
      ; - return - {!isloaded ? : Content} - ; -}; \ No newline at end of file diff --git a/src/modules/recruitment/jobForm/popup/selectWidget/FatherItem.js b/src/modules/recruitment/jobForm/popup/selectWidget/FatherItem.js deleted file mode 100644 index 3455e387..00000000 --- a/src/modules/recruitment/jobForm/popup/selectWidget/FatherItem.js +++ /dev/null @@ -1,29 +0,0 @@ -import styled from 'styled-components'; -import React from 'react'; -import { Icon as AdIcon } from "antd"; -import { pointerMixin, betweenMixin } from "../../../util/cssMixin"; - -const Item = styled.div` - height:57px; - background:${p => p.isSelected ? "rgba(241,241,241,1)" : "transparent"}; - ${pointerMixin} - ${betweenMixin} -`; -const Name = styled.div` - color:rgba(51,51,51,1); - font-size:16px; - font-family:MicrosoftYaHei; - margin-left:30px; -`; -const Icon = styled(AdIcon)` - display:block; - color:rgba(187,187,187,1); - margin-right:20px; -`; - -//onClick, isSelected -export default ({ children, ...props }) => - - {children} - - ; \ No newline at end of file diff --git a/src/modules/recruitment/jobForm/popup/selectWidget/FatherNav.js b/src/modules/recruitment/jobForm/popup/selectWidget/FatherNav.js deleted file mode 100644 index 5d492d9f..00000000 --- a/src/modules/recruitment/jobForm/popup/selectWidget/FatherNav.js +++ /dev/null @@ -1,14 +0,0 @@ -import styled from 'styled-components'; -import React from 'react'; -import Item from './FatherItem'; - -const Column = styled.div` - background:rgba(250,250,250,1); - height:100%; - overflow:auto; -`; - -export default ({ data, selectCate, selectedCate }) => //data is a map - - {Array.from(data.keys()).map(i => { selectCate(i); }} isSelected={selectedCate === i}>{i})} - ; \ No newline at end of file diff --git a/src/modules/recruitment/jobForm/popup/selectWidget/SonArea.js b/src/modules/recruitment/jobForm/popup/selectWidget/SonArea.js deleted file mode 100644 index facb25ad..00000000 --- a/src/modules/recruitment/jobForm/popup/selectWidget/SonArea.js +++ /dev/null @@ -1,19 +0,0 @@ -import { Row } from "antd"; -import React from "react"; -import { JobBtn } from "../../../util/GeneralButton"; - -export default ({ data, selectedJob, selectJob }) => ( - - {Array.from(data.keys()).map((i) => ( - { - selectJob(i); - }} - isSelected={selectedJob === i} - > - {i} - - ))} - -); diff --git a/src/modules/recruitment/jobForm/widget/CateSelect.js b/src/modules/recruitment/jobForm/widget/CateSelect.js deleted file mode 100644 index 55b8d570..00000000 --- a/src/modules/recruitment/jobForm/widget/CateSelect.js +++ /dev/null @@ -1,61 +0,0 @@ -import React, { forwardRef } from "react"; -import { Icon, Row } from "antd"; -import { useToggle } from "../../util/hooks"; -import styled from "styled-components"; -import { BtnBase } from "../../util/Button"; -import AddClassPopup from "../popup/AddClass"; -import SelectClassPopup from "../popup/SelectClass"; - -const SimulateInput = styled(BtnBase)` - border-radius: 4px; - border: 1px solid rgba(221, 221, 221, 1); - width: 252px; - padding-left: 10px; - padding-right: 10px; - margin-bottom: 5px; - &:hover { - border: 1px solid #40a9ff; - } - &.has-error { - border: 1px solid #f5222d; - } -`; - -const SI = ({ children }) => ( - {children} -); - -const Value = styled.span` - font-size: 14px; - color: rgba(51, 51, 51, 1); - font-family: MicrosoftYaHei; -`; -const Placeholder = styled(Value)` - color: rgba(187, 187, 187, 1); -`; - -export default forwardRef(({ onChange, value, placeholder }, ref) => { - const [v1, sv1] = useToggle(); - const [v2, sv2] = useToggle(); - return ( - - - - {!value || !value.father || !value.son ? ( - 请选择职位类别 - ) : ( - {`${value.father}/${value.son}`} - )} - - - - - - - - ); -}); diff --git a/src/modules/recruitment/jobForm/widget/InputWithLen.js b/src/modules/recruitment/jobForm/widget/InputWithLen.js deleted file mode 100644 index dfa26f02..00000000 --- a/src/modules/recruitment/jobForm/widget/InputWithLen.js +++ /dev/null @@ -1,7 +0,0 @@ -import React, { forwardRef } from "react"; -import { Input } from "antd"; - -export default forwardRef(({ maxLen, ...props }, ref) => { - const len = !props.value ? 0 : props.value.length; - return {`${len}/${maxLen}`}} ref={ref} /> -}); \ No newline at end of file diff --git a/src/modules/recruitment/jobForm/widget/TextArea.js b/src/modules/recruitment/jobForm/widget/TextArea.js deleted file mode 100644 index de4e1423..00000000 --- a/src/modules/recruitment/jobForm/widget/TextArea.js +++ /dev/null @@ -1,6 +0,0 @@ -import styled from 'styled-components'; -import { Input } from "antd"; - -export default styled(Input.TextArea)` - resize:none; -`; \ No newline at end of file diff --git a/src/modules/recruitment/recrulistcss/recrulistcss.scss b/src/modules/recruitment/recrulistcss/recrulistcss.scss deleted file mode 100644 index 8540ab4c..00000000 --- a/src/modules/recruitment/recrulistcss/recrulistcss.scss +++ /dev/null @@ -1,260 +0,0 @@ - -.IntermediateCenter { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - -} - -.JianDcentered { - display: flex; - align-items: center; -} - -.spacearound { - display: flex; - justify-content: space-around; - -} - -.spacebetween { - display: flex; - justify-content: space-between; -} - -.topcenter { - display: -webkit-flex; - flex-direction: column; - align-items: center; - -} - -.sortinxdirection { - display: flex; - flex-direction: row; -} - -.xaxisreverseorder { - display: flex; - flex-direction: row-reverse; -} - -.verticallayout { - display: flex; - flex-direction: column; -} - -.reversedirection { - display: flex; - flex-direction: column-reverse; -} - -.color88 { - color: #888888; -} - -.mr7 { - margin-right: 7px; -} -.ml21{ - margin-left: 21px; -} - -.mt22 { - margin-top: 22px; -} - -.w50s { - width: 50%; -} -.w70s { - width: 70%; -} -.w80s { - width: 80%; -} - -.w20s { - width: 20%; -} - -.w83s { - width: 83%; -} - -.w17s { - width: 17%; -} - -.iconcolor { - color: #4CADFF !important; -} - -.lh45s { - line-height: 45px; -} - -.lh48s { - line-height: 48px; - -} - -.lh40s { - line-height: 40px; -} - -.titless100 { - max-width: 100px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - cursor: default; -} - -.w1199dbl { - width: 1200px; - min-height: 60px; - background: rgba(255, 255, 255, 1); - -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.03); - box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.03); - border-radius: 2px; -} -.divgreens{ - color: #42B366; - background: #D8F7E2 !important; - border: 1px solid #D8F7E2 !important; -} -.divViolets{ - color: #5B36D1; - border: 1px solid #E8E1FF !important; - background: #E8E1FF !important; - -} -.divoranges{ - color: #E65A18; - border: 1px solid #FFF2EC !important; - background: #FFF2EC!important; - -} -.divreds{ - color: #F30F0F; - border: 1px solid #FFE6E6 !important; - background: #FFE6E6 !important; -} - -.xiaoshou { - cursor: pointer !important; -} - -.xiaoshout { - cursor: default !important; -} - -.pdtop30 { - padding-top: 30px !important; -} -.pd30{ - padding: 30px; -} -.ptabo{ - .ant-input-wrapper { - .ant-input { - height: 48px !important; - line-height: 46px !important; - } - } - - .ant-input-group-addon { - width: 48px !important; - - .ant-btn-lg { - height: 46px !important; - width: 108px; - border-left: 1px solid #1890ff !important; - border-bottom: 1px solid #1890ff !important; - border-right: 1px solid #1890ff !important; - border-top: 1px solid #1890ff !important; - } - } - - .ant-popover-inner-content { - padding: 0px !important; - } - -} -.tabone { - border-bottom: 1px solid #EEEEEE; - - .pdtab { - padding-top: 15px; - padding-left: 15px; - padding-right: 30px; - - - .ant-tabs { - width: 50% !important; - - .ant-tabs-bar { - border-bottom: 1px solid #ffffff; - - .ant-tabs-tab { - font-size: 16px; - } - } - - } - } - - .pdtabs { - - .searchwidth { - width: 100%; - } - } - - .pdtabss { - .divgreen{ - color: #42B366; - border: 1px solid #42B366; - - - } - .divViolet{ - color: #5B36D1; - border: 1px solid #5B36D1; - - - - } - .divorange{ - color: #E65A18; - border: 1px solid #E65A18; - - - } - .divred{ - color: #F30F0F; - border: 1px solid #F30F0F; - - - } - .brodersdiv{ - - background: #ffffff; - border-radius:25px; - min-width: 170px; - text-align: center; - height: 46px; - line-height: 46px; - } - - - .searchwidth { - width:347px; - } - } - .pdtabsss { - padding: 30px; - } -} diff --git a/src/modules/recruitment/resumeForm/CompanyHeader.js b/src/modules/recruitment/resumeForm/CompanyHeader.js deleted file mode 100644 index 32ed9232..00000000 --- a/src/modules/recruitment/resumeForm/CompanyHeader.js +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react"; -import styled from "styled-components"; -import { Divider, Row } from "antd"; - -const Header = styled.div` - width: 1200px; - height: 145px; - background: rgba(255, 255, 255, 1); - border-radius: 2px; - padding: 40px; - margin:0 auto; - margin-bottom: 20px; -`; -const Job = styled.div` - font-size: 20px; - font-family: MicrosoftYaHeiSemibold; - color: rgba(51, 51, 51, 1); - margin-bottom:15px; -`; - -const Item = styled.span` - font-size: 14px; - font-family: MicrosoftYaHei; - color: rgba(51, 51, 51, 1); -`; - -export default ({ jobName, company, city }) => { - return ( -
      - {jobName} -
      - {company} - - {city} -
      -
      - ); -}; diff --git a/src/modules/recruitment/resumeForm/Form.js b/src/modules/recruitment/resumeForm/Form.js deleted file mode 100644 index f22a4a53..00000000 --- a/src/modules/recruitment/resumeForm/Form.js +++ /dev/null @@ -1,7 +0,0 @@ -import React, { - createContext, - forwardRef, - useImperativeHandle, - useCallback, - } from "react"; -export const FormCtx = createContext(); \ No newline at end of file diff --git a/src/modules/recruitment/resumeForm/NormalForm.js b/src/modules/recruitment/resumeForm/NormalForm.js deleted file mode 100644 index 3a4cb636..00000000 --- a/src/modules/recruitment/resumeForm/NormalForm.js +++ /dev/null @@ -1,240 +0,0 @@ -import _ from "lodash"; -import React, { forwardRef, useImperativeHandle, useCallback } from "react"; -import { Form, Input, Radio, Row, DatePicker, Icon } from "antd"; -import styled from "styled-components"; -import ImageUploader from "./widget/ImageUploader"; -import ResumesUploader from "./widget/ResumesUploader"; -import JobExpect from "./widget/JobExpect"; -import EduItem from "./widget/EduItem"; -import WorkItem from "./widget/WorkItem"; -import { FormCtx } from "./Form"; -import { AddButton } from "./widget/Button"; -import { useSet } from "../util/hooks"; -import { genUuid } from "../data/genUuid"; -import { mapPropsToFields } from "../data/mapResumeData"; -import moment from "moment"; - -const Label = styled.div` - &::before { - content: ${(p) => (p.required ? '"*"' : '""')}; - color: ${(p) => (p.required ? "red" : "black")}; - } - &::after { - content: ":"; - } - margin-bottom: 5px; - font-size: 16px; - font-family: MicrosoftYaHeiSemibold; - color: rgba(51, 51, 51, 1); -`; -const Tip = styled.div` - font-size: 12px; - font-family: MicrosoftYaHei; - color: rgba(136, 136, 136, 1); - margin-left: 10px; -`; - -export default Form.create({ mapPropsToFields })( - forwardRef(({ form, attachment_name, logo_url, attachment_url, attachment_id }, ref) => { - const { - getFieldDecorator, - validateFields, - getFieldValue, - setFields, - getFieldsValue - } = form; - const { set: eduSet, add: eduAdd, remove: eduRm } = useSet(); - const { set: wkSet, add: wkAdd, remove: wkRm } = useSet(); - const addEdu = useCallback(() => { - const uuid = genUuid(); - eduAdd(uuid); - return uuid; - }, []); - const addWk = useCallback(() => { - const uuid = genUuid(); - wkAdd(uuid); - return uuid; - }, []); - const set = useCallback((education, experience) => { - const object = {}; - if (experience !== undefined) { - experience.forEach((exp) => { - const id = addWk(); - ["company", "desc"].forEach((k) => { - object[`experience[${id}].${k}`] = { value: exp[k] }; - }); - ["begin_on", "end_on"].forEach((k) => { - object[`experience[${id}].${k}`] = { value: moment(exp[k]) }; - }); - }); - } - if (education !== undefined) { - let isFirst = true; - education.forEach((edu) => { - const id = isFirst ? "base" : addEdu(); - ["edu_bg", "edu_category", "major", "school"].forEach((k) => { - object[`education[${id}].${k}`] = { value: edu[k] }; - }); - ["begin_on", "end_on"].forEach((k) => { - object[`education[${id}].${k}`] = { value: moment(edu[k]) }; - }); - isFirst = false; - }); - } - setTimeout(() => { - setFields(object); - }, 1000); - }, []); - const genVerArr = useCallback(() => { - const genWk = (key) => - ["begin_on", "end_on", "company", "desc"].map( - (k) => `experience[${key}].${k}` - ); - const genEdu = (key) => - ["begin_on", "end_on", "edu_bg", "edu_category", "major", "school"].map( - (k) => `education[${key}].${k}` - ); - const field = [ - "name", - "sex", - "logo", - "birth_on", - "mobile", - "evaluate", - "attachment_id", - "job_position", - "city", - "salary", - "job_category", - "job_year", - ]; - const baseEdu = genEdu("base"); - const wk = _.flatten(Array.from(wkSet.keys()).map(genWk)); - const edu = _.flatten(Array.from(eduSet.keys()).map(genEdu)); - return _.concat(wk, edu, field, baseEdu); - }, []); - useImperativeHandle(ref, () => ({ - verify: (callback) => { - validateFields(genVerArr(), callback); - }, - set, - })); - const helper = useCallback( - (label, name, rules, widget, isRequired = true) => ( - - - - {getFieldDecorator(name, { rules, validateFirst: true })(widget)} - - - ), - [] - ); - return ( - -
      - {helper( - "姓名", - "name", - [ - { max: 60, message: "超过60字符" }, - { required: true, message: "请输入姓名" }, - { whitespace: true, message: "不能全空" }, - ], - - )} - {helper( - "性别", - "sex", - [{ required: true, message: "请选择性别" }], - - - - - )} - - - 只支持JPG,JPEG格式,大小不要超过2MB,建议使用证件照 - - {getFieldDecorator("logo", {})()} - {helper( - "出生日期", - "birth_on", - [{ required: true, message: "请选择日期" }], - m > moment()} /> - )} - {helper( - "手机号", - "mobile", - [ - { required: true, message: "请输入手机号" }, - { min: 11, message: "号码不正确" }, - { max: 11, message: "号码不正确" }, - { pattern: /^\d+$/, message: "请输入数字" }, - ], - - )} - {helper( - "参加工作时间", - "job_year", - [], - , - false - )} - - - - - {Array.from(eduSet.values()).map((k) => ( - { - eduRm(k); - }} - /> - ))} - - - 添加教育经历 - - - {Array.from(wkSet.values()).map((k) => ( - { - wkRm(k); - }} - /> - ))} - - - 添加工作经验 - - {helper( - "自我评价", - "evaluate", - [{ max: 5000, message: "超过5000字符" }], - , - false - )} - - - (上传简历可以提高应聘成功率) - - {getFieldDecorator("attachment_id", { rules: [] })( - - )} - -
      - ); - }) -); diff --git a/src/modules/recruitment/resumeForm/popup/CityPopup.js b/src/modules/recruitment/resumeForm/popup/CityPopup.js deleted file mode 100644 index e5ba5983..00000000 --- a/src/modules/recruitment/resumeForm/popup/CityPopup.js +++ /dev/null @@ -1,51 +0,0 @@ -import React, { useEffect,useCallback } from "react"; -import {message} from 'antd'; -import Modal from "./Modal"; -import { useLoaded, useMap } from "../../util/hooks"; -import { getCurrCity } from "../../data/getCurrCity"; -import { CenterBtnGrp, OkBtn, CancelBtn } from "../../util/GeneralButton"; -import CityList from "./city/CityList"; -import SelectedCity from "./city/SelectedCity"; -import { getHotCity } from "../../data/getHotCity"; -import Loading from "../../util/Loading"; - -//visible, setValue, onCancel -export default ({ setValue, ...props }) => { - const { isLoaded: isCurrCityLoaded, data: currCity } = useLoaded( - getCurrCity, - [] - ); - const { isLoaded: isCityLoaded, data: cityLst } = useLoaded(getHotCity, []); - const { map, add, remove } = useMap((m) => { - if (m.size >= 5) { - message.error("最多选择5项"); - return false; - } - return true; - }); - useEffect(() => { - if (isCurrCityLoaded) { - add(currCity, true); - } - }, [isCurrCityLoaded]); - const onOk = useCallback(() => { - props.onCancel(); - setValue(Array.from(map.keys())); - }, []); - const content = - !isCurrCityLoaded || !isCityLoaded ? ( - - ) : ( - - - - - - - - - ); - return - {content} - ; -}; diff --git a/src/modules/recruitment/resumeForm/popup/JobPopup.js b/src/modules/recruitment/resumeForm/popup/JobPopup.js deleted file mode 100644 index 29781b60..00000000 --- a/src/modules/recruitment/resumeForm/popup/JobPopup.js +++ /dev/null @@ -1,68 +0,0 @@ -import React, { useCallback, useState,useEffect } from "react"; -import { Row, Col, message } from "antd"; -import Modal from "../../util/Modal"; -import Nav from "./jobClass/FatherNav"; -import SonNav from "./jobClass/SonArea"; -import Tiltle from "./jobClass/Tiltle"; -import Loading from "../../util/Loading"; -import { useLoaded, useSet } from "../../util/hooks"; -import { CenterBtnGrp, OkBtn, CancelBtn } from "../../util/GeneralButton"; -import { getJobCate } from "../../data/getJobCate"; - -//visible, setValue, onCancel -export default ({ setValue, initArr, ...props }) => { - const { isLoaded, data } = useLoaded(getJobCate, []); - const { set, add, remove } = useSet((s) => { - if (s.size >= 5) { - message.error("最多选择5项"); - return false; - } - return true; - }); - const [selectedCate, selectCate] = useState(null); - const onOk = useCallback(() => { - props.onCancel(); - setValue(Array.from(set.values())); - }, []); - useEffect(() => { - if (Array.isArray(initArr)) { - initArr.forEach((i) => add(i)); - } - }, []); - const content = !isLoaded ? ( - - ) : ( - - - - - - -
      - -
      - - - - - -
      -
      - ); - return ( - } - {...props} getContainer={false} - > - {content} - - ); -}; diff --git a/src/modules/recruitment/resumeForm/popup/Modal.js b/src/modules/recruitment/resumeForm/popup/Modal.js deleted file mode 100644 index da5972e2..00000000 --- a/src/modules/recruitment/resumeForm/popup/Modal.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react"; -import { Modal } from 'antd'; -import styled from 'styled-components'; - -const Box = styled.div` - width:clac(100%+80px); - margin:-24px -24px; -`; - -//visible,title,onCancel,width -export default ({ children, ...props }) => { - return - {children} - ; -}; diff --git a/src/modules/recruitment/resumeForm/popup/city/CityList.js b/src/modules/recruitment/resumeForm/popup/city/CityList.js deleted file mode 100644 index c0ba7303..00000000 --- a/src/modules/recruitment/resumeForm/popup/city/CityList.js +++ /dev/null @@ -1,49 +0,0 @@ -import styled from "styled-components"; -import React from "react"; -import { Row } from "antd"; - -const Button = styled.div` - width: 100px; - height: 46px; - background: rgba(255, 255, 255, 1); - border-radius: 2px; - border: 1px solid rgba(221, 221, 221, 1); - font-size: 14px; - font-family: MicrosoftYaHei; - color: rgba(51, 51, 51, 1); - margin-left: 30px; - margin-top: 10px; - display: flex; - justify-content: center; - align-items: center; - &:hover { - cursor: pointer; - } -`; -const Title = styled.div` - font-size: 16px; - font-family: Microsoft YaHei; - color: rgba(51, 51, 51, 1); - margin:15px 30px; - margin-bottom:5px; -`; - -export default ({ select, data }) => { - return ( - - 热门城市: - - {data.map((city) => ( - - ))} - - - ); -}; diff --git a/src/modules/recruitment/resumeForm/popup/city/SelectedCity.js b/src/modules/recruitment/resumeForm/popup/city/SelectedCity.js deleted file mode 100644 index c12d802b..00000000 --- a/src/modules/recruitment/resumeForm/popup/city/SelectedCity.js +++ /dev/null @@ -1,47 +0,0 @@ -import styled from "styled-components"; -import React, { useCallback } from "react"; -import { Tag, Tooltip, Icon } from "antd"; - -const Title = styled.div` - font-size: 16px; - font-family: Microsoft YaHei; - color: rgba(51, 51, 51, 1); - margin: 15px 30px; - margin-top:30px; -`; -const Tip = styled.span` - font-size: 12px; - -`; -const tagConfig = { - color: "blue", - closable: true, - style:{border:"0"}, -}; - -export default ({ selected, remove }) => { - return ( - - 选择期望工作城市: -
      - {Array.from(selected.entries()).map(([key, isCurrCity]) => { - if (isCurrCity) { - return ( - remove(key)}> - - {key} - (当前定位城市) - - ); - } else { - return ( - remove(key)}> - {key} - - ); - } - })} -
      -
      - ); -}; diff --git a/src/modules/recruitment/resumeForm/popup/jobClass/FatherItem.js b/src/modules/recruitment/resumeForm/popup/jobClass/FatherItem.js deleted file mode 100644 index dcb47cc9..00000000 --- a/src/modules/recruitment/resumeForm/popup/jobClass/FatherItem.js +++ /dev/null @@ -1,32 +0,0 @@ -import styled from 'styled-components'; -import React from 'react'; -import { Icon as AdIcon } from "antd"; - -const Item = styled.div` - height:57px; - background:${p => p.isSelected ? "rgba(241,241,241,1)" : "transparent"}; - &:hover{ - cursor:pointer; - } - display:flex; - justify-content:space-between; - align-items:center; -`; -const Name = styled.div` - color:rgba(51,51,51,1); - font-size:16px; - font-family:MicrosoftYaHei; - margin-left:30px; -`; -const Icon = styled(AdIcon)` - display:block; - color:rgba(187,187,187,1); - margin-right:20px; -`; - -//onClick, isSelected -export default ({ children, ...props }) => - - {children} - - ; \ No newline at end of file diff --git a/src/modules/recruitment/resumeForm/popup/jobClass/FatherNav.js b/src/modules/recruitment/resumeForm/popup/jobClass/FatherNav.js deleted file mode 100644 index 5d492d9f..00000000 --- a/src/modules/recruitment/resumeForm/popup/jobClass/FatherNav.js +++ /dev/null @@ -1,14 +0,0 @@ -import styled from 'styled-components'; -import React from 'react'; -import Item from './FatherItem'; - -const Column = styled.div` - background:rgba(250,250,250,1); - height:100%; - overflow:auto; -`; - -export default ({ data, selectCate, selectedCate }) => //data is a map - - {Array.from(data.keys()).map(i => { selectCate(i); }} isSelected={selectedCate === i}>{i})} - ; \ No newline at end of file diff --git a/src/modules/recruitment/resumeForm/popup/jobClass/SonArea.js b/src/modules/recruitment/resumeForm/popup/jobClass/SonArea.js deleted file mode 100644 index 0ad4f99f..00000000 --- a/src/modules/recruitment/resumeForm/popup/jobClass/SonArea.js +++ /dev/null @@ -1,13 +0,0 @@ -import { Row } from "antd"; -import React from "react"; -import { JobBtn } from "../../../util/GeneralButton"; - -export default ({ data, select }) => ( - - {Array.from(data.values()).map((v) => ( - select(v)}> - {v} - - ))} - -); diff --git a/src/modules/recruitment/resumeForm/popup/jobClass/Tiltle.js b/src/modules/recruitment/resumeForm/popup/jobClass/Tiltle.js deleted file mode 100644 index cff7ffca..00000000 --- a/src/modules/recruitment/resumeForm/popup/jobClass/Tiltle.js +++ /dev/null @@ -1,41 +0,0 @@ -import styled from "styled-components"; -import React from "react"; -import { Tag, Tooltip } from "antd"; - -const Header = styled.div` - display: flex; - justify-content: space-between; - align-items: center; -`; - -const Title = styled.div` - font-size: 16px; - font-family: Microsoft YaHei; - font-weight: bold; - color: rgba(51, 51, 51, 1); -`; -const tagConfig = { - color: "blue", - closable: true, - style:{border:"0"}, -}; -export default ({ selected, remove }) => { - const tag = (key) => ( - remove(key)}> - {key.length >= 4 ? `${key.substring(0, 4)}...` : key} - - ); - const wrapper = (key) => { - if (key.length >= 4) { - return {tag(key)}; - } else { - return tag(key); - } - }; - return ( -
      - 选择职位类别 -
      {Array.from(selected.keys()).map((key) => wrapper(key))}
      -
      - ); -}; diff --git a/src/modules/recruitment/resumeForm/widget/Button.js b/src/modules/recruitment/resumeForm/widget/Button.js deleted file mode 100644 index 89c36481..00000000 --- a/src/modules/recruitment/resumeForm/widget/Button.js +++ /dev/null @@ -1,37 +0,0 @@ -import styled from "styled-components"; - -export const AddButton = styled.div` - display:flex; - justify-content:center; - align-items:center; - width:169px; - height:40px; - background:rgba(236,246,255,1); - border-radius:20px; - border:1px solid rgba(76,172,255,1); - font-size:14px; - font-family:MicrosoftYaHeiSemibold; - color:rgba(76,172,255,1); - margin-bottom:20px; - &:hover{ - cursor:pointer; - } -`; - -export const UploadButton = styled.div` - display:flex; - justify-content:center; - align-items:center; - width:87px; - height:40px; - background:rgba(236,246,255,1); - border-radius:2px; - border:1px solid rgba(76,172,255,1); - font-size:14px; - font-family:MicrosoftYaHeiSemibold; - color:rgba(76,172,255,1); - margin-right:20px; - &:hover{ - cursor:pointer; - } -`; diff --git a/src/modules/recruitment/resumeForm/widget/EduItem.js b/src/modules/recruitment/resumeForm/widget/EduItem.js deleted file mode 100644 index e028bbb5..00000000 --- a/src/modules/recruitment/resumeForm/widget/EduItem.js +++ /dev/null @@ -1,101 +0,0 @@ -import React, { useContext, useCallback } from "react"; -import { FormCtx } from "../Form"; -import { Row, Col, Form, Select, Input, Icon } from "antd"; -import MonthPicker from "./MothPicker"; - -const edu_bg = ["本科", "硕士", "博士", "大专", "其他"]; -const edu_category = ["统招全日制", "统招非全日制", "自考", "其他"]; - -export default ({ nameKey, onDelete }) => { - const { getFieldDecorator, getFieldValue } = useContext(FormCtx); - const greatValidater = useCallback((r, v, cb) => { - if (v >= getFieldValue(`education[${nameKey}].begin_on`)) { - cb(); - } else { - cb("时间范围不正确"); - } - }, []); - return ( -
      - - - - {getFieldDecorator(`education[${nameKey}].begin_on`, { - rules: [{ required: true, message: "请选择开始日期" }], - })()} - - - - - {getFieldDecorator(`education[${nameKey}].end_on`, { - rules: [ - { required: true, message: "请选择结束日期" }, - { validator: greatValidater }, - ], - validateFirst: true, - })()} - - - - {onDelete ? ( - - ) : null} - - - - - - {getFieldDecorator(`education[${nameKey}].edu_bg`, { - rules: [{ required: true, message: "请选择学历" }], - })( - - )} - - - - - {getFieldDecorator(`education[${nameKey}].edu_category`, { - rules: [{ required: true, message: "请选择学历类型" }], - })( - - )} - - - - - {getFieldDecorator(`education[${nameKey}].major`, { - rules: [ - { required: true, message: "请输入专业" }, - { max: 60, message: "超过60字符" }, - { whitespace: true, message: "不能全空" }, - ], - validateFirst: true, - })()} - - - - - {getFieldDecorator(`education[${nameKey}].school`, { - rules: [ - { required: true, message: "请输入学校名称" }, - { max: 60, message: "超过60字符" }, - { whitespace: true, message: "不能全空" }, - ], - validateFirst: true, - })()} - -
      - ); -}; diff --git a/src/modules/recruitment/resumeForm/widget/ImageUploader.js b/src/modules/recruitment/resumeForm/widget/ImageUploader.js deleted file mode 100644 index eb0e6557..00000000 --- a/src/modules/recruitment/resumeForm/widget/ImageUploader.js +++ /dev/null @@ -1,73 +0,0 @@ -import React, { useState, useRef, useCallback } from "react"; -import { getUploadLogoActionUrl, getUrl } from "educoder"; -import { Upload, Icon, message } from "antd"; -import axios from 'axios'; - -export default ({ logo_url, onChange }) => { - const base64Ref = useRef(null); - const getBase64 = useCallback((file) => { - return new Promise((resolve) => { - const reader = new FileReader(); - reader.addEventListener("load", () => { - base64Ref.current = reader.result; - resolve(reader.result); - }); - reader.readAsDataURL(file); - }); - }, []); - const [isLoading, setLoading] = useState(() => { - if (logo_url) { - return true; - } - return false; - }); - const [imageUrl, setUrl] = useState(() => { - if (logo_url) { - return getUrl("/"+logo_url); - } - return undefined; - }); - const handleChange = useCallback(({ file }) => { - if (file.status === "uploading") { - setLoading(true); - return; - }else if (file.status === "done") { - onChange("t"); - setLoading(false); - setUrl(base64Ref.current); - }else if (file.size > 2 ** 20 * 2) { - setLoading(false); - setUrl(""); - } - }, []); - const verifyFile = useCallback((f) => { - if(imageUrl){ - axios.post('/resumes/destroy_logo.json'); - } - const isProperSize = f.size / 1024 / 1024 < 2; //2MB - if (!isProperSize) { - message.error("照片超过2MB"); - } - return isProperSize; - },[imageUrl]); - return ( - - - {imageUrl ? ( - avatar - ) : ( - - )} - - - ); -}; diff --git a/src/modules/recruitment/resumeForm/widget/JobExpect.js b/src/modules/recruitment/resumeForm/widget/JobExpect.js deleted file mode 100644 index 6581db0c..00000000 --- a/src/modules/recruitment/resumeForm/widget/JobExpect.js +++ /dev/null @@ -1,138 +0,0 @@ -import React, { forwardRef, useContext } from "react"; -import { Row, Icon, Form, Select, Checkbox } from "antd"; -import styled from "styled-components"; -import { useToggle } from "../../util/hooks"; -import JobPopup from "../popup/JobPopup"; -import CityPopup from "../popup/CityPopup"; -import { FormCtx } from "../Form"; - -const Input = styled.div` - border-radius: 4px; - border: 1px solid rgba(221, 221, 221, 1); - width: 534px; - height: 33px; - padding-left: 10px; - padding-right: 10px; - margin-bottom: 5px; - display: flex; - justify-content: space-between; - align-items: center; - &:hover { - cursor: pointer; - border: 1px solid #40a9ff; - } - & .has-error { - border: 1px solid #f5222d; - } -`; - -const Value = styled.div` - font-size: 14px; - color: rgba(51, 51, 51, 1); - font-family: MicrosoftYaHei; -`; -const Placeholder = styled(Value)` - color: rgba(187, 187, 187, 1); -`; -const Content = ({ placeholder, value, onClick }) => ( - - {!value ? {placeholder} : {value}} - - -); - -const ExpJob = forwardRef(({ onChange, value }, ref) => { - const [jobVis, setJobVis] = useToggle(); - return ( - - - - - - - ); -}); -const ExpCity = forwardRef(({ onChange, value }, ref) => { - const [cityVis, setCityVis] = useToggle(); - return ( - - - - - - - ); -}); - -const salary = [ - "1000元/月以下", - "1000—2000元/月", - "2001—4000元/月", - "4001—6000元/月", - "6001—8000元/月", - "8001—10000元/月", - "10001—15000元/月", - "15001—25000元/月", - "25001—35000元/月", - "35001—50000元/月", - "50001—70000元/月", - "70001—100000元/月", - "100000元/月以上", -]; -const job_category = ["全职", "兼职", "实习"]; - -export default () => { - const { getFieldDecorator } = useContext(FormCtx); - return ( -
      - - {getFieldDecorator("job_position", { - rules: [{ required: true, message: "请选择期望职位" }], - })()} - - - {getFieldDecorator("city", { - rules: [{ required: true, message: "请选择期望工作城市" }], - })()} - - - {getFieldDecorator("salary", { - rules: [{ required: true, message: "请选择期望薪资" }], - })( - - )} - - - {getFieldDecorator("job_category", { - rules: [{ required: true, message: "请选择求职类型" }], - })( - - {job_category.map((j) => ( - - {j} - - ))} - - )} - -
      - ); -}; diff --git a/src/modules/recruitment/resumeForm/widget/MothPicker.js b/src/modules/recruitment/resumeForm/widget/MothPicker.js deleted file mode 100644 index d87144e4..00000000 --- a/src/modules/recruitment/resumeForm/widget/MothPicker.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react"; -import { DatePicker } from "antd"; -import styled from "styled-components"; - -const Box = styled.div` - position: relative; - z-index: 1; -`; - -export default ({ ...props }) => { - return ( - - - - ); -}; diff --git a/src/modules/recruitment/resumeForm/widget/ResumesUploader.js b/src/modules/recruitment/resumeForm/widget/ResumesUploader.js deleted file mode 100644 index 44124a6a..00000000 --- a/src/modules/recruitment/resumeForm/widget/ResumesUploader.js +++ /dev/null @@ -1,82 +0,0 @@ -import React, { useCallback, useState } from "react"; -import { Upload, Row, message } from "antd"; -import styled from "styled-components"; -import { UploadButton } from "./Button"; -import { getUploadActionUrl } from "educoder"; - -const Info = styled.div` - font-size: 14px; - font-family: MicrosoftYaHei; - color: rgba(231, 114, 52, 1); - margin-top: 10px; -`; - -const verifyFile = (f, fLst) => { - if (fLst.length === 1 && fLst[0].status === "uploading") { - message.error("请等待上传完成"); - return false; - } - const isProperSize = f.size / (2 ** 20 * 10); - if (!isProperSize) { - message.error("简历超过10MB"); - return false; - } - return true; -}; -export default ({ - attachment_name, - attachment_url, - attachment_id, - onChange, -}) => { - const [fileLst, setFlieLst] = useState(() => { - if (attachment_name) { - return [ - { - uid: "-1", - status: "done", - name: attachment_name, - url: attachment_url, - }, - ]; - } - return []; - }); - const handleChange = useCallback(async ({ file }) => { - if (file.status === "removed") { - setFlieLst([]); - const id = file.response ? file.response.id : attachment_id; - //axios.delete(`/attachments/${id}.json`); - onChange(""); - } else if (file.size > 2 ** 20 * 10) { - setFlieLst([]); - } else { - setFlieLst([file]); - if (file.status === "done") { - onChange(file.response.id); - } - } - }, []); - return ( - - - - - - {fileLst.length === 1 ? "重新上传" : "上传"} - - - 提示:不超过10MB,扩展名为pdf、doc、docx、ppt、pptx、png、jpg、jpeg - - - - - - ); -}; diff --git a/src/modules/recruitment/resumeForm/widget/WorkItem.js b/src/modules/recruitment/resumeForm/widget/WorkItem.js deleted file mode 100644 index 541b0ad6..00000000 --- a/src/modules/recruitment/resumeForm/widget/WorkItem.js +++ /dev/null @@ -1,72 +0,0 @@ -import React, { useContext, useCallback } from "react"; -import { FormCtx } from "../Form"; -import { Row, Col, Form, Input, Icon } from "antd"; -import MonthPicker from "./MothPicker"; - -export default ({ nameKey, onDelete }) => { - const { getFieldDecorator, getFieldValue } = useContext(FormCtx); - const greatValidater = useCallback((r, v, cb) => { - if (v >= getFieldValue(`experience[${nameKey}].begin_on`)) { - cb(); - } else { - cb("时间范围不正确"); - } - }, []); - return ( -
      - - - - {getFieldDecorator(`experience[${nameKey}].begin_on`, { - rules: [{ required: true, message: "请选择开始日期" }], - })()} - - - - - {getFieldDecorator(`experience[${nameKey}].end_on`, { - rules: [ - { required: true, message: "请选择结束日期" }, - { validator: greatValidater }, - ], - validateFirst: true, - })()} - - - - {onDelete ? ( - - ) : null} - - - - {getFieldDecorator(`experience[${nameKey}].company`, { - rules: [ - { max: 60, message: "超过60字符" }, - { required: true, message: "请输入公司名称" }, - { whitespace: true, message: "不能全空" }, - ], - validateFirst: true, - })()} - - - {getFieldDecorator(`experience[${nameKey}].desc`, { - rules: [ - { max: 5000, message: "超过5000字符" }, - { required: true, message: "请输入工作描述" }, - ], - validateFirst: true, - })( - - )} - -
      - ); -}; diff --git a/src/modules/recruitment/routePage/AddJobPage.js b/src/modules/recruitment/routePage/AddJobPage.js deleted file mode 100644 index 84209889..00000000 --- a/src/modules/recruitment/routePage/AddJobPage.js +++ /dev/null @@ -1,52 +0,0 @@ -import React, { useCallback } from "react"; -import FormPage from "../jobForm/FormPage"; -import { submitJobInfo } from "../data/submitData"; -import { useLoaded } from "../util/hooks"; -import { getProfileLoc } from "../data/getProfileLoc"; -import Loading from "../util/Loading"; -import styled from "styled-components"; -import { FullScreen } from "../util/Layout"; -import { notification } from "antd"; - -const Backgroud = styled(FullScreen)` - background: rgba(245, 246, 249, 1); -`; - -export default ({ history, user }) => { - console.log(user); - const { isLoaded, data: city } = useLoaded(getProfileLoc, [user]); - const submit = useCallback((v) => { - const f = async () => { - await submitJobInfo(v); - notification.open({ - message: "成功", - description: "提交职位成功,请耐心等待审核", - }); - const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); - await wait(1000); - history.push("/recruitment?tab=1&jobstate=drafted"); - }; - f(); - }, []); - const data = { - education: "学历不限", - work_year: "经验不限", - city, - }; - if (!isLoaded) { - return ( - - - - ); - } - return ( - { - history.goBack(); - }} - > - ); -}; diff --git a/src/modules/recruitment/routePage/AddResumePage.js b/src/modules/recruitment/routePage/AddResumePage.js deleted file mode 100644 index 58c2b9e0..00000000 --- a/src/modules/recruitment/routePage/AddResumePage.js +++ /dev/null @@ -1,63 +0,0 @@ -import React, { useRef, useCallback } from "react"; -import styled from "styled-components"; -import Form from "../resumeForm/NormalForm"; -import { CenterBtnGrp, SaveBtn, CancelBtn } from "../util/GeneralButton"; -import { sumitResume } from "../data/sumitResume"; -import Nav from "../util/Nav"; - -const Background = styled.div` - width: 100%; - background: rgba(245, 246, 249, 1); - min-height: 100vh; - padding: 20px; - padding-bottom: 70px; -`; -const Content = styled.div` - width: 1200px; - padding: 40px; - background: rgba(255, 255, 255, 1); - border-radius: 2px; - margin: 0 auto; - margin-bottom: 40px; -`; -const Margin = styled.div` - height: 80px; -`; - -export default ({ history }) => { - console.log(history[0]); - const validator = useRef(null); - const submit = useCallback((v) => { - const f = async () => { - await sumitResume(v); - history.goBack(); - }; - f(); - }, []); - const onOk = useCallback(() => { - validator.current.verify((e, v) => { - if (e) { - return; - } - submit(v); - }); - }, []); - return ( - - - -
      -
      - - { - history.push("/recruitment"); - }} - /> - - - -
      -
      - ); -}; diff --git a/src/modules/recruitment/routePage/ApplierPage.js b/src/modules/recruitment/routePage/ApplierPage.js deleted file mode 100644 index 99d18805..00000000 --- a/src/modules/recruitment/routePage/ApplierPage.js +++ /dev/null @@ -1,63 +0,0 @@ -import React, { useState, useCallback } from "react"; -import styled from "styled-components"; -import { Pagination } from "antd"; -import Header from "../jobAppliers/Header"; -import List from "../jobAppliers/List"; -import Loading from "../util/Loading"; -import { getAppliers } from "../data/getAppliers"; -import Nav from "../util/Nav"; -import { useLoaded } from "../util/hooks"; -import { Link } from "react-router-dom"; - -const GreyBg = styled.div` - width: 100%; - background: rgba(245, 246, 249, 1); - min-height: 100vh; -`; -const Paper = styled.div` - width: 1200px; - padding: 30px; - background: rgba(255, 255, 255, 1); - border-radius: 2px; - margin: 0 auto; - min-height:500px; -`; - -export default ({ jobId, history }) => { - console.log("render"); - const [page, setPage] = useState(1); - const { isLoaded, data } = useLoaded(getAppliers, [jobId, page, history]); - const back = useCallback(() => { - history.push("/recruitment?tab=1&jobstate=published"); - }, []); - let appliers, count; - if (data) { - [appliers, count] = data; - } - return ( - - -