diff --git a/.gitignore b/.gitignore index 4c594b198..fd73cf956 100644 --- a/.gitignore +++ b/.gitignore @@ -87,4 +87,5 @@ typings/ .DS_Store .idea/* +.forgeplus-react.sublime-workspace diff --git a/build.tar.gz b/build.tar.gz new file mode 100644 index 000000000..a0c2de539 Binary files /dev/null and b/build.tar.gz differ diff --git a/forgeplus-react.sublime-workspace b/forgeplus-react.sublime-workspace new file mode 100644 index 000000000..08ec48f4e --- /dev/null +++ b/forgeplus-react.sublime-workspace @@ -0,0 +1,317 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "samp", + "samp2_method" + ], + [ + "modu", + "module_method" + ], + [ + "cu", + "currentTerm" + ], + [ + "req", + "requestVote" + ], + [ + "reque", + "RequestVote" + ], + [ + "App", + "AppendEntries" + ], + [ + "hea", + "heartBeatInterval" + ], + [ + "time", + "timeOut" + ], + [ + "ele", + "electionTimeout" + ], + [ + "R", + "Raft" + ], + [ + "vote", + "votedFor" + ], + [ + "Ra", + "RaftState" + ], + [ + "is", + "isleader" + ] + ] + }, + "buffers": + [ + { + "file": "src/redux/actions/actionTypes.js", + "settings": + { + "buffer_size": 5688, + "encoding": "UTF-8", + "line_ending": "Unix" + } + } + ], + "build_system": "", + "build_system_choices": + [ + ], + "build_varint": "", + "command_palette": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "console": + { + "height": 171.0, + "history": + [ + "ls" + ] + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "expanded_folders": + [ + "/home/qyzh/new_trustie/forgeplus-react" + ], + "file_history": + [ + "/home/qyzh/OSS/forgeplus/app/models/user.rb", + "/home/qyzh/OSS/forgeplus/db/structure.sql", + "/home/qyzh/OSS/forgeplus/app/controllers/settings_controller.rb", + "/home/qyzh/OSS/forgeplus/app/controllers/application_controller.rb", + "/home/qyzh/OSS/Trustie/app/controllers/projects_controller.rb", + "/home/qyzh/temp.sh", + "/home/qyzh/OSS/Trustie/Gemfile", + "/home/qyzh/.npm/_logs/2020-06-07T02_42_06_886Z-debug.log", + "/home/qyzh/OSS/forgeplus/app/controllers/users_controller.rb", + "/home/qyzh/OSS/forgeplus/app/controllers/accounts_controller.rb", + "/home/qyzh/custom/conf/app.ini", + "/home/qyzh/OSS/Trustie_old/Gemfile.lock", + "/home/qyzh/OSS/Trustie/Gemfile.lock", + "/home/qyzh/ruby_study/test.rb", + "/home/qyzh/RubymineProjects/myblog/app/controller/users_controller.rb", + "/home/qyzh/OSS/forgeplus/app/libs/limit_forbid_control.rb", + "/home/qyzh/OSS/forgeplus/log/development.log", + "/home/qyzh/NJU-DisSys-2017/src/raft/raft.go", + "/home/qyzh/OSS/forgeplus/config/application.rb", + "/home/qyzh/RubymineProjects/demo/app/helpers/welcome_helper.rb", + "/home/qyzh/RubymineProjects/demo/app/controllers/welcome_controller.rb", + "/home/qyzh/RubymineProjects/demo/config/routes.rb", + "/home/qyzh/RubymineProjects/demo/app/views/welcome/index.html.erb", + "/home/qyzh/trustie/Gemfile", + "/home/qyzh/trustie/Gemfile.lock", + "/home/qyzh/ruby_study/test", + "/home/qyzh/NJU-DisSys-2017/src/labrpc/test_test.go", + "/home/qyzh/NJU-DisSys-2017/src/labrpc/labrpc.go", + "/home/qyzh/NJU-DisSys-2017/src/raft/test_test.go", + "/home/qyzh/NJU-DisSys-2017/src/raft/persister.go", + "/home/qyzh/NJU-DisSys-2017/src/raft/util.go", + "/home/qyzh/NJU-DisSys-2017/src/raft/config.go" + ], + "find": + { + "height": 29.0 + }, + "find_in_files": + { + "height": 0.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": true, + "find_history": + [ + "current_user", + "user_set", + "login", + "platform", + "Platform不包含于列表中", + "find_by_", + "find_by", + "3.2.22", + "bug", + "persister", + "currentTerm", + "currentTern", + "term", + "your", + "electionInterval", + "your", + "if", + "your", + "Persister", + "make", + "Your code here", + "Call", + "labrpc", + "main" + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + ], + "reverse": false, + "show_context": true, + "use_buffer2": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "selected": 0, + "sheets": + [ + { + "buffer": 0, + "file": "src/redux/actions/actionTypes.js", + "semi_transient": false, + "settings": + { + "buffer_size": 5688, + "regions": + { + }, + "selection": + [ + [ + 0, + 0 + ] + ], + "settings": + { + "syntax": "Packages/JavaScript/JavaScript.sublime-syntax", + "tab_size": 2, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 0, + "type": "text" + } + ] + } + ], + "incremental_find": + { + "height": 29.0 + }, + "input": + { + "height": 0.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "output.find_results": + { + "height": 0.0 + }, + "pinned_build_system": "", + "project": "forgeplus-react.sublime-project", + "replace": + { + "height": 54.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_project": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_symbol": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "selected_group": 0, + "settings": + { + }, + "show_minimap": true, + "show_open_files": false, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 288.0, + "status_bar_visible": true, + "template_settings": + { + } +} diff --git a/package-lock.json b/package-lock.json index 2fe52b998..1adf14a51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -409,6 +409,11 @@ "resolved": "https://registry.npmjs.org/@novnc/novnc/-/novnc-1.2.0.tgz", "integrity": "sha512-FaUckOedGhSbwQBXk/KGyxKt9ngskg4wPw6ghbHWXOUEmQscAZr3467lTU5DSfppwHJt5k+lQiHoeYUuY90l2Q==" }, + "@reach/observe-rect": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@reach/observe-rect/-/observe-rect-1.2.0.tgz", + "integrity": "sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ==" + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz", @@ -418,7 +423,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", - "dev": true, "requires": { "@types/minimatch": "*", "@types/node": "*" @@ -460,14 +464,12 @@ "@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "@types/node": { "version": "16.7.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", - "integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==", - "dev": true + "integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==" }, "@types/prop-types": { "version": "15.7.4", @@ -767,7 +769,6 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" @@ -938,7 +939,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, "requires": { "string-width": "^2.0.0" } @@ -946,8 +946,7 @@ "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" }, "ansi-escapes": { "version": "3.2.0", @@ -957,8 +956,7 @@ "ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" }, "ansi-regex": { "version": "2.1.1", @@ -1202,8 +1200,7 @@ "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "array-flatten": { "version": "2.1.2", @@ -1349,8 +1346,7 @@ "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, "async-validator": { "version": "1.11.5", @@ -2620,8 +2616,7 @@ "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -2724,7 +2719,6 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, "requires": { "bytes": "3.1.0", "content-type": "~1.0.4", @@ -2741,14 +2735,12 @@ "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -2757,7 +2749,6 @@ "version": "0.4.24", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -2765,8 +2756,7 @@ "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" } } }, @@ -2774,7 +2764,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, "requires": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", @@ -2794,7 +2783,6 @@ "version": "1.3.0", "resolved": "https://registry.npmmirror.com/boxen/-/boxen-1.3.0.tgz", "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, "requires": { "ansi-align": "^2.0.0", "camelcase": "^4.0.0", @@ -2808,14 +2796,12 @@ "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3003,8 +2989,7 @@ "buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "buffer-xor": { "version": "1.0.3", @@ -3034,8 +3019,7 @@ "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "cacache": { "version": "10.0.4", @@ -3154,7 +3138,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, "requires": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" @@ -3163,8 +3146,7 @@ "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" } } }, @@ -3208,8 +3190,7 @@ "capture-stack-trace": { "version": "1.0.1", "resolved": "http://173.15.15.82:8081/repository/npm-all/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" }, "case-sensitive-paths-webpack-plugin": { "version": "2.1.1", @@ -3697,8 +3678,7 @@ "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "cli-cursor": { "version": "2.1.0", @@ -3765,8 +3745,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "coa": { "version": "2.0.2", @@ -3896,7 +3875,6 @@ "version": "2.0.18", "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, "requires": { "mime-db": ">= 1.43.0 < 2" } @@ -3905,7 +3883,6 @@ "version": "1.7.4", "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, "requires": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -3920,7 +3897,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3970,7 +3946,6 @@ "version": "3.1.5", "resolved": "https://registry.npmmirror.com/configstore/-/configstore-3.1.5.tgz", "integrity": "sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==", - "dev": true, "requires": { "dot-prop": "^4.2.1", "graceful-fs": "^4.1.2", @@ -3983,8 +3958,7 @@ "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" }, "connected-react-router": { "version": "4.4.1", @@ -4029,7 +4003,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, "requires": { "safe-buffer": "5.1.2" } @@ -4037,8 +4010,7 @@ "content-type": { "version": "1.0.4", "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "content-type-parser": { "version": "1.0.2", @@ -4066,8 +4038,7 @@ "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "copy-anything": { "version": "2.0.6", @@ -4156,7 +4127,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, "requires": { "capture-stack-trace": "^1.0.0" } @@ -4294,7 +4264,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -4328,8 +4297,7 @@ "crypto-random-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, "css-animation": { "version": "1.6.1", @@ -4841,7 +4809,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, "requires": { "array-find-index": "^1.0.1" } @@ -4852,11 +4819,47 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "requires": { + "internmap": "^1.0.0" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, "d3-color": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "requires": { + "d3-array": "^1.1.1" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + } + } + }, + "d3-delaunay": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/d3-delaunay/-/d3-delaunay-5.3.0.tgz", + "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "requires": { + "delaunator": "4" + } + }, "d3-dispatch": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz", @@ -4867,6 +4870,36 @@ "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz", "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" }, + "d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + }, + "d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "requires": { + "d3-array": "1" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + } + } + }, + "d3-hexbin": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/d3-hexbin/-/d3-hexbin-0.2.2.tgz", + "integrity": "sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==" + }, + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + }, "d3-interpolate": { "version": "1.1.6", "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz", @@ -4875,11 +4908,79 @@ "d3-color": "1" } }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "d3-sankey": { + "version": "0.7.1", + "resolved": "https://registry.npmmirror.com/d3-sankey/-/d3-sankey-0.7.1.tgz", + "integrity": "sha512-KAyowBWtTLQxyXq1UhXcdCXKbuCQvL51FgqOS+fKlNTQ/4FfSWabRlWs2DezzwKyredAsOhBSQZN/i0XdeE2tQ==", + "requires": { + "d3-array": "1", + "d3-collection": "1", + "d3-shape": "^1.2.0" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + } + } + }, + "d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "requires": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + }, + "dependencies": { + "d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "requires": { + "d3-color": "1 - 2" + } + } + } + }, "d3-selection": { "version": "1.4.2", "resolved": "https://registry.npmmirror.com/d3-selection/-/d3-selection-1.4.2.tgz", "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "requires": { + "d3-array": "2" + } + }, + "d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "requires": { + "d3-time": "1 - 2" + } + }, "d3-timer": { "version": "1.0.10", "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz", @@ -4898,6 +4999,11 @@ "d3-timer": "1" } }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, "damerau-levenshtein": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", @@ -5001,8 +5107,7 @@ "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deep-is": { "version": "0.1.3", @@ -5018,7 +5123,6 @@ "version": "4.2.0", "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-4.2.0.tgz", "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, "requires": { "execa": "^1.0.0", "ip-regex": "^2.1.0" @@ -5028,7 +5132,6 @@ "version": "6.0.5", "resolved": "http://173.15.15.82:8081/repository/npm-all/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -5041,7 +5144,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -5056,7 +5158,6 @@ "version": "4.1.0", "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -5135,7 +5236,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, "requires": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", @@ -5150,7 +5250,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, "requires": { "array-union": "^1.0.1", "arrify": "^1.0.0", @@ -5162,6 +5261,11 @@ } } }, + "delaunator": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/delaunator/-/delaunator-4.0.1.tgz", + "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -5181,8 +5285,7 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "des.js": { "version": "1.0.1", @@ -5197,14 +5300,12 @@ "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "detect-indent": { "version": "4.0.0", @@ -5217,8 +5318,7 @@ "detect-node": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, "detect-port-alt": { "version": "1.1.6", @@ -5290,14 +5390,12 @@ "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" }, "dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, "requires": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" @@ -5307,7 +5405,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, "requires": { "buffer-indexof": "^1.0.0" } @@ -5396,7 +5493,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/dom-urls/-/dom-urls-1.1.0.tgz", "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=", - "dev": true, "requires": { "urijs": "^1.16.1" } @@ -5472,7 +5568,6 @@ "version": "4.2.1", "resolved": "http://173.15.15.82:8081/repository/npm-all/dot-prop/-/dot-prop-4.2.1.tgz", "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", - "dev": true, "requires": { "is-obj": "^1.0.0" } @@ -5513,8 +5608,7 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { "version": "3.7.1", @@ -5558,8 +5652,7 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "ejs": { "version": "2.7.4", @@ -5614,8 +5707,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "encoding": { "version": "0.1.13", @@ -5629,7 +5721,6 @@ "version": "1.4.4", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -5638,7 +5729,6 @@ "version": "4.5.0", "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", @@ -5720,8 +5810,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { "version": "1.0.5", @@ -6234,8 +6323,7 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter3": { "version": "2.0.3", @@ -6257,7 +6345,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "dev": true, "requires": { "original": "^1.0.0" } @@ -6284,7 +6371,6 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -6315,7 +6401,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } @@ -6324,7 +6409,6 @@ "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, "requires": { "accepts": "~1.3.7", "array-flatten": "1.1.1", @@ -6361,20 +6445,17 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -6382,14 +6463,12 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" } } }, @@ -6784,7 +6863,6 @@ "version": "0.11.4", "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, "requires": { "websocket-driver": ">=0.5.1" } @@ -6986,7 +7064,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -7001,7 +7078,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -7031,7 +7107,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/findup-sync/-/findup-sync-3.0.0.tgz", "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, "requires": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", @@ -7042,20 +7117,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -7073,7 +7145,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7084,7 +7155,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -7093,7 +7163,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -7108,7 +7177,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -7117,7 +7185,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7126,7 +7193,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -7135,7 +7201,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -7146,7 +7211,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -7155,7 +7219,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -7166,7 +7229,6 @@ "version": "0.1.6", "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -7176,8 +7238,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -7185,7 +7246,6 @@ "version": "2.0.4", "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -7201,7 +7261,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -7210,7 +7269,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7221,7 +7279,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -7233,7 +7290,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7244,7 +7300,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7252,14 +7307,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7268,7 +7321,6 @@ "version": "1.0.2", "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -7278,14 +7330,12 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -7294,7 +7344,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -7303,7 +7352,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -7313,20 +7361,17 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -7434,7 +7479,6 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, "requires": { "debug": "=3.1.0" } @@ -7766,8 +7810,7 @@ "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "fragment-cache": { "version": "0.2.1", @@ -7780,8 +7823,7 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "from2": { "version": "2.3.0", @@ -7943,14 +7985,12 @@ "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { "version": "2.0.6", @@ -8013,7 +8053,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, "requires": { "ini": "^1.3.4" } @@ -8092,7 +8131,6 @@ "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, "requires": { "create-error-class": "^3.0.0", "duplexer3": "^0.1.4", @@ -8146,8 +8184,7 @@ "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, "handlebars": { "version": "4.7.7", @@ -8426,6 +8463,11 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -8447,7 +8489,6 @@ "version": "1.0.3", "resolved": "https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, "requires": { "parse-passwd": "^1.0.0" } @@ -8467,7 +8508,6 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, "requires": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -8498,8 +8538,7 @@ "html-entities": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" }, "html-minifier-terser": { "version": "5.1.1", @@ -8556,14 +8595,12 @@ "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -8575,22 +8612,19 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, "http-parser-js": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", - "dev": true + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" }, "http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, "requires": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -8600,8 +8634,7 @@ "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" } } }, @@ -8634,7 +8667,6 @@ "version": "0.19.1", "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, "requires": { "http-proxy": "^1.17.0", "is-glob": "^4.0.0", @@ -8645,20 +8677,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -8676,7 +8705,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -8687,7 +8715,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -8696,7 +8723,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -8711,7 +8737,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -8720,7 +8745,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -8729,7 +8753,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -8738,7 +8761,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -8749,7 +8771,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -8758,7 +8779,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -8769,7 +8789,6 @@ "version": "0.1.6", "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -8779,8 +8798,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -8788,7 +8806,6 @@ "version": "2.0.4", "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -8804,7 +8821,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -8813,7 +8829,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -8824,7 +8839,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -8836,7 +8850,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -8847,7 +8860,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -8855,14 +8867,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -8871,7 +8881,6 @@ "version": "1.0.2", "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -8881,14 +8890,12 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -8897,7 +8904,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -8906,7 +8912,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -8916,20 +8921,17 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -9130,14 +9132,12 @@ "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "import-local": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/import-local/-/import-local-2.0.0.tgz", "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, "requires": { "pkg-dir": "^3.0.0", "resolve-cwd": "^2.0.0" @@ -9147,7 +9147,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -9156,7 +9155,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -9166,7 +9164,6 @@ "version": "2.3.0", "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -9175,7 +9172,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -9183,14 +9179,12 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, "requires": { "find-up": "^3.0.0" } @@ -9200,8 +9194,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "in-publish": { "version": "2.0.1", @@ -9221,7 +9214,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, "requires": { "repeating": "^2.0.0" } @@ -9316,7 +9308,6 @@ "version": "4.3.0", "resolved": "https://registry.npmmirror.com/internal-ip/-/internal-ip-4.3.0.tgz", "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, "requires": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" @@ -9332,11 +9323,15 @@ "side-channel": "^1.0.4" } }, + "internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "intersection-observer": { "version": "0.7.0", @@ -9359,26 +9354,22 @@ "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, "is-absolute-url": { "version": "3.0.3", "resolved": "http://173.15.15.82:8081/repository/npm-all/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" }, "is-accessor-descriptor": { "version": "0.1.6", @@ -9569,7 +9560,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, "requires": { "global-dirs": "^0.1.0", "is-path-inside": "^1.0.0" @@ -9588,8 +9578,7 @@ "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "is-number": { "version": "2.1.0", @@ -9610,20 +9599,17 @@ "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true + "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", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" }, "is-path-in-cwd": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, "requires": { "is-path-inside": "^1.0.0" } @@ -9632,7 +9618,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, "requires": { "path-is-inside": "^1.0.1" } @@ -9675,8 +9660,7 @@ "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-regex": { "version": "1.1.4", @@ -9696,8 +9680,7 @@ "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" }, "is-root": { "version": "2.1.0", @@ -10401,8 +10384,7 @@ "json3": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" }, "json5": { "version": "0.5.1", @@ -10413,7 +10395,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -10601,8 +10582,7 @@ "killable": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" }, "kind-of": { "version": "3.2.2", @@ -10633,7 +10613,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, "requires": { "package-json": "^4.0.0" } @@ -10804,8 +10783,7 @@ "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" }, "lodash.cond": { "version": "4.5.2", @@ -10827,8 +10805,7 @@ "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" }, "lodash.flow": { "version": "3.5.0", @@ -10851,7 +10828,6 @@ "version": "4.5.0", "resolved": "https://registry.npmmirror.com/lodash.template/-/lodash.template-4.5.0.tgz", "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, "requires": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -10861,7 +10837,6 @@ "version": "4.2.0", "resolved": "https://registry.npmmirror.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, "requires": { "lodash._reinterpolate": "^3.0.0" } @@ -10899,7 +10874,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -10917,14 +10891,12 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -10934,7 +10906,6 @@ "version": "1.3.0", "resolved": "http://173.15.15.82:8081/repository/npm-all/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, "requires": { "pify": "^3.0.0" }, @@ -10942,8 +10913,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -10963,8 +10933,7 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, "map-visit": { "version": "1.0.0", @@ -11076,8 +11045,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "memoize-one": { "version": "5.2.1", @@ -11088,7 +11056,6 @@ "version": "0.5.0", "resolved": "http://173.15.15.82:8081/repository/npm-all/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -11098,7 +11065,6 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, "requires": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", @@ -11128,8 +11094,7 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge-stream": { "version": "2.0.0", @@ -11145,8 +11110,7 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "microevent.ts": { "version": "0.1.1", @@ -11266,8 +11230,7 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimalistic-crypto-utils": { "version": "1.0.1", @@ -11439,7 +11402,6 @@ "version": "6.2.3", "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, "requires": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" @@ -11448,8 +11410,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", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" }, "mutationobserver-shim": { "version": "0.3.7", @@ -11515,8 +11476,7 @@ "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "neo-async": { "version": "2.6.2", @@ -11550,8 +11510,7 @@ "node-forge": { "version": "0.10.0", "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" }, "node-gyp": { "version": "3.8.0", @@ -11738,7 +11697,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "^2.0.0" } @@ -11879,7 +11837,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", - "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -11935,8 +11892,7 @@ "obuf": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "omit.js": { "version": "1.0.2", @@ -11950,7 +11906,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, "requires": { "ee-first": "1.1.1" } @@ -11958,8 +11913,7 @@ "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, "once": { "version": "1.4.0", @@ -12006,7 +11960,6 @@ "version": "5.5.0", "resolved": "https://registry.npmmirror.com/opn/-/opn-5.5.0.tgz", "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, "requires": { "is-wsl": "^1.1.0" } @@ -12038,7 +11991,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, "requires": { "url-parse": "^1.4.3" } @@ -12091,8 +12043,7 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.3.0", @@ -12119,7 +12070,6 @@ "version": "3.0.1", "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-3.0.1.tgz", "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, "requires": { "retry": "^0.12.0" } @@ -12133,7 +12083,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, "requires": { "got": "^6.7.1", "registry-auth-token": "^3.0.1", @@ -12208,8 +12157,7 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "parse5": { "version": "1.5.1", @@ -12219,8 +12167,7 @@ "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "pascal-case": { "version": "3.1.2", @@ -12261,8 +12208,7 @@ "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", @@ -12373,7 +12319,6 @@ "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, "requires": { "async": "^2.6.2", "debug": "^3.1.1", @@ -12384,7 +12329,6 @@ "version": "3.2.7", "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -12392,8 +12336,7 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" } } }, @@ -14390,8 +14333,7 @@ "pretty-bytes": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" }, "pretty-error": { "version": "2.1.2", @@ -14461,7 +14403,6 @@ "version": "2.0.7", "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, "requires": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -14475,8 +14416,7 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { "version": "1.8.0", @@ -14509,7 +14449,6 @@ "version": "3.0.0", "resolved": "http://173.15.15.82:8081/repository/npm-all/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -14652,8 +14591,7 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "querystring-es3": { "version": "0.2.1", @@ -14664,8 +14602,7 @@ "querystringify": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "quill": { "version": "1.3.7", @@ -14760,14 +14697,12 @@ "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, "requires": { "bytes": "3.1.0", "http-errors": "1.7.2", @@ -14778,14 +14713,12 @@ "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -14796,7 +14729,6 @@ "version": "1.2.8", "resolved": "https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -15388,6 +15320,18 @@ "tiny-invariant": "^1.0.4" } }, + "react-charts": { + "version": "2.0.0-beta.7", + "resolved": "https://registry.npmmirror.com/react-charts/-/react-charts-2.0.0-beta.7.tgz", + "integrity": "sha512-iUspg9rnx7kD0H/wsK67HNUioOgKgJ8WRXr/Tk3EGP2qcFb9Vo7pjDk4oz1jH12TC+mqL+HFxNYraMkhWd6CUw==", + "requires": { + "@reach/observe-rect": "^1.1.0", + "d3-delaunay": "^5.2.1", + "d3-scale": "^3.2.1", + "d3-shape": "^1.3.7", + "d3-voronoi": "^1.1.2" + } + }, "react-codemirror": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/react-codemirror/-/react-codemirror-1.0.0.tgz", @@ -15840,6 +15784,23 @@ } } }, + "react-motion": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/react-motion/-/react-motion-0.5.2.tgz", + "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", + "requires": { + "performance-now": "^0.2.0", + "prop-types": "^15.5.8", + "raf": "^3.1.0" + }, + "dependencies": { + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha512-YHk5ez1hmMR5LOkb9iJkLKqoBlL7WD5M8ljC75ZfzXriuBIVNuecaXuU7e+hOwyqf24Wxhh7Vxgt7Hnw9288Tg==" + } + } + }, "react-onclickoutside": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.11.2.tgz", @@ -16061,6 +16022,70 @@ } } }, + "react-vis": { + "version": "1.11.12", + "resolved": "https://registry.npmmirror.com/react-vis/-/react-vis-1.11.12.tgz", + "integrity": "sha512-WuYZrwrH/cXgxKcynciuwZ6+6V9a5N43qa4Wwfgll/tyLq+ACcJ5m8fHFXQk7fQBK80RAp61Oc+a+T64woorvw==", + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "^1.0.3", + "d3-color": "^1.0.3", + "d3-contour": "^1.1.0", + "d3-format": "^1.2.0", + "d3-geo": "^1.6.4", + "d3-hexbin": "^0.2.2", + "d3-hierarchy": "^1.1.4", + "d3-interpolate": "^1.1.4", + "d3-sankey": "^0.7.1", + "d3-scale": "^1.0.5", + "d3-shape": "^1.1.0", + "d3-voronoi": "^1.1.2", + "deep-equal": "^1.0.1", + "global": "^4.3.1", + "hoek": "4.2.1", + "prop-types": "^15.5.8", + "react-motion": "^0.5.2" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "d3-scale": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-1.0.7.tgz", + "integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==", + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-color": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "requires": { + "d3-time": "1" + } + } + } + }, "react-zmage": { "version": "0.8.5-beta.37", "resolved": "https://registry.npmmirror.com/react-zmage/-/react-zmage-0.8.5-beta.37.tgz", @@ -16434,7 +16459,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, "requires": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" @@ -16531,7 +16555,6 @@ "version": "3.4.0", "resolved": "https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz", "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", - "dev": true, "requires": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" @@ -16541,7 +16564,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, "requires": { "rc": "^1.0.1" } @@ -16674,8 +16696,7 @@ "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "reqwest": { "version": "2.0.5", @@ -16701,7 +16722,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, "requires": { "resolve-from": "^3.0.0" }, @@ -16709,8 +16729,7 @@ "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" } } }, @@ -16718,7 +16737,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -16728,7 +16746,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -16739,7 +16756,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, "requires": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -16791,8 +16807,7 @@ "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, "rgb-regex": { "version": "1.0.1", @@ -17428,14 +17443,12 @@ "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { "version": "1.10.11", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", - "dev": true, "requires": { "node-forge": "^0.10.0" } @@ -17449,7 +17462,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, "requires": { "semver": "^5.0.3" } @@ -17458,7 +17470,6 @@ "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -17479,7 +17490,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" }, @@ -17487,16 +17497,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -17516,7 +17524,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, "requires": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -17531,7 +17538,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -17540,7 +17546,6 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -17551,14 +17556,12 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" } } }, @@ -17566,7 +17569,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -17577,8 +17579,7 @@ "serviceworker-cache-polyfill": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz", - "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=", - "dev": true + "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=" }, "set-blocking": { "version": "2.0.0", @@ -17614,8 +17615,7 @@ "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "sha.js": { "version": "2.4.11", @@ -18168,7 +18168,6 @@ "version": "0.3.21", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", - "dev": true, "requires": { "faye-websocket": "^0.11.3", "uuid": "^3.4.0", @@ -18179,7 +18178,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", - "dev": true, "requires": { "debug": "^3.2.6", "eventsource": "^1.0.7", @@ -18193,7 +18191,6 @@ "version": "3.2.7", "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -18201,8 +18198,7 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" } } }, @@ -18288,7 +18284,6 @@ "version": "4.0.2", "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, "requires": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -18301,7 +18296,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -18309,8 +18303,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -18318,7 +18311,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, "requires": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -18332,7 +18324,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -18340,14 +18331,12 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18422,8 +18411,7 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stdout-stream": { "version": "1.4.1", @@ -18580,14 +18568,12 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, "requires": { "get-stdin": "^4.0.1" } @@ -18595,8 +18581,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { "version": "0.19.0", @@ -18874,7 +18859,6 @@ "version": "5.2.1", "resolved": "https://registry.npmmirror.com/sw-precache/-/sw-precache-5.2.1.tgz", "integrity": "sha512-8FAy+BP/FXE+ILfiVTt+GQJ6UEf4CVHD9OfhzH0JX+3zoy2uFk7Vn9EfXASOtVmmIVbL3jE/W8Z66VgPSZcMhw==", - "dev": true, "requires": { "dom-urls": "^1.1.0", "es6-promise": "^4.0.5", @@ -18892,7 +18876,6 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz", "integrity": "sha1-ppUBflTu1XVVFJOlGdwdqNotxeA=", - "dev": true, "requires": { "del": "^2.2.2", "sw-precache": "^5.1.1", @@ -18902,8 +18885,7 @@ "uglify-js": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.1.tgz", - "integrity": "sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==", - "dev": true + "integrity": "sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==" } } }, @@ -18911,7 +18893,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz", "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=", - "dev": true, "requires": { "path-to-regexp": "^1.0.1", "serviceworker-cache-polyfill": "^4.0.0" @@ -18996,7 +18977,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, "requires": { "execa": "^0.7.0" } @@ -19256,14 +19236,12 @@ "thunky": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { "version": "2.0.12", @@ -19370,8 +19348,7 @@ "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, "tough-cookie": { "version": "2.5.0", @@ -19390,8 +19367,7 @@ "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, "trim-right": { "version": "1.0.1", @@ -19450,7 +19426,6 @@ "version": "1.6.18", "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -19737,7 +19712,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, "requires": { "crypto-random-string": "^1.0.0" } @@ -19750,8 +19724,7 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unquote": { "version": "1.1.1", @@ -19803,8 +19776,7 @@ "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, "upath": { "version": "1.2.0", @@ -19815,7 +19787,6 @@ "version": "2.5.0", "resolved": "https://registry.npmmirror.com/update-notifier/-/update-notifier-2.5.0.tgz", "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, "requires": { "boxen": "^1.2.1", "chalk": "^2.0.1", @@ -19833,7 +19804,6 @@ "version": "2.4.2", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -19853,8 +19823,7 @@ "urijs": { "version": "1.19.7", "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.7.tgz", - "integrity": "sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA==", - "dev": true + "integrity": "sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA==" }, "urix": { "version": "0.1.0", @@ -19865,7 +19834,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -19874,8 +19842,7 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, @@ -19883,7 +19850,6 @@ "version": "0.6.2", "resolved": "https://registry.npmmirror.com/url-loader/-/url-loader-0.6.2.tgz", "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", - "dev": true, "requires": { "loader-utils": "^1.0.2", "mime": "^1.4.1", @@ -19894,7 +19860,6 @@ "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, "requires": { "co": "^4.6.0", "fast-deep-equal": "^1.0.0", @@ -19905,20 +19870,17 @@ "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "schema-utils": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, "requires": { "ajv": "^5.0.0" } @@ -19929,7 +19891,6 @@ "version": "1.5.3", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", - "dev": true, "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -19939,7 +19900,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, "requires": { "prepend-http": "^1.0.1" } @@ -20017,8 +19977,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.4.0", @@ -20028,8 +19987,7 @@ "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "v8flags": { "version": "2.1.1", @@ -20057,8 +20015,7 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "vendors": { "version": "1.0.4", @@ -20223,13 +20180,15 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "dev": true, + "optional": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, + "optional": true, "requires": { "is-extglob": "^2.1.1" } @@ -20284,7 +20243,6 @@ "version": "1.7.3", "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, "requires": { "minimalistic-assert": "^1.0.0" } @@ -20882,7 +20840,6 @@ "version": "3.3.12", "resolved": "https://registry.npmmirror.com/webpack-cli/-/webpack-cli-3.3.12.tgz", "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dev": true, "requires": { "chalk": "^2.4.2", "cross-spawn": "^6.0.5", @@ -20900,20 +20857,17 @@ "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -20924,7 +20878,6 @@ "version": "5.5.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -20935,7 +20888,6 @@ "version": "5.0.0", "resolved": "https://registry.npmmirror.com/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -20946,7 +20898,6 @@ "version": "6.0.5", "resolved": "http://173.15.15.82:8081/repository/npm-all/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -20958,14 +20909,12 @@ "emoji-regex": { "version": "7.0.3", "resolved": "http://173.15.15.82:8081/repository/npm-all/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -20973,14 +20922,12 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -20990,7 +20937,6 @@ "version": "2.3.0", "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -20999,7 +20945,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -21007,20 +20952,17 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -21031,7 +20973,6 @@ "version": "5.2.0", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -21040,7 +20981,6 @@ "version": "6.1.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -21048,14 +20988,12 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -21065,14 +21003,12 @@ "y18n": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -21090,7 +21026,6 @@ "version": "13.1.2", "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -21102,7 +21037,6 @@ "version": "3.7.3", "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, "requires": { "memory-fs": "^0.4.1", "mime": "^2.4.4", @@ -21115,7 +21049,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -21124,8 +21057,7 @@ "mime": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" } } }, @@ -21133,7 +21065,6 @@ "version": "3.11.2", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", - "dev": true, "requires": { "ansi-html": "0.0.7", "bonjour": "^3.5.0", @@ -21173,20 +21104,17 @@ "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -21197,7 +21125,6 @@ "version": "5.2.0", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -21208,7 +21135,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -21217,7 +21143,6 @@ "version": "4.1.1", "resolved": "https://registry.npmmirror.com/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, "requires": { "@types/glob": "^7.1.1", "globby": "^6.1.0", @@ -21231,14 +21156,12 @@ "emoji-regex": { "version": "7.0.3", "resolved": "http://173.15.15.82:8081/repository/npm-all/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -21246,14 +21169,12 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, "requires": { "array-union": "^1.0.1", "glob": "^7.0.3", @@ -21265,22 +21186,19 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" }, "is-path-in-cwd": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, "requires": { "is-path-inside": "^2.1.0" } @@ -21289,7 +21207,6 @@ "version": "2.1.0", "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, "requires": { "path-is-inside": "^1.0.2" } @@ -21298,7 +21215,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -21307,14 +21223,12 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -21323,7 +21237,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -21331,32 +21244,27 @@ "p-map": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "schema-utils": { "version": "1.0.0", "resolved": "http://173.15.15.82:8081/repository/npm-all/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, "requires": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -21366,14 +21274,12 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -21384,7 +21290,6 @@ "version": "5.2.0", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -21395,7 +21300,6 @@ "version": "6.1.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -21403,14 +21307,12 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -21421,7 +21323,6 @@ "version": "5.2.0", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -21432,7 +21333,6 @@ "version": "6.2.2", "resolved": "https://registry.npmmirror.com/ws/-/ws-6.2.2.tgz", "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, "requires": { "async-limiter": "~1.0.0" } @@ -21440,14 +21340,12 @@ "y18n": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -21465,7 +21363,6 @@ "version": "13.1.2", "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -21477,7 +21374,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/webpack-log/-/webpack-log-2.0.0.tgz", "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, "requires": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" @@ -21487,7 +21383,6 @@ "version": "2.2.0", "resolved": "https://registry.npmmirror.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", - "dev": true, "requires": { "fs-extra": "^7.0.0", "lodash": ">=3.5 <5", @@ -21499,7 +21394,6 @@ "version": "7.0.1", "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -21521,7 +21415,6 @@ "version": "0.7.4", "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -21531,8 +21424,7 @@ "websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" }, "webworkify-webpack": { "version": "2.1.5", @@ -21621,7 +21513,6 @@ "version": "2.0.1", "resolved": "https://registry.npmmirror.com/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "dev": true, "requires": { "string-width": "^2.1.1" } @@ -21717,7 +21608,6 @@ "version": "2.4.3", "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -21732,8 +21622,7 @@ "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" }, "xml-name-validator": { "version": "2.0.1", @@ -21769,8 +21658,7 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "3.10.0", diff --git a/package.json b/package.json index 81b80eb40..259620315 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "rc-upload": "^2.9.4", "react": "^16.13.1", "react-beautiful-dnd": "^10.0.4", + "react-charts": "^2.0.0-beta.7", "react-codemirror": "^1.0.0", "react-codemirror2": "^6.0.1", "react-color": "^2.18.0", @@ -85,6 +86,7 @@ "react-slick": "^0.28.1", "react-split-pane": "^0.1.91", "react-url-query": "^1.5.0", + "react-vis": "^1.11.7", "react-zmage": "^0.8.5-beta.31", "redux": "^4.0.5", "redux-thunk": "2.3.0", @@ -96,6 +98,11 @@ "slick-carousel": "^1.8.1", "store": "^2.0.12", "styled-components": "^4.4.1", + "sw-precache-webpack-plugin": "0.11.4", + "url-loader": "0.6.2", + "webpack-cli": "^3.3.11", + "webpack-dev-server": "^3.11.0", + "webpack-manifest-plugin": "^2.2.0", "whatwg-fetch": "2.0.3", "wrap-md-editor": "^0.2.20", "xterm": "4.8.1", diff --git a/src/App.js b/src/App.js index 42f8bef51..a3623ef04 100644 --- a/src/App.js +++ b/src/App.js @@ -82,6 +82,20 @@ const OrganizeIndex = Loadable({ loader: () => import('./forge/Team/Index'), loading: Loading, }) +// Sponsor +const Sponsor = Loadable({ + loader: () => import('./forge/sponsor/Sponsor'), + loading: Loading, +}) +// Sponsor Confirmation +const SponsorConfirmation = Loadable({ + loader: () => import('./forge/sponsor/SponsorConfirmation'), + loading: Loading, +}) +const EducoderLogin = Loadable({ + loader: () => import('./modules/login/EducoderLogin'), + loading: Loading, +}) const Search = Loadable({ loader: () => import('./modules/search/'), @@ -350,7 +364,7 @@ class App extends Component { } }> - + {/*403*/} @@ -387,7 +401,7 @@ class App extends Component { path="/login" render={(props) =>} > - + {/* 注册 */} - + {/*新建项目等*/} ) } }> - + () + }> + + () + }> + diff --git a/src/AppConfig.js b/src/AppConfig.js index cf7fe8b6a..3400ebce3 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -33,7 +33,6 @@ export function initAxiosInterceptors(props) { initOnlineOfflineListener(); var proxy = "https://testforgeplus.trustie.net"; - //响应前的设置 axios.interceptors.request.use( config => { diff --git a/src/forge/Main/sub/DetailBanner.jsx b/src/forge/Main/sub/DetailBanner.jsx index fc4196afd..58622e1a6 100644 --- a/src/forge/Main/sub/DetailBanner.jsx +++ b/src/forge/Main/sub/DetailBanner.jsx @@ -99,7 +99,7 @@ function DetailBanner({ history,list , owner , projectsId ,showNotification , ur {/* */} 引擎(Engine)
- {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} + {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} :"" @@ -117,7 +117,7 @@ function DetailBanner({ history,list , owner , projectsId ,showNotification , ur { item.menu_name === "versions" &&
  • - + 里程碑 {projectDetail && projectDetail.versions_count ? {numFormat(projectDetail.versions_count)} :""} diff --git a/src/forge/Version/UpdateVersion.js b/src/forge/Version/UpdateVersion.js new file mode 100644 index 000000000..d9eebeddd --- /dev/null +++ b/src/forge/Version/UpdateVersion.js @@ -0,0 +1,191 @@ +import React , { Component } from "react"; +import { Form , Input , Select,Divider,Button,Checkbox,Dropdown,Menu} from 'antd'; +import {Link} from 'react-router-dom'; + +import UploadComponent from '../Upload/Index'; +import '../Order/order.css'; +import './version.css'; + +import axios from 'axios'; + +const Option = Select.Option; +const TextArea = Input.TextArea; +class NewVersion extends Component{ + constructor(props){ + super(props); + this.state={ + branch_name:"", + issue_tag_ids:"", + fixed_version_id:"", + issue_chosen:undefined, + fileList:undefined, + ischeck:undefined, + pull:undefined, + tag_name:'', + data:undefined + } + } + + componentDidMount=()=>{ + this.getSelectList(); + } + + getSelectList=()=>{ + const { projectsId,versionId} = this.props.match.params; + const url = `/projects/${projectsId}/version_releases/${versionId}/edit.json`; + axios.get(url).then((result)=>{ + if(result){ + this.setState({ + data:result.data, + pull:result.data.target_commitish + }) + } + }).catch((error)=>{ + console.log(error); + }) + } + + + //delete + deleteversion=()=>{ + const { projectsId , versionId} = this.props.match.params; + const url = `/projects/${projectsId}/version_releases/${versionId}.json`; + axios.delete(url,{ data: { + project_id: projectsId, + id:versionId + } + }).then((result)=>{ + if(result){ + this.props.history.push(`/projects/${projectsId}/version`); + + } + }).catch((error)=>{ + console.log(error); + }) + } + + // 创建 + handleSubmit=()=>{ + this.props.form.validateFieldsAndScroll((err, values) => { + if(!err){ + const { projectsId,versionId} = this.props.match.params; + const { pull,ischeck } = this.state; + const url = `/projects/${projectsId}/version_releases/${versionId}.json`; + // if(values.issue_type==="普通"){ + // values.issue_type="1" + // } + axios.put(url,{ + ...values, + tag_name:this.state.data&&this.state.data.tag_name, + draft:false, + prerelease:ischeck, + target_commitish:pull + }).then(result=>{ + if(result){ + this.props.history.push(`/projects/${projectsId}/version`); + } + }).catch(error=>{ + console.log(error); + }) + + } + }) + } + + RedieonChange=(e)=>{ + this.setState({ + ischeck:e.target.checked + }) + } + Preservation=()=>{ + alert(this.state.data.tag_name) + } + + renderMenu =(array,id)=>{ + return( + + { + array && array.length > 0 && array.map((item,key)=>{ + return( + this.getOption(item)}>{item} + ) + }) + } + + ) + } + + getOption=(name)=>{ + this.setState({ + pull:name + }) + + } + + changmodelname=(e)=>{ + this.setState({ + tag_name:e.target.value + }) + } + + render(){ + const { getFieldDecorator } = this.props.form; + const { projectsId } = this.props.match.params; + return( +
    +
    +

    发布新版

    +
    版本发布组织项目的版本。
    + +
    + {this.state.data&&this.state.data.tag_name}@{this.state.data&&this.state.data.target_commitish} +
    +
    +
    +

    标题

    +
    + + {getFieldDecorator('name', { + rules: [{ + required: true, message: '请输入标题' + }], + initialValue:this.state.data&&this.state.data.name + + })( + + )} + +
    +

    内容

    + + {getFieldDecorator('body', { + rules: [{ + required: true, message: '请输入描述内容' + }], + initialValue:this.state.data&&this.state.data.body + })( + + )} + + + ) + } +} +); + +class Sponsor extends Component { + + constructor(props) { + super(props); + this.state = { + isSpin: false, + user: undefined, + sponsor_description: undefined, + sponsors: undefined, + edit: false, + tiers: [], + }; + } + + componentDidMount = () => { + this.fetchUser(); + this.fetchData(); + }; + + fetchUser = () => { + this.setState({ + isSpin: true, + }); + const { current_user } = this.props; + const { username } = this.props.match.params; + + let url = `/users/${username || (current_user && current_user.login)}.json`; + axios + .get(url) + .then((result) => { + // TODO: 在这里添加了对用户自我介绍的处理,前后端交互实现后需要删掉 + // result.data.sponsor_description = tempDesc; + this.setState({ + user: result.data, + sponsor_description: result.data.sponsor_description, + isSpin: false, + }, () => {this.fetchSponsors()}); + // console.log(result.data); + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + }; + + fetchSponsors = () => { + // console.log("fetch sponsors"); + const user_id = this.state.user.user_id; + + let url = `/sponsorships/sponsored.json`; + + axios.get(url, {params: {id: user_id}}) + .then((result) => { + // console.log(result); + this.setState({ + sponsors: result.data.sponsorships, + isSpin: false, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + + // this.setState({ + // sponsors: tempData, + // displayList: tempData, + // }) + // this.setState({ + // sponsors: tempSponsors, + // }); + } + + fetchData = () => { + let url = `/sponsor_tiers.json`; + const user_login = this.props.match.params.username; + axios + .get(url, {params:{login: user_login}}) + .then((result) => { + // console.log(result.data); + // console.log(tempData) + this.setState({ + tiers: result.data + }); + }) + .catch((error) => { + console.log(error); + }) + } + + editDescription = () => { + this.setState({ + edit: true, + }); + } + + cancelEdit = () => { + this.setState({ + edit: false, + }) + } + + confirmEdit = () => { + //TODO: 增加和后端交互 + let value = this.formRef.getItemsValue().sponsor_description; + // console.log(value); + let user = this.state.user; + let url = `/users/${user.user_id}/update_sponsor_description.json` + axios.put(url, {sponsor_description: value}) + .then((result) => { + user.sponsor_description = value; + this.setState({ + user: user, + edit: false + }) + this.props.showNotification("修改成功") + }) + .catch(error => { + console.log(error); + this.props.showNotification("修改失败") + }) + + + // if (user){ + // user.sponsor_description = value; + // } + // this.setState({ + // user: user, + // edit: false, + // }); + } + + visitorTemplate = () => { + const user = this.state.user; + return ( +
    + {user && user.sponsor_description? + (

    {user.sponsor_description}

    ):(

    暂无自我介绍

    )} +
    + ); + } + + manageTemplate = () => { + const user = this.state.user; + return ( +
    +
    + this.editDescription()}> +
    + {user && user.sponsor_description? (
    {user.sponsor_description}
    ):(
    暂无自我介绍
    )} +
    + ); + } + + editTemplate = () => { + const user = this.state.user; + return ( +
    + this.formRef = form} + /> + + +
    + ); + } + + sponsorList(){ + const {sponsors} = this.state; + const sponsorList = (sponsors && sponsors.length>0 ? sponsors.map((item, key)=>{ + return ( + + + ); + }) + :"") + return (

    {sponsorList}

    ); + } + + render(){ + const { current_user} = this.props; + const { user, isSpin, tiers} = this.state; + const sponsorList = this.sponsorList(); + // console.log(tiers); + + var content = ""; + if (current_user && user && user.login !== current_user.login){ + content = this.visitorTemplate(); + } + else if(current_user && user && user.login === current_user.login && this.state.edit){ + content = this.editTemplate(); + } + else if(current_user && user && user.login === current_user.login && !this.state.edit){ + content = this.manageTemplate(); + } + + return ( +
    + +
    +
    +
    +
    成为{user && user.username}的赞助者吧
    +
    + {user && user.user_identity && ( +
    + {user && user.user_identity} +
    + )} +
    + + {content} + +
    + 赞助者: + {sponsorList} +
    +
    + +
    + {/*
    + {content} +
    +
    + 赞助者: + {sponsorList} +
    */} +
    +
    +
    + + +
    +
    +
    +
    + ); + + } + +} + +export default withRouter( + ImageLayerOfCommentHOC({ + imgSelector: ".imageLayerParent img, .imageLayerParent .imageTarget", + parentSelector: ".newMain", + })(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(Sponsor)))) + ); + \ No newline at end of file diff --git a/src/forge/sponsor/SponsorConfirmation.js b/src/forge/sponsor/SponsorConfirmation.js new file mode 100644 index 000000000..07a0aa3d2 --- /dev/null +++ b/src/forge/sponsor/SponsorConfirmation.js @@ -0,0 +1,325 @@ +import React, { Component } from "react"; +import { Link } from "react-router-dom"; +import { Avatar, Tag, Button, Spin, Input, Divider, Form, Radio, Alert, message, Modal} from "antd"; +import { Route, Switch } from "react-router-dom"; +import { withRouter } from "react-router"; + +import { SnackbarHOC } from "educoder"; +import { CNotificationHOC } from "../../modules/courses/common/CNotificationHOC"; +import { TPMIndexHOC } from "../../modules/tpm/TPMIndexHOC"; + +import axios from "axios"; +import { getImageUrl } from "educoder"; + +import Loadable from "react-loadable"; +import Loading from "../../Loading"; +import { ImageLayerOfCommentHOC } from "../../modules/page/layers/ImageLayerOfCommentHOC"; + +import "../users/new_user.css"; +import "../css/index.scss"; +import '../users/Index.scss'; +import "./sponsor.css"; +import { submitUserCode } from "../../redux/actions/ojForUser"; + +const tempData = {amount:100, description: "如果您更加慷慨的话就选择这个"}; +const tempBalance = 999; +const FormItem = Form.Item; +const { confirm } = Modal; + +const SponsorConfirmation = Form.create()( +class extends Component{ + + constructor(props) { + super(props); + this.state = { + isSpin: false, + user: undefined, + tier: undefined, + single: false, + balance: undefined, + is_sponsoring: false, + visible: false, + sponsorship_id: undefined, + }; + } + + componentDidMount = () => { + this.fetchUser(); + this.fetchTierInformation(); + this.fetchBalance(); + // this.fetchData(); + }; + + //组件刚刚挂载时,TPMINDEXHOC还没从后端获取current_user,需要在获取后,再使用current_user的内容 + componentWillReceiveProps = () => { + if (this.props.current_user) + this.fetchBalance(); + } + + fetchUser = () => { + this.setState({ + isSpin: true, + }); + const { current_user } = this.props; + const { username } = this.props.match.params; + + let url = `/users/${username || (current_user && current_user.login)}.json`; + axios + .get(url) + .then((result) => { + this.setState({ + user: result.data, + isSpin: false, + }); + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + }; + + fetchTierInformation = () => { + const { current_user } = this.props; + const { username, tier_id } = this.props.match.params; + let url = `/sponsor_tiers/${tier_id}.json`; + axios + .get(url) + .then((result) => { + this.setState({ + tier: result.data.tier, + is_sponsoring: result.data.is_sponsoring, + sponsorship_id: result.data.sponsorship_id, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + } + + fetchBalance = () => { + const { current_user } = this.props; + let url = `/wallets/balance.json`; + if (current_user){ + axios + .get(url, {params: {id: current_user.user_id}}) + .then((result) => { + this.setState({ + balance: result.data.balance, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + } + } + + reSelect = () => { + const {user} = this.state; + this.setState({ + route_type: undefined + }) + this.props.history.push(`/sponsor/${user && user.login}`) + } + + changeSingle = (e) => { + + this.setState({ + single: e.target.value + }) + } + + updateSponsorship = () => { + const value = this.props.form.getFieldsValue(); + const {tier, user, sponsorship_id} = this.state; + const {current_user} = this.props; + let url = `/sponsorships/${sponsorship_id}.json`; + axios.put(url, { + amount: tier.tier, + visible: value.visible + }) + .then((result) => { + if (result && result.data.status == 1) + this.props.showNotification(result.data.message); + }) + .catch((error) => { + console.log(error); + }) + } + + submit = () => { + const value = this.props.form.getFieldsValue(); + const {tier, user} = this.state; + const {current_user} = this.props; + // console.log(value); + let url = `/sponsorships.json`; + axios.post(url, { + amount: tier.tier, + visible: value.visible, + single: value.single, + developer_id: user.user_id, + }) + .then((result) => { + // console.log(result); + if (result && result.data.status == 1) + this.props.showNotification(result.data.message); + }) + .catch((error) => { + console.log(error); + }) + } + + handleCancel = e => { + this.setState({ + visible: false, + }); + }; + + showModal = () => { + this.setState({ + visible: true, + }); + }; + + showConfirm = () => { + const {user} = this.state; + const fun = this.state.is_sponsoring?this.updateSponsorship:this.submit; + let text = this.state.is_sponsoring?`确认要修改对 ${user && user.username} 的赞助吗?若修改金额,将在下次自动扣款生效。` + :`确认要赞助 ${user && user.username} 吗?`; + confirm({ + // title: '确认赞助', + // icon: , + content: text, + onOk() { + fun() + }, + onCancel() { + + }, + }); + } + + render(){ + const {tier_id, username} = this.props.match.params; + const {current_user, form} = this.props; + const {user, isSpin, tier, balance, is_sponsoring, single} = this.state; + const {getFieldDecorator} = form; + + const current_username = current_user && current_user.username; + const alert_text = this.state.single? `您选择了单次付费,本次扣除${tier && tier.tier}硬币` + :`您选择了按月付费,每月20日将扣除${tier && tier.tier}硬币`; + + // console.log("sponsoring", is_sponsoring); + // console.log("tier: ", tier); + // console.log("current user", current_user); + + const radioStyle = { + display: 'block', + height: '30px', + lineHeight: '30px', + }; + + return ( +
    + +
    +
    +
    +

    + + 赞助{user && user.username}/赞助等级确认 +

    +

    + 赞助者为 + + {current_user && current_user.username} +

    + +

    所选赞助等级

    +

    {tier && tier.tier}硬币

    +

    {tier && tier.description}

    + +
    +
    + +
    +
    +
    + + {getFieldDecorator(`single`,{ + rules: [{ + required: true + }], + initialValue: single + })( + this.changeSingle(e)} disabled={is_sponsoring}> + 单次付费 + 按月支付 + + )} + +

    本次支付金额{tier && tier.tier}硬币

    +

    {this.state.single? "单次付费": "即日起-次月20日"}

    + + +
    支付信息
    +
    +
    + +
    +
    +
    {current_user && current_user.username}
    +
    硬币余额{balance}
    +
    +
    + + + 赞助关系可见性 + + {getFieldDecorator(`visible`,{ + rules: [{ + required: true + }], + initialValue: 1 + })( + + 所有人可见 + 私密 + + )} + + + +
    +
    +
    +
    +
    + ); + } +}); + + +export default withRouter( + ImageLayerOfCommentHOC({ + imgSelector: ".imageLayerParent img, .imageLayerParent .imageTarget", + parentSelector: ".newMain", + })(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(SponsorConfirmation)))) + ); + \ No newline at end of file diff --git a/src/forge/sponsor/sponsor.css b/src/forge/sponsor/sponsor.css new file mode 100644 index 000000000..beeb07fba --- /dev/null +++ b/src/forge/sponsor/sponsor.css @@ -0,0 +1,80 @@ +.sponsor-page-left{ + width: 65%; + padding-right: 20px; + box-sizing: border-box; + margin-bottom: 20px; +} + +.sponsor-page-right{ + width: 35%; + padding-right: 20px; + box-sizing: border-box; + margin-bottom: 20px; +} + +.sponsor-page-sponsors{ + width: 50px; + height: 50px; + border-radius: 50%; + margin-right: 11px; +} + +.sponsor-confirmation-left{ + width: 35%; + padding-right: 20px; + box-sizing: border-box; + margin-bottom: 20px; +} + +.sponsor-confirmation-right{ + width: 65%; + padding-right: 20px; + box-sizing: border-box; + margin-bottom: 20px; +} + +.sponsor-inline{ + display: inline-block; +} + +.tier-Item:last-child{ + border-bottom: none !important; + } + +.tier-Item{ + border-bottom:1px solid rgba(238,238,238,1); + padding:9px 12px; +} + + +.right{ + float: right +} + +.btn-border-5{ + border-radius: 5px; +} + +.description-edit{ + min-height:28px; + border:true; +} + +.tier-title{ + font-size: 16px; + font-weight: 600; +} + +.mr10{ + margin-right: 10px; +} + +.confirm-btn{ + width: 100%; + border-radius: 5px; +} + +.sponsor-item-btn{ + display: flex; + flex-direction: column; +} \ No newline at end of file diff --git a/src/forge/sponsor/sponsor_tier_item.js b/src/forge/sponsor/sponsor_tier_item.js new file mode 100644 index 000000000..4a45baa1f --- /dev/null +++ b/src/forge/sponsor/sponsor_tier_item.js @@ -0,0 +1,422 @@ +import React, { Component } from "react"; +import { Link } from "react-router-dom"; +import { Avatar, Tag, Button, Spin, Icon, Modal, Input, Form, message, Popconfirm, Divider, InputNumber} from "antd"; +import { Route, Switch } from "react-router-dom"; +import { withRouter } from "react-router"; +// import { EditOutlined } from "@ant-design/icons"; + +import { SnackbarHOC } from "educoder"; +import { CNotificationHOC } from "../../modules/courses/common/CNotificationHOC"; +import { TPMIndexHOC } from "../../modules/tpm/TPMIndexHOC"; + +import axios from "axios"; +import { getImageUrl } from "educoder"; + +import Loadable from "react-loadable"; +import Loading from "../../Loading"; +import { ImageLayerOfCommentHOC } from "../../modules/page/layers/ImageLayerOfCommentHOC"; + +import "../users/new_user.css"; +import "../css/index.scss"; +import '../users/Index.scss'; +import "./sponsor.css"; +import "../Main/list.scss"; +import Item from "antd/lib/list/Item"; + +const FormItem = Form.Item; + +const EditTierForm = Form.create()( +class extends Component{ + getItemsValue = ()=>{ + const val= this.props.form.getFieldsValue(); // 获取from表单的值 + return val; + } + render(){ + + const { form, initValue1, initValue2, initValueList } = this.props; + const { getFieldDecorator } = form; // 校验控件 + return( +
    + + {getFieldDecorator(`tier`,{ + rules: [{ + message: '请输入数字!', + pattern: /^[0-9]+$/, + required: true + }], + initialValue: initValue1 ? initValue1 : undefined + })( + + )} + + + {getFieldDecorator(`description`,{ + rules: [{ + message: '必填字段!', + required: true, + }, { + max: 255, + message: "长度不能超过255个字符" + }], + initialValue: initValue2 ? initValue2 : undefined + })( + + )} + +
    + ) + } + +}); + +class SponsorTierItem extends Component{ + constructor(props) { + super(props) + + var edit = new Array(); + if (props.tiers){ + for(var i=0; i { + + } + + // 如果服务器较慢,组件会先被挂载,此时父组件传来的props数据是空的,但是获得数据后,有新的props,需要更新。 + // 如果用户点击了修改自我描述等父组件的方法,父组件会重新渲染,这个方法又会被调用,有可能原有的编辑框会丢失。 + // 因此先判断一下父组件传过来的数据是否有变化。没有变化则不需要修改state + componentWillReceiveProps = () => { + if (this.props.tiers !== this.state.tiers){ + var edit = new Array(); + for(var i=0; i { + let url = `/sponsor_tiers.json`; + axios + .get(url) + .then((result) => { + console.log(result.data); + // console.log(tempData); + var edit = new Array(); + for(var i=0; i { + console.log(error); + }) + } + + fetchUser = () => { + this.setState({ + isSpin: true, + }); + const { current_user } = this.props; + const { username } = this.props.match.params; + + let url = `/users/${username || (current_user && current_user.login)}.json`; + axios + .get(url) + .then((result) => { + this.setState({ + user: result.data, + isSpin: false, + }); + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + }; + + editTier = (item, key, e) => { + var edit = this.state.edit; + + var editing = false; + for(var i=0; i { + let url; + try { + const values = await this.formRef.props.form.validateFields(); + // console.log('Success:', values); + } catch (errorInfo) { + this.props.showNotification('提交失败,数据不合法'); + return false; + } + let values = this.formRef.getItemsValue(); + // console.log(this.formRef); + const {current_user} = this.props; + if (this.state.new_tier == key){ + console.log("new tier"); + url = `/sponsor_tiers.json`; + axios + .post(url, { + ...values, + user_id: current_user.user_id + }) + .then((result) => { + var {tiers, edit} = this.state; + tiers[key] = result.data.tier; + edit[key] = false; + this.setState({ + tiers: tiers, + edit: edit, + new_tier: undefined + }) + // message.success("新增成功"); + this.props.showNotification(`新增成功!`); + }) + .catch((error) => { + console.log(error); + this.props.showNotification("新增失败"); + }) + } + else{ + url = `/sponsor_tiers/${item.id}.json` + axios + .put(url, { + ...values, + }) + .then((result) => { + var {tiers, edit} = this.state; + tiers[key] = result.data.tier; + edit[key] = false; + this.setState({ + tiers: tiers, + edit: edit, + new_tier: undefined + }) + // message.success("修改成功"); + this.props.showNotification(`修改成功!`); + }) + .catch((error) => { + console.log(error); + this.props.showNotification("修改失败"); + }) + } + + + // TODO: 在此处加入对后端的修改请求 + + // TODO: 修改的请求实现 + } + + cancelEdit = (item, key, e) => { + let {tiers, edit, new_tier} = this.state; + if (new_tier){ + tiers.pop(); + edit.pop(); + } + else { + edit[key] = false; + } + this.setState({ + tiers: tiers, + edit: edit, + new_tier: undefined + }) + } + + newTier = () => { + if (this.state.new_tier !== undefined){ + this.props.showNotification("请先完成当前编辑") + return; + } + + let {tiers, edit} = this.state; + tiers.push({tier: 1, description: ""}) + edit.push(true); + this.setState({ + tiers: tiers, + edit: edit, + new_tier: tiers.length - 1, + }) + } + + deleteTier = (item, key, e) => { + // TODO: 此处向后端发送请求删除 + let {tiers, edit} = this.state; + + let url = `/sponsor_tiers/${item.id}.json`; + + axios + .delete(url) + .then((result) => { + tiers.splice(key, 1) + edit.splice(key, 1) + this.setState({ + tiers: tiers, + edit: edit, + }) + this.props.showNotification("删除成功"); + }) + .catch((error) => { + console.log(error); + this.props.showNotification("删除失败"); + }) + } + + toConformation = (item, key, e) => { + const {user} = this.props; + this.setState({ + route_type: undefined + }) + this.props.history.push(`/sponsor_confirmation/${user && user.login}/${item.id}`) + } + + visitorTemplate = (item, key) => { + return ( +
      + +
      + {item.tier}  硬币 + +
      +
      + {item.description} +
      +
    + ); + } + + manageTemplate = (item, key) => { + return ( +
    +
    + {item.tier}  硬币 + + this.deleteTier(item, key, e)} + // onCancel={cancel} + okText="是" + cancelText="否" + > + + + + this.editTier(item, key, e)}> + +
    +
    + {item.description} + +
    +
    + ); + } + + editTemplate = (item, key) => { + return ( +
    + this.formRef = form} + /> + + +
    + ); + } + + render() { + const {tiers} = this.state; + const { current_user} = this.props; + const {user} = this.props; + + // console.log("item state tiers:", tiers); + // console.log("item props tiers:", this.props.tiers); + + const renderList = ( + tiers && tiers.length > 0 ? tiers.map((item, key) => { + const tier = this.state.edit[key]? ():item.tier; + const description = this.state.edit[key]? ():item.description; + + var content = ""; + if (current_user && user && user.login !== current_user.login){ + content = this.visitorTemplate(item, key); + } + else if(current_user && user && user.login === current_user.login && this.state.edit[key]){ + content = this.editTemplate(item, key); + } + else if(current_user && user && user.login === current_user.login && !this.state.edit[key]){ + content = this.manageTemplate(item, key); + } + + // return ( + //
      + + //
      + // 金额:{amount} + // {current_user && user && user.login === current_user.login ? + // // ( this.editTier(item)}/> + // ( this.editTier(item, key, e)}>): + // } + //
      + //
      + // 描述:{description} + // {current_user && user && user.login === current_user.login ? + // ():""} + //
      + //
    + + // ) + return content; + }) : "" + ); + return ( +
    +
    +

    选择您的赞助等级

    + {/* */} + {renderList} +
    + {current_user && user && user.login === current_user.login ? + ( ): + "" + } +
    + ) + } +} + + +export default SponsorTierItem; \ No newline at end of file diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index 79b793a08..e3a870cdb 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -1,6 +1,6 @@ import React, { Component } from "react"; import { Link } from "react-router-dom"; -import { Spin , Menu } from "antd"; +import { Spin , Menu, Button } from "antd"; import FocusButton from "../UsersList/focus_button"; import axios from "axios"; @@ -64,6 +64,19 @@ const Personal = Loadable({ }) +const Wallet = Loadable({ + loader: () => import("./sponsor/wallet"), + loading: Loading, +}); +const SponsorManagement = Loadable({ + loader: () => import("./sponsor/SponsorManagement"), + loading: Loading, +}); +const SponsorDataCharts = Loadable({ + loader: () => import("./sponsor/communityData"), + loading: Loading, +}); + class Infos extends Component { constructor(props) { super(props); @@ -72,6 +85,9 @@ class Infos extends Component { user: undefined, project_type: undefined, route_type: undefined, + c: undefined, + sponsor_management: undefined, + choose_chart: undefined, undo_events:0, menuKey:"6", avatarVisible:false @@ -108,6 +124,10 @@ class Infos extends Component { this.setState({menuKey:undefined,route_type:"following"}); }else if(pathname === `/${username}/followers`){ this.setState({menuKey:undefined,route_type:"followers"}); + }else if(pathname === `/${username}/wallet`){ + this.setState({menuKey:"6",route_type:undefined}); + }else if(pathname === `/${username}/sponsor_management`){ + this.setState({menuKey:"7",route_type:undefined}); }else{ this.setState({menuKey:"6",route_type:undefined}); } @@ -197,6 +217,58 @@ class Infos extends Component { this.props.history.push(`/${user && user.login}/organizes`) } + sponsor_link = () => { + const {user} = this.state + this.setState({ + route_type: undefined + }) + this.props.history.push(`/sponsor/${user && user.login}`) + } + + sponsor_management_link = () => { + const {user} = this.state + this.setState({ + route_type: undefined, + sponsor_management: true, + project_type: undefined, + choose_wallet: undefined, + choose_chart: undefined, + }) + this.props.history.push(`/users/${user && user.login}/sponsor_management`) + } + + wallet_link = () => { + const {user} = this.state + this.setState({ + project_type: undefined, + choose_wallet: true, + route_type: undefined, + sponsor_management: undefined, + choose_chart: undefined, + }) + this.props.history.push(`/users/${user && user.login}/wallet`) + } + + sponsor_setting_link = () => { + const {user} = this.state + this.setState({ + route_type: undefined + }) + this.props.history.push(`/users/${user && user.login}/sponsor_setting`) + } + + sponsor_statistic = () => { + const {user} = this.state + this.setState({ + project_type: undefined, + choose_wallet: undefined, + route_type: undefined, + sponsor_management: undefined, + choose_chart: true + }) + this.props.history.push(`/users/${user && user.login}/sponsor_community_data`) + } + resetUser=()=>{ const { resetUserInfo } = this.props; @@ -253,14 +325,17 @@ class Infos extends Component { } render() { + // sponsor相关代码 + const { choose_wallet, choose_chart, sponsor_management } = this.state; + const { current_user } = this.props; const { username } = this.props.match.params; const { user, isSpin, route_type , undo_events , menuKey , avatarVisible } = this.state; return (
    { - avatarVisible && - {user && user.description}
    +
    + {user && current_user && user.login === current_user.login && ( +
    + {/**/} + - {/* {user && current_user && user.login === current_user.login && ( -
    - -
    - )} */} - {current_user && user && user.login !== current_user.login && ( -
    - -
    - )} - { - current_user && user && user.login === current_user.login && -
    -

    想全方位展示自己?试试点击下方按钮定制化您的专属个人简介吧!

    - { - user.show_super_description ? this.aboutDescFunc(false)}>隐藏个人简介 : this.aboutDescFunc(true)}>展示个人简介 - } -
    - } +
    + + )} + {current_user && user && user.login !== current_user.login && ( +
    + + +
    + )} +
    0 ? ({user.user_org_count}):""} + { + current_user && current_user.login && current_user.login === username ? + + + 我的钱包 + + + :"" + } + { + current_user && current_user.login && current_user.login === username ? + + + 赞助管理 + + + :"" + } + {/* { + current_user && current_user.login && current_user.login === username ? + + + 赞助信息统计 + + + :"" + } */} } {user && ( @@ -407,6 +518,24 @@ class Infos extends Component { return ; }} > + { + return ; + }} + > + { + return ; + }} + > + { + return ; + }} + > { diff --git a/src/forge/users/new_user.css b/src/forge/users/new_user.css index 2eb109122..70d9376ea 100644 --- a/src/forge/users/new_user.css +++ b/src/forge/users/new_user.css @@ -29,10 +29,15 @@ .mt-n15{margin-top: -15px;} .position-relative{position: relative;} .mr-5{margin-right: 5px;} +.mt-5{margin-top: 5px;} +.ml-5{margin-left: 5px;} a.text-button-grey{ color: #fff; } -.user-info-star-button{margin: 20px 50px 0 50px} +.user-info-star-button{ + display: flex; + margin: 20px 20px 0 20px +} .list-l-p{ width: 100%; display: -ms-flexbox; diff --git a/src/forge/users/sponsor/CoinChangeItem.js b/src/forge/users/sponsor/CoinChangeItem.js new file mode 100644 index 000000000..1f32f521c --- /dev/null +++ b/src/forge/users/sponsor/CoinChangeItem.js @@ -0,0 +1,45 @@ +import React, { Component } from 'react'; +import { Tooltip } from 'antd'; +import '../../css/index.scss' +import '../../Main/list.scss'; + +class CoinChangeItem extends Component { + TurnToDetail = (login, url) => { + this.props.history.push({ + pathname: url, + state: login + }) + } + render() { + const { coinChanges, current_user } = this.props; + const renderList = ( + coinChanges && coinChanges.length > 0 ? coinChanges.map((item, key) => { + let url = current_user && item.to_user_login == current_user.login? `/users/${item.from_user_login}`:`/users/${item.to_user_login}`; + return ( +
    +
    +

    金额:{current_user && item.to_user_login == current_user.login? "收入":"支出"}{item.amount}硬币

    +

    变动原因:{item.reason}

    + {/*

    备注:{item.description}

    */} + +
    + + {item.date} + {current_user && item.to_user_login == current_user.login? + ({item.from_user}): + ({item.to_user})} + +
    +
    +
    + ) + }) : "" + ) + return ( +
    + {renderList} +
    + ) + } +} +export default CoinChangeItem; \ No newline at end of file diff --git a/src/forge/users/sponsor/SponsorManagement.js b/src/forge/users/sponsor/SponsorManagement.js new file mode 100644 index 000000000..5848c8d97 --- /dev/null +++ b/src/forge/users/sponsor/SponsorManagement.js @@ -0,0 +1,309 @@ +import React, { Component } from "react"; +import { Link } from "react-router-dom"; +import { Menu, Input, Spin, Pagination, Popover, Button, Divider } from "antd"; +import SponsorBarCharts from "./charts/sponsorBarChart"; +import SponsorPieCharts from "./charts/sponsorPieChart"; + +import axios from "axios"; +import CoinChangeItem from "./CoinChangeItem"; +import Nodata from "../../Nodata"; +import img_array from "../../Images/array.png"; +import SponsorList from "./sponsor_list"; +import "../../sponsor/sponsor.css"; + +// import "../new_user.css"; +// const Search = Input.Search; + +// const tempData = [ +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: true, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "-", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: true, sponsor: true, login:"alpc104", start_time: "2020-08-01", stop_time: "-", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "-", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: true, login:"alpc104", start_time: "2020-08-01", stop_time: "-", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "-", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "2020-09-05", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: true, login:"alpc104", start_time: "2020-08-01", stop_time: "2020-09-05", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "2020-09-05", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "2020-09-05", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "2020-09-05", amount: 100}, +// {image_url: "avatars/User/b", username: "万山川", user_id: 1369, visible: false, sponsor: false, login:"alpc104", start_time: "2020-08-01", stop_time: "2020-09-05", amount: 100}, +// ]; + + +class SponsorManagement extends Component{ + + constructor(props) { + super(props); + this.state = { + page: 1, + limit: 15, + sort_by: undefined, + totalCount: undefined, + isSpin: false, + total: undefined, + category: "sponsoring", + is_sponsor: false, + sponsors: undefined, + displayList: undefined, + chartsData: {income:[], outcome:[]}, + }; + } + + changeCategory = (cate) => { + this.setState({ + category: cate.target.value, + page: 1, + }, ()=>{ + if(this.state.category === "chart") + this.get_chart_data(); + else + this.get_sponsors(); + }); + // if(cate.target.value === "chart"){ + // this.setState({ + // category: cate.target.value, + // page: 1, + // }); + // } + // else{ + // this.setState({ + // category: cate.target.value, + // page: 1, + // }, ()=>{this.get_sponsors();}); + // } + }; + + componentDidMount = () => { + this.get_sponsors(); + } + + get_chart_data = () => { + this.setState({ + isSpin: true + }) + + let url = `/wallets/balance_chart.json`; + const {current_user} = this.props; + let user_id = current_user && current_user.user_id; + if (current_user){ + axios.get(url, { + params: { + id: user_id, + sponsor: true, + }}) + .then((result) => { + this.setState({ + chartsData: result.data, + isSpin: false, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + } + }; + + get_sponsors = ()=>{ + const user_id = this.props.current_user.user_id; + + let url = this.state.is_sponsor? `sponsoring`:`sponsored`; + url = this.state.category === "stopped"? `stopped_` + url: url; + url = `/sponsorships/` + url + `.json`; + + const {page, limit} = this.state; + this.setState({ + isSpin: true + }) + axios.get(url, { + params: { + id: user_id, + page: page, + limit: limit, + }}) + .then((result) => { + // console.log(result); + this.setState({ + displayList: result.data.sponsorships, + total: result.data.count, + isSpin: false, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + // this.setState({ + // sponsors: tempData, + // displayList: tempData, + // }) + } + + //切换页数 + changePage = (page) => { + this.setState({ + page: page + }, ()=>{this.get_sponsors()}) + }; + + // 排序 + ChangeSoryBy = (e) => { + console.log(e.key) + }; + + changeSearchValue = (e) => { + this.setState({ + search: e.target.value, + }); + }; + + menu =()=> ( + + 时间从近到远排序 + 时间从远到近排序 + + ); + + category_button=(category)=>{ + const { current_user, user } = this.props; + const button_lists = + user && current_user && user.login === current_user.login + ? [ + { type: "sponsoring", name: "赞助中" }, + { type: "stopped", name: "已终止" }, + { type: "chart", name: "统计图表" }, + ] + : + []; + + let list = button_lists.map((item, key) => { + return ( + + + + ); + }) + return list; + } + + changeStatus=(check_is_sponsor, e)=>{ + // const {is_sponsor} = this.state + // const new_is_sponsor = is_sponsor === check_is_sponsor ? undefined : check_is_sponsor + // this.state.is_sponsor = check_is_sponsor; + this.setState({ + is_sponsor: check_is_sponsor, + page: 1, + }, ()=>{ + if(this.state.category === "chart") + this.get_chart_data(); + else + this.get_sponsors(); + }); + } + + render() { + const { current_user, user } = this.props; + const { category , is_sponsor, sponsors, displayList, chartsData} = this.state; + const {isSpin, total, search, limit, page }= this.state; + // console.log(displayList); + const sponsorList = displayList && displayList.length > 0 ? + + : + + + const chartComponent =
    +

    七天内赞助{this.state.is_sponsor?"支出":"收入"}图

    + + {/*

    七天内赞助{this.state.is_sponsor?"支出":"收入"}图

    + */} +
    + + const displayComponent = category==="chart"?chartComponent + : + sponsorList; + + return ( + //
    + + {/*
    */} + {/* */} + {/* */} + {/*
    */} +
    +
    {this.category_button(category)}
    + { + user && current_user && user.login === current_user.login ? +
    + this.changeStatus(true, e)}>我赞助的 + { + !is_sponsor ? ():"" + } + this.changeStatus(false, e)}>赞助我的 +
    + :"" + } +
    + {user && current_user && user.login === current_user.login? + displayComponent: + } + { + total && total > limit && category!="chart"? +
    + +
    + : + "" + } +
    + //
    + ); + } +}; + +export default SponsorManagement; \ No newline at end of file diff --git a/src/forge/users/sponsor/charts/coinChangeCharts.js b/src/forge/users/sponsor/charts/coinChangeCharts.js new file mode 100644 index 000000000..b31919881 --- /dev/null +++ b/src/forge/users/sponsor/charts/coinChangeCharts.js @@ -0,0 +1,77 @@ +import React, { Component } from 'react'; +import {XYPlot, VerticalBarSeries, VerticalGridLines, HorizontalGridLines, XAxis, YAxis, Crosshair, DiscreteColorLegend} from 'react-vis'; +// import DiscreteColorLegend from 'legends/discrete-color-legend'; +import "./style.scss"; + +// const ONE_DAY = 86400000; +// const d = new Date().getTime()-ONE_DAY*7; + +// const data = [ +// {x: new Date(d+ONE_DAY).toLocaleDateString(), y: 8}, +// {x: new Date(d+ONE_DAY*2).toLocaleDateString(), y: 5}, +// {x: new Date(d+ONE_DAY*3).toLocaleDateString(), y: 4}, +// {x: new Date(d+ONE_DAY*4).toLocaleDateString(), y: 9}, +// {x: new Date(d+ONE_DAY*5).toLocaleDateString(), y: 2}, +// {x: new Date(d+ONE_DAY*6).toLocaleDateString(), y: 7}, +// {x: new Date(d+ONE_DAY*7).toLocaleDateString(), y: 2}, +// ]; + +// const data2 = [ +// {x: new Date(d+ONE_DAY).toLocaleDateString(), y: 2}, +// {x: new Date(d+ONE_DAY*2).toLocaleDateString(), y: 3}, +// {x: new Date(d+ONE_DAY*3).toLocaleDateString(), y: 1}, +// {x: new Date(d+ONE_DAY*4).toLocaleDateString(), y: 5}, +// {x: new Date(d+ONE_DAY*5).toLocaleDateString(), y: 4}, +// {x: new Date(d+ONE_DAY*6).toLocaleDateString(), y: 0}, +// {x: new Date(d+ONE_DAY*7).toLocaleDateString(), y: 2}, +// ]; + +const ITEMS = [ + {title: '收入', strokeWidth: 13}, + {title: '支出', strokeWidth: 13} +]; + +class CoinChangeCharts extends Component { + constructor(props) { + super(props); + this.state = { + crosshairValues: [] + }; + // console.log(this.props); + } + + render() { + const {chartsData} = this.props; + if(chartsData == undefined){ + return (
    ); + } + var max = 0; + for(var i=0; i + + + + + + + + + + +
    + ); + } +} + +export default CoinChangeCharts; diff --git a/src/forge/users/sponsor/charts/sponsorBarChart.js b/src/forge/users/sponsor/charts/sponsorBarChart.js new file mode 100644 index 000000000..90494c688 --- /dev/null +++ b/src/forge/users/sponsor/charts/sponsorBarChart.js @@ -0,0 +1,79 @@ +import React, { Component } from 'react'; +import {XYPlot, VerticalBarSeries, VerticalGridLines, HorizontalGridLines, XAxis, YAxis, Crosshair, DiscreteColorLegend} from 'react-vis'; +// import DiscreteColorLegend from 'legends/discrete-color-legend'; +import "./style.scss"; + +const ONE_DAY = 86400000; +const d = new Date().getTime()-ONE_DAY*7; + +const data = [ + {x: new Date(d+ONE_DAY).toLocaleDateString(), y: 6}, + {x: new Date(d+ONE_DAY*2).toLocaleDateString(), y: 3}, + {x: new Date(d+ONE_DAY*3).toLocaleDateString(), y: 2}, + {x: new Date(d+ONE_DAY*4).toLocaleDateString(), y: 7}, + {x: new Date(d+ONE_DAY*5).toLocaleDateString(), y: 0}, + {x: new Date(d+ONE_DAY*6).toLocaleDateString(), y: 5}, + {x: new Date(d+ONE_DAY*7).toLocaleDateString(), y: 0}, +]; + +const data2 = [ + {x: new Date(d+ONE_DAY).toLocaleDateString(), y: 3}, + {x: new Date(d+ONE_DAY*2).toLocaleDateString(), y: 4}, + {x: new Date(d+ONE_DAY*3).toLocaleDateString(), y: 2}, + {x: new Date(d+ONE_DAY*4).toLocaleDateString(), y: 6}, + {x: new Date(d+ONE_DAY*5).toLocaleDateString(), y: 5}, + {x: new Date(d+ONE_DAY*6).toLocaleDateString(), y: 1}, + {x: new Date(d+ONE_DAY*7).toLocaleDateString(), y: 3}, +]; + +const ITEMS = [ + {title: '收入', strokeWidth: 13}, + {title: '支出', strokeWidth: 13} +]; + +class SponsorBarCharts extends Component { + constructor(props) { + super(props); + this.state = { + crosshairValues: [] + }; + console.log(this.props) + } + + componentWillReceiveProps = () => { + this.setState({ + crosshairValues: [] + }) + } + + render() { + const chartsData = this.props.is_sponsor?this.props.data.outcome:this.props.data.income; + var max = 0; + for(var i=0; i + {/* */} + + + + + + + + +
    + ); + } +} + +export default SponsorBarCharts; \ No newline at end of file diff --git a/src/forge/users/sponsor/charts/sponsorPieChart.js b/src/forge/users/sponsor/charts/sponsorPieChart.js new file mode 100644 index 000000000..82a15f612 --- /dev/null +++ b/src/forge/users/sponsor/charts/sponsorPieChart.js @@ -0,0 +1,70 @@ +import React, { Component } from 'react'; +import {FlexibleXYPlot, RadialChart, VerticalGridLines, HorizontalGridLines, XAxis, YAxis, Crosshair, DiscreteColorLegend} from 'react-vis'; +// import DiscreteColorLegend from 'legends/discrete-color-legend'; +import "./style.scss"; + +const data = [ + {label: "张三", angle: 1}, + {label: "李四", angle: 2}, + {label: "王五", angle: 5}, + {label: "赵六", angle: 3}, +]; + +const data2 = [ + {label: "张三", angle: 2}, + {label: "林磊", angle: 1}, + {label: "赵辉", angle: 4}, +]; + +const ITEMS = [ + {title: '收入', color: 'powderblue', strokeWidth: 13}, + {title: '支出', color: 'powderblue', strokeWidth: 13} +]; + +class SponsorPieCharts extends Component { + constructor(props) { + super(props); + this.state = { + crosshairValues: [] + }; + } + + componentWillReceiveProps = () => { + this.setState({ + crosshairValues: [] + }) + } + + render() { + const DATA = this.props.is_sponsor?data2:data; + // const DATA = [{angle: 1}, {angle: 5}, {angle: 2}] + + return ( +
    + {/* */} + {/* */} + {/* + + + */} + + + {/* */} +
    + ); + } +} + +export default SponsorPieCharts; \ No newline at end of file diff --git a/src/forge/users/sponsor/charts/style.scss b/src/forge/users/sponsor/charts/style.scss new file mode 100644 index 000000000..79f09ff3c --- /dev/null +++ b/src/forge/users/sponsor/charts/style.scss @@ -0,0 +1,5 @@ +@import "react-vis/dist/styles/plot.scss"; +@import "react-vis/dist/styles/examples.scss"; +@import "react-vis/dist/styles/legends.scss"; +@import "react-vis/dist/styles/radial-chart.scss"; +@import "react-vis/dist/styles/treemap.scss"; \ No newline at end of file diff --git a/src/forge/users/sponsor/communityData.js b/src/forge/users/sponsor/communityData.js new file mode 100644 index 000000000..b71b73f91 --- /dev/null +++ b/src/forge/users/sponsor/communityData.js @@ -0,0 +1,133 @@ +import React, { Component } from 'react'; +import {XYPlot, VerticalBarSeries, LineSeries, VerticalGridLines, HorizontalGridLines, XAxis, YAxis, Crosshair, DiscreteColorLegend} from 'react-vis'; +// import DiscreteColorLegend from 'legends/discrete-color-legend'; +import "./charts/style.scss"; +import '../../Main/list.scss'; +import "../../UsersList/list.css"; +import "../../sponsor/sponsor.css"; +import "../new_user.css" +import axios from "axios"; +import { isSupported } from 'clipboard'; + +const ITEMS = [ + {title: '资助者数量', strokeWidth: 13}, + {title: '受资助人数', strokeWidth: 13}, +]; + +class SponsorDataCharts extends Component { + constructor(props) { + super(props); + this.state = { + crosshairValues: [], + sponsor: [], + sponsored: [], + nums: [], + }; + } + + componentDidMount = () => { + this.get_chart_data(); + } + + get_chart_data = () => { + this.setState({ + isSpin: true + }) + + let url = `/sponsorships/community_data.json`; + axios.get(url) + .then((result) => { + this.setState({ + sponsor: result.data.sponsor, + sponsored: result.data.sponsored, + isSpin: false, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + + url = `/wallets/community_data.json`; + axios.get(url) + .then((result) => { + this.setState({ + nums: result.data, + isSpin: false, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + }; + + componentWillReceiveProps = () => { + this.setState({ + crosshairValues: [] + }) + } + + render() { + // const DATA = this.props.is_sponsor?data2:data; + const {sponsor, sponsored, nums} = this.state; + var max1 = 0; + for(var i=0; i +

    平台资助者/受资助人数

    + + + + + + + + + +

    平台资助交易数量

    + + + + + + + +
    + ); + } +} + +export default SponsorDataCharts; \ No newline at end of file diff --git a/src/forge/users/sponsor/main_list.scss b/src/forge/users/sponsor/main_list.scss new file mode 100644 index 000000000..b4a966b23 --- /dev/null +++ b/src/forge/users/sponsor/main_list.scss @@ -0,0 +1,781 @@ + +.lineH2{line-height:2} +.t_project_banner { + /* height: 260px; + background: url(../Images/banner_list.jpg) no-repeat center; */ + background-color: #050d34; +} +.ProjectListIndex{ + width: 1200px; + margin:20px auto; + display: flex; + align-items: flex-start; + flex-wrap:wrap; +} +.list-left{ + width: 26%; + padding-right: 20px; + box-sizing: border-box; + margin-bottom: 20px; +} +.list-left > div{ + border:1px solid #eee; +} +.list-left > div.bgcF{ + border:none; +} +.list-right{ + width:74%; + background: #fff; + padding:10px; + border:1px solid #eee; +} + + +/* 首页列表的新建和排序的下拉列表 */ +.ant-menu-inline, .ant-menu-vertical, .ant-menu-vertical-left{ + border-right: none!important; +} +.ant-menu-vertical > .ant-menu-item{ + margin:0px!important; + height: 35px; + line-height: 35px; + border-bottom: 1px solid #eee; + font-size: 14px!important; +} +.ant-menu-vertical > .ant-menu-item:last-child{ + border-bottom: none; +} + + +.list-r-operation{ + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: center; + padding:25px 30px; + border-bottom: 1px solid #E0E0E0; +} +.list-r-Search{ + width: 400px; +} +.padding0-25{ + padding:0px 25px; +} +.list-r-Search .ant-btn-lg{ + height: 38px; +} +.list-r-Search .ant-input-group-addon{border: none !important;} +.list-r-Search .ant-input-search-button{height: 40px !important;} +.createBtn{ + border-radius: 4px; + margin-left: 20px; + display: inline-block; + padding:3px 15px; + background-color: #4CACFF; + color: #fff!important; +} + + +/* 列表 */ +.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); + padding:22px 0px; + justify-content: flex-start; +} +.boxShandow{ + box-shadow:0px 2px 20px 10px rgba(0,0,0,0.03); +} +.p-r-photo{ + width: 60px; + height: 60px; + border-radius: 50%; + margin-right: 22px; + margin-top: 8px; +} +.p-r-Infos{ + flex: 1; + width: 0; +} +.p-r-name{ + display: flex; + justify-content: space-between; + align-items: center; +} +.p-r-name > p{ + flex: 1; + width: 0; +} +.p-r-btn{ + display: flex; + align-items: center; +} +.p-r-btn > span{ + height: 35px; + line-height: 35px; + border:1px solid #f4f4f4; + border-radius: 5px; + display: block; + margin-left: 20px; + background-color: #fff; + display: flex; +} +.p-r-btn > span > a{ + display: flex; + align-items: center; + padding:0px 12px; + background:#ececec; +} +.p-r-btn > span > a:active{ + background: #f4f4f4; +} +.p-r-btn > span > span{ + padding:0px 8px; +} +.p-r-tags{ + display: flex; + opacity: 1; +} +.p-r-tags.large > span{ + height: 30px; + line-height: 30px; + font-size: 14px; +} +.p-r-tags > span{ + margin-left: 15px; + padding:0px 10px; + border-radius:15px; + background: #EBF4FE; + color: #333; + height: 24px; + line-height: 24px; + display: block; + font-size: 12px; + display: flex; +} +.p-r-tags > span.pariseTag{ + background: #FFF3DC; +} +.p-r-tags.large > span >label{ + padding:0px 12px; +} +.p-r-tags > span >label{ + padding:0px 8px; +} +.p-r-tags.large > span >span{ + padding:0px 6px; +} +.pariseImg{ + width: 14px; + height: 12px; + margin-top: 6px; + margin-right: 3px; +} +.p-r-tags > span >span{ + display: block; + background: #fff; + border-left: #efefef; + padding:0px 4px; + border-radius: 0px 4px 4px 0px; + color: #999; +} +.p-r-content{ + margin-top:10px; + color: #666; + display: flex; +} +.p-r-detail > span{ + margin-right: 22px; + color: #888; +} +.p-r-detail > span > label{ + color: #999; +} + +.p-r-about{ + display: flex; + justify-content: space-between; + flex-wrap: nowrap; + margin-top: 8px; + color: #666; +} +.spincontent{ + height:400px; +} +.spinstyle .ant-spin-text{ + margin-top:30px; + color: #888; +} +/* -----------详情------------ */ +.detailHeader-wrapper{ + background-color:#FBFCFF; + border-bottom:1px solid #e2e2e2; +} +.headerMenu-wrapper{ + display: flex; + flex-direction: row; + cursor: pointer; + li{ + font-size: 14px; + position: relative; + text-align: center; + height: 40px; + line-height: 28px; + padding:0px 20px; + & > a{ + color: #666; + &> img{ + margin-right: 8px; + } + &> span.num{ + line-height: 24px; + margin-left: 5px; + margin-top: 2px; + font-size: 12px; + float: right; + color: #666!important; + background-color: rgba(153, 153, 153, 0.13);; + border-radius: 50%; + width: 24px; + height: 24px; + } + } + &.active a,&.active a i{ + color: #2A61FF!important; + } + &.active::after,&:hover::after{ + position: absolute; + bottom:0px; + height:2px; + background-color: #2A61FF; + content:''; + left: 0px; + width:100%; + } + &:hover::after{ + background-color: rgba(153, 153, 153, 0.2);; + } + } +} +.detail_tag_btn{ + height:34px; + line-height: 32px; + border-radius:5px; + border:1px solid #D0D0D0; + display: flex; + align-items: center; + margin-left: 10px; + padding:0px; + background-color:#FAFBFC; + box-shadow: none; + &:hover{ + background-color: #F3F4F6; + } + .detail_tag_btn_name{ + padding:0px 18px; + min-width: 82px; + text-align: center; + &:hover>span{ + color: #333!important; + } + img{ + margin-right: 10px; + } + } + .detail_tag_btn_count{ + width: 42px; + text-align: center; + background: #fff; + border-radius: 0px 4px 4px 0px; + height:100%; + border-left: 1px solid #D0D0D0; + } +} +.ant-tooltip { + max-width: fit-content!important; +} +.files-md{ + padding:20px; +} +/* 详情-代码 */ +.branch-wrapper{ + border:1px solid #eee; + border-radius: 4px; + display: flex; + align-items: center; + height: 60px; + padding:0px 30px; + width: 1200px; + margin:0px auto; + background-color: #fff; + margin-top: 20px; + justify-content: space-between; +} +.branch-wrapper > a >i{ + color: #5091FF; + margin-right: 5px; + cursor: default; +} +.branch-wrapper a{ + display: flex; + align-items: center; + justify-content: center; + text-align: center; + height: 30px; + line-height: 30px; + cursor: pointer; + font-size: 16px; + color: #333333; +} +.branch-wrapper a > span{ + position: relative; + min-height: 20px; + display: block; +} +.branch-wrapper a.active > span::after{ + position: absolute; + content: ''; + bottom: -5px; + width: 30px; + height: 3px; + left: 0px; + background-color:#5091FF; +} + + +.gitAddressClone{ + margin:0px 20px 14px 20px!important; + display: flex; + height: 40px; + align-items: center; + border-radius: 4px; + border:1px solid #eee; + background: #fff; + margin-left: 20px; + position: relative; +} +.gitAddressClone > span{ + display: flex; + line-height: 40px; + height: 40px; + padding:0px 12px; + 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; +} +.gitAddressClone > span:last-child{ + border-right: none; +} +.gitAddressClone > input{ + border:none; + outline: none; + padding:0px 8px; + height: 40px; + line-height: 40px; + border-radius: 0px; + border: 1px solid #eee; + flex:1; +} +.wrap-commit-table .ant-table-small > .ant-table-content > .ant-table-body{ + margin:0px; +} +.wrap-commit-table .ant-table-title{ + background-color: rgba(241,248,255,1); + padding: 13px 16px!important; +} +.commitKey{ + cursor: pointer; + border:1px solid #FD7700; + background-color:#FFF3DC; + color: #FD7700!important; + padding:0px 12px; + height: 20px; + line-height: 20px; + margin-left:15px; + border-radius: 18px; + max-width: 100%; +} +/* 分支 */ +.branchTitle{ + padding:8px 10px; + color: #333; + font-size: 16px; + border-bottom: 1px solid #d9d9d9; +} +.branchUl li{ + display: flex; + flex-wrap: wrap; + align-items: flex-end; + justify-content: space-between; + padding:20px 0px; + border-bottom: 1px solid #eee; +} +.branchUl li:last-child{ + border-bottom: none; +} +.operationBtn{ + border:1px solid #f4f4f4; + border-radius: 3px; + padding:0px 6px; + background-color:#fff; + color:#666!important; + display: inline-block; +} +.messages{ + max-width: 700px; +} +.leftPoint{ + margin-left: 20px; + position: relative; +} +.leftPoint::before{ + position: absolute; + left: -10px; + top:8px; + border-radius: 50%; + width: 4px; + height: 4px; + background-color: #dadada; + content: ''; +} + +/* 文件目录、文件内容 */ +.subFileName{ + position: relative; + margin-left: 15px; + height: 22px; +} +.subFileName::before{ + position: absolute; + content: '/'; + left: -10px; + top: 0px; + color: #999; + height: 22px; + line-height: 22px; +} +.addFile{ + display: flex; +} +.addFile a{ + display: block; + background-color: rgba(76, 172, 255,0.8); + color: #fff; + cursor: pointer; + height: 32px; + line-height: 32px; + padding: 0px 10px; +} +.addFile a:first-child{ + border-radius: 4px; +} +.addFile a:last-child{ + /* border-radius: 0px 4px 4px 0px; */ + border-left: 1px solid rgba(247, 247, 247, 0.3); +} +.addFile a:active{ + background-color: rgba(76, 172, 255,1); +} + + + +@media screen and (max-width: 750px){ + .list-r-Search{ + flex: 1; + } + .list-left,.list-right{ + width: 100%; + padding: 0px; + } +} + +@media screen and (max-width: 400px){ + .list-r-Search{ + width: 100%; + } + .headerMenu-wrapper{ + flex-direction: column; + width: 100%; + } + .headerMenu-wrapper li{ + width: 100%; + } + .gitAddressClone{ + width:100%; + margin-left: 0px; + } + .gitAddressClone > span{ + padding:0px; + } + .messages{ + max-width: 100%; + } +} +.commonBox{ + border:1px solid #ddd; + margin-top: 30px; + border-radius: 4px; +} +.commonBox .commonBox-title{ + padding:0px 20px; + box-sizing: border-box; + font-size: 16px; + background: #FAFBFC;/* F1F8FF */ + font-weight: bold; + height: 45px; + line-height: 45px; + border-bottom: 1px solid #d9d9d9; + border-radius: 4px 4px 0px 0px; +} +.readBox{ + border:none; + &.commonBox .commonBox-info{ + border:1px solid #D0D0D0; + border-top: none; + border-radius: 0px 0px 4px 4px; + padding:20px 38px; + } +} +.commonBox .commonBox-title.boxTitle{ + display: flex; + justify-content: space-between; + height: 65px; + line-height: 65px; + background: #FAFCFF; + border-radius: 4px 4px 0px 0px; + border: 1px solid rgba(42, 97, 255, 0.23); +} +.synchronism{ + display: block; + height: 34px; + line-height: 34px; + padding:0px 15px; + color: #fff!important; + background-color: #28BD6C; + border-radius: 4px; +} +.files_info{ + cursor: pointer; +} +.commonBox { + .commonBox-info{ + padding:20px 15px; + } +} +.commonBox-title-read{ + vertical-align: middle; + color: #666; + font-size: 14px; +} + +@media screen and (max-width: 370px){ + .p-r-tags,.p-r-btn{ + opacity: 0; + display: none; + } + .p-r-about{ + flex-wrap: wrap; + } + .commitKey{ + margin-right: 0px; + } + .list-r-Search{ + width: 100%; + } +} +.null_data_box{ + width: 100%; + border: 1px solid #d4d4d5; + border-radius:3px ; +} +.title{ + font-weight: bold; + background: #f4f4f4; + padding: 10px 15px; + box-sizing: border-box; + border-bottom: 1px solid #d4d4d5; +} +.item_title{ + font-size:18px; + font-weight: bold; + margin-bottom: 15px; +} +.item{ + padding: 15px; + border-bottom: 1px solid #dededf; +} +.item:last-child{ + border-bottom:none; +} + +.item_title small{ + font-weight: 400; + margin-left: 10px; + +} +.item_title small a{ + color: #4183c6; +} +.Markdown{ + background: #f7f7f7; + padding: 10px 20px; +} +.item .gitAddressClone input:focus{ +border: 1px solid #2185d0; +} +.content-file{margin-top: 8px;} + +.content-file .CodeMirror{ + background-color: #f7f7f7; + border: 1px solid #e4e4e4; + border-radius: 4px; + height: auto; +} +.content-file.edit .CodeMirror{ + background-color: #fff; +} +.content-file .CodeMirror .CodeMirror-scroll{ + min-height: 450px; +} +.text-center{text-align: center;} +.fork-css{ + position: absolute; + left: 0; + top: 50px; + width: 100%; +} +.color-grey-ccc{ + color: #ccc !important; +} +a.color-grey-ccc:hover{ + color: #4cacff !important; +} +.pull-right{float: right;} + +.commitList{ + padding:0px 30px; + min-height: 400px; +} +.commitList > div{ + border-bottom: 1px solid #EEEEEE; + padding:16px 0px; +} +.commitList > div:last-child{ + border-bottom: none; +} + + +/* 标签列表 */ +.div_table{ + border:1px solid #eee; + border-radius: 2px; +} +.ul_thead{ + padding:0px 30px; + box-sizing: border-box; + background: #FAFAFA; + border-bottom: 1px solid #eee; + height: 50px; + line-height: 50px; +} +.ul_tbody{ + padding:0px 30px; +} +.ul_thead li, .ul_tbody li{ + display: flex; + align-items: center; + text-align: left +} +.ul_tbody li{ + padding:18px 0px; + border-bottom: 1px solid #eee; +} +.ul_tbody li:last-child{ + border-bottom: none; +} +.ul_thead li > span , .ul_tbody li > span{ + width: 20%; + padding-right: 20px; +} +.ul_thead li > span:nth-child(2), .ul_tbody li > span:nth-child(2){ + flex:1; +} +.ul_tbody_third{ + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: left; +} +.ul_tbody_forth{ + text-align: center; + display: flex; + justify-content: center; +} +.depotNum{ + color: #666!important; + span:last-child{ + color: #333; + } + &:hover span:last-child{ + color: #2A61FF; + } +} \ No newline at end of file diff --git a/src/forge/users/sponsor/sponsor_list.js b/src/forge/users/sponsor/sponsor_list.js new file mode 100644 index 000000000..a7a7e7a76 --- /dev/null +++ b/src/forge/users/sponsor/sponsor_list.js @@ -0,0 +1,103 @@ +import React, { Component } from "react"; +import { getImageUrl } from "educoder"; +import FocusButton from "../../UsersList/focus_button"; +import { Button, message, Popconfirm } from "antd"; +import '../../Main/list.scss'; +import "../../UsersList/list.css"; +import "../../sponsor/sponsor.css"; +import "../new_user.css" +import axios from "axios"; +import { Link } from "react-router-dom"; +class SponsorList extends Component { + + stop_sponsorship = (item, key, e)=>{ + + // console.log("before: ", this.state.users); + let url = `/sponsorships/${item.id}.json`; + axios.delete(url) + .then((result) => { + console.log(result); + // this.props.showNotification("终止成功") + if(result && result.data.status == 1){ + this.props.showNotification(result.data.message); + this.props.rerender(); + } + }) + .catch((error) => { + console.log(error); + this.props.showNotification("失败"); + }) + } + + to_sponsor_page = (item, key, e) => { + this.props.history.push(`/sponsor/${item.login}`); + } + + renderList = (users, userClass, current_user) => { + + if (users && users.length > 0) { + return users.map((item, key) => { + // console.log(item); + return ( +
    + {/*
    + + + +
    */} + + + +
    + {item && item.username} +
    + 金额:{item.amount}硬币 + 累计金额:{item.accumulate}硬币 +
    + +
    + + {item.start_time} - {item.stop_time? item.stop_time:"现在"} + + +
    +
    +
    + {item.stop_time? "":( + this.stop_sponsorship(item, key, e)} + // onCancel={cancel} + okText="是" + cancelText="否" + > + + + )} + {!item.stop_time && item.sponsor_id==current_user.user_id? ( + + ):""} +
    +
    + ); + }); + } else{ + return null; + } + } + render() { + const { users, userClass, current_user } = this.props; + return ( +
    {this.renderList(users, userClass, current_user)}
    + + ); + } +} + +export default SponsorList; diff --git a/src/forge/users/sponsor/wallet.js b/src/forge/users/sponsor/wallet.js new file mode 100644 index 000000000..992d8a8d3 --- /dev/null +++ b/src/forge/users/sponsor/wallet.js @@ -0,0 +1,272 @@ +import React, { Component } from "react"; +import { Link } from "react-router-dom"; +import { Menu, Input, Spin, Pagination, Popover, Button, Divider } from "antd"; + +import axios from "axios"; +import CoinChangeItem from "./CoinChangeItem"; +import Nodata from "../../Nodata"; +import img_array from "../../Images/array.png"; +import CoinChangeCharts from "./charts/coinChangeCharts"; +const Search = Input.Search; + +const tempData = [ + {amount: -3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"}, + {amount: 3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"}, + {amount: -3, description: "des", reasons: "no reason", to_user: "串", date: "2016年1月5日"}, + {amount: 3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"}, + {amount: -3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"}, + {amount: 3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"}, + {amount: -3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"}, + {amount: 3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"}, + {amount: -3, description: "des", reasons: "no reason", to_user: "串串", date: "2016年1月5日"} +]; + +class Wallet extends Component { + constructor(props) { + super(props); + this.state = { + page: 1, + limit: 10, + sort_by: "desc", + isSpin: false, + coinChangeList: undefined, + displayList: undefined, + total: undefined, + category: "all", + balance: 50, + saerch: undefined, + chartsData: {income:[], outcome:[]}, + }; + } + + componentDidMount = () => { + this.get_coin_changes(); + }; + + componentDidUpdate = () => { + // this.get_coin_changes() + }; + + componentWillReceiveProps = () => { + if (this.props.current_user) + this.get_coin_changes(); + } + + get_chart_data = () => { + this.setState({ + isSpin: true + }) + + let url = `/wallets/balance_chart.json`; + const {current_user} = this.props; + let user_id = current_user && current_user.user_id; + if (current_user){ + axios.get(url, { + params: { + id: user_id, + }}) + .then((result) => { + this.setState({ + chartsData: result.data, + isSpin: false, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + } + }; + + get_coin_changes = () => { + this.setState({ + isSpin: true + }) + + let url = `/wallets/coin_changes.json`; + const {category, sort_by, page, limit} = this.state; + const {current_user} = this.props; + let user_id = current_user && current_user.user_id; + if (current_user){ + axios.get(url, { + params: { + id: user_id, + category: category, + sort_direction: sort_by, + page: page, + limit: limit, + }}) + .then((result) => { + // console.log(result); + this.setState({ + coinChangeList: result.data.coin_changes, + displayList: result.data.coin_changes, + total: result.data.count, + balance: result.data.balance, + isSpin: false, + }) + }) + .catch((error) => { + console.log(error); + this.setState({ + isSpin: false, + }); + }); + } + }; + + changeCategory = (cate) => { + if(cate.target.value == "charts"){ + // console.log("charts"); + this.setState({ + category: cate.target.value, + page: 1, + }, ()=> {this.get_chart_data();}); + return ; + } + else{ + this.setState({ + category: cate.target.value, + page: 1, + }, ()=> {this.get_coin_changes();}); + } + }; + + //切换页数 + changePage = (page) => { + this.setState({ + page: page + }, ()=>{this.get_coin_changes();}) + }; + + // 排序 + ChangeSoryBy = (e) => { + this.setState({ + sort_by: e.key, + page: 1, + }, ()=>{this.get_coin_changes();}) + // this.get_coin_changes(); + console.log(e.key); + }; + + changeSearchValue = (e) => { + this.setState({ + search: e.target.value, + }); + }; + + menu =()=> ( + + 时间从近到远排序 + 时间从远到近排序 + + ); + + category_button=(category)=>{ + const { current_user, user } = this.props; + const button_lists = + user && current_user && user.login === current_user.login + ? [ + { type: "all", name: "所有" }, + { type: "income", name: "收入" }, + { type: "outcome", name: "支出" }, + { type: "charts", name: "查看统计" }, + ] + : + []; + + let list = button_lists.map((item, key) => { + return ( + + + + ); + }) + return list; + } + + render() { + const { current_user, user } = this.props; + const { category , sort_by, chartsData } = this.state; + const { displayList, coinChangeList, isSpin, total, search, limit, page, balance} = this.state; + + const coinChangeItem = displayList && displayList.length > 0 ? + : + ; + + const displayComponent = + category === "charts"? + : + coinChangeItem; + + return ( + +
    + {/* */} + +
    +
    余额:{balance}
    +
    +
    {this.category_button(category)}
    + +
    + {user && current_user && user.login === current_user.login? + displayComponent + : + + } + { + total && total > limit && category != "charts"? +
    + +
    + : + "" + } +
    + ); + } +} +export default Wallet; diff --git a/src/modules/user/LoginRegisterComponent.js b/src/modules/user/LoginRegisterComponent.js index a6ba6570e..41b674337 100644 --- a/src/modules/user/LoginRegisterComponent.js +++ b/src/modules/user/LoginRegisterComponent.js @@ -476,10 +476,12 @@ class LoginRegisterComponent extends Component { if (this.state.codes === undefined || this.state.codes == ""||this.state.codes.length===0) { // this.openNotification(`请输入验证码`,2); - this.setState({ - Phonenumberisnotcosyzm:"验证码不能为空", - }) - return + /***** + // this.setState({ + // Phonenumberisnotcosyzm:"验证码不能为空", + // }) + // return + ******/ } else if (this.state.passwords === undefined || this.state.passwords == "" ||this.state.passwords.length===0) { this.setState({ Phonenumberisnotcosymmm:"密码不能为空", @@ -504,16 +506,18 @@ class LoginRegisterComponent extends Component { if(this.props.weixinlogin){ url= '/weapps/register.json'; }else{ - url = "/accounts/register.json"; + url = "/accounts/remote_register.json"; } axios.post(url, { - login: this.state.logins, + // login: this.state.logins, + email: this.state.logins, password: this.state.passwords, - code: this.state.codes, + username: this.state.codes, + platform: "forge" }).then((result) => { if(result){ - if(result.data.status===-2){ + if(result.data.status!=0){ if(result.data.message==="验证码不正确"){ this.setState({ Phonenumberisnotcosyzm:"验证码不正确", @@ -1168,12 +1172,12 @@ class LoginRegisterComponent extends Component { onfocus="this.removeAttribute('readonly')" style={{ width:'210px', height:'38px', - }} placeholder="请输入验证码" + }} placeholder="请输入用户名" onChange={this.codesonChange} value={codes} > - { + {/* { getverificationcodes === undefined ? @@ -1183,7 +1187,7 @@ class LoginRegisterComponent extends Component { : - } + } */}