diff --git a/src/js/en_US_messages.js b/src/js/en_US_messages.js
index 74f48517..2108e9eb 100644
--- a/src/js/en_US_messages.js
+++ b/src/js/en_US_messages.js
@@ -56,9 +56,6 @@ export const en_US = {
"cmenu_mouseBrowsing": {
"message": "Mouse browsing"
},
- "cmenu_goToOtherSite": {
- "message": "Go to other site ..."
- },
"cmenu_showInputHelper": {
"message": "Input helper ..."
},
@@ -237,10 +234,6 @@ export const en_US = {
"message": "says:"
},
- "input_sitePlaceholder": {
- "message": "input URL here and then press ENTER"
- },
-
// input helper
"inputHelperTitle": {
"message": "Input helper"
diff --git a/src/js/pttchrome.js b/src/js/pttchrome.js
index cf3465c9..b295c0c9 100644
--- a/src/js/pttchrome.js
+++ b/src/js/pttchrome.js
@@ -1,4 +1,6 @@
// Main Program
+import BaseModal from 'react-overlays/lib/Modal';
+import { Fade, Modal } from "react-bootstrap";
import { AnsiParser } from './ansi_parser';
import { TermView } from './term_view';
import { TermBuf } from './term_buf';
@@ -11,6 +13,8 @@ import { TouchController } from './touch_controller';
import { i18n } from './i18n';
import { unescapeStr, b2u, parseWaterball } from './string_util';
import { getQueryVariable, setTimer } from './util';
+import PasteShortcutAlert from '../components/PasteShortcutAlert';
+import ConnectionAlert from '../components/ConnectionAlert';
export const App = function(onInitializedCallback, options) {
@@ -188,35 +192,33 @@ export const App = function(onInitializedCallback, options) {
this.pushthreadAutoUpdateCount = 0;
this.maxPushthreadAutoUpdateCount = -1;
this.onWindowResize();
- this.setupDeveloperModeAlert();
- this.setupConnectionAlert();
- this.setupPasteShortcutAlert();
this.setupLiveHelper();
- this.setupOtherSiteInput();
this.setupContextMenus();
this.contextMenuShown = false;
this.pref = new PttChromePref(this, onInitializedCallback);
- (new Promise(function(resolve, reject) {
- if (process.env.DEVELOPER_MODE) {
- $('#developerModeAlertDismiss').click(function(e) {
- $('#developerModeAlert').hide();
- resolve();
- });
- $('#developerModeAlert').show();
- } else {
- resolve();
- }
- })).then(function() {
+ (process.env.DEVELOPER_MODE ? import('../components/DeveloperModeAlert')
+ .then(({DeveloperModeAlert}) => new Promise((resolve, reject) => {
+ const container = document.getElementById('reactAlert')
+ const onDismiss = () => {
+ ReactDOM.unmountComponentAtNode(container)
+ resolve()
+ }
+ ReactDOM.render(
+
,
+ container
+ )
+ })) : Promise.resolve()
+ ).then(() => {
// connect.
- self.connect(getQueryVariable('site') || process.env.DEFAULT_SITE);
+ this.connect(getQueryVariable('site') || process.env.DEFAULT_SITE);
// TODO: Call onSymFont for font data when it's implemented.
console.log("load pref from storage");
// call getStorage to trigger load setting
- self.pref.getStorage();
+ this.pref.getStorage();
});
// init touch only if chrome is higher than version 36
@@ -292,7 +294,6 @@ App.prototype._attachConn = function(conn) {
App.prototype.onConnect = function() {
this.conn.isConnected = true;
this.view.setConn(this.conn);
- $('#connectionAlert').hide();
console.info("pttchrome onConnect");
this.connectState = 1;
this.updateTabIcon('connect');
@@ -339,7 +340,15 @@ App.prototype.onClose = function() {
this.connectState = 2;
this.idleTime = 0;
- $('#connectionAlert').show();
+ const onDismiss = () => {
+ ReactDOM.unmountComponentAtNode(container);
+ this.connect(this.connectedUrl.url);
+ }
+ const container = document.getElementById('reactAlert');
+ ReactDOM.render(
+
,
+ container
+ );
this.updateTabIcon('disconnect');
};
@@ -463,59 +472,6 @@ App.prototype.switchToEasyReadingMode = function(doSwitch) {
this.view.conn.send(unescapeStr('^L'));
};
-App.prototype.setupDeveloperModeAlert = function() {
- $('#developerModeAlertReconnect').empty();
- $('#developerModeAlertHeader').text(i18n('alert_developerModeHeader'));
- $('#developerModeAlertText').text(i18n('alert_developerModeText'));
- $('#developerModeAlertDismiss').text(i18n('alert_developerModeDismiss'));
-};
-
-App.prototype.setupConnectionAlert = function() {
- $('#connectionAlertReconnect').empty();
- $('#connectionAlertHeader').text(i18n('alert_connectionHeader'));
- $('#connectionAlertText').text(i18n('alert_connectionText'));
- $('#connectionAlertReconnect').text(i18n('alert_connectionReconnect'));
-
- var self = this;
- $('#connectionAlertReconnect').click(function(e) {
- self.connect(self.connectedUrl.url);
- $('#connectionAlert').hide();
- });
-};
-
-App.prototype.setupPasteShortcutAlert = function(){
- $('#pasteShortcutHeader').text(i18n('alert_pasteShortcutHeader'));
- $('#pasteShortcutText').text(i18n('alert_pasteShortcutText'));
- $('#pasteShortcutClose').text(i18n('alert_pasteShortcutClose'));
- $('#pasteShortcutClose').click(function(e) {
- $('#pasteShortcutAlert').modal('hide');
- self.modalShown = false;
- });
-};
-
-App.prototype.setupOtherSiteInput = function() {
- var self = this;
- $('#siteModal input').attr('placeholder', i18n('input_sitePlaceholder'));
- $('#siteModal input').keyup(function(e) {
- if (e.keyCode == 13) {
- var url = $(this).val();
- self.connect(url);
- $('#siteModal').modal('hide');
- }
- });
- $('#siteModal').on('shown.bs.modal', function(e) {
- $('#connectionAlert').hide();
- self.modalShown = true;
- $('#siteModal input').val('');
- $('#siteModal input').focus();
- });
- $('#siteModal').on('hidden.bs.modal', function(e) {
- $('#connectionAlert').hide();
- self.modalShown = false;
- });
-
-};
-
App.prototype.doCopy = function(str) {
if (str.indexOf('\x1b') < 0) {
str = str.replace(/\r\n/g, '\r');
@@ -569,8 +525,26 @@ App.prototype.onDOMCopy = function(e) {
App.prototype.doPaste = function() {
console.log("doPaste not implemented");
- $('#pasteShortcutAlert').modal('show');
- self.modalShown = true;
+ const container = document.getElementById('reactAlert')
+ const onDismiss = () => {
+ ReactDOM.unmountComponentAtNode(container)
+ this.modalShown = false;
+ }
+ ReactDOM.render(
+
+
+ ,
+ container
+ )
+ this.modalShown = true;
};
App.prototype.onPasteDone = function(content) {
@@ -610,10 +584,6 @@ App.prototype.doOpenUrlNewTab = function(a) {
a.dispatchEvent(e);
};
-App.prototype.doGoToOtherSite = function() {
- $('#siteModal').modal('show');
-};
-
App.prototype.incrementCountToUpdatePushthread = function(interval) {
if (this.maxPushthreadAutoUpdateCount == -1) {
this.pushthreadAutoUpdateCount = 0;
@@ -1598,9 +1568,6 @@ App.prototype.setupContextMenus = function() {
$('#cmenu_openUrlNewTab a').text(i18n('cmenu_openUrlNewTab'));
$('#cmenu_copyLinkUrl a').text(i18n('cmenu_copyLinkUrl'));
$('#cmenu_mouseBrowsing a').text(i18n('cmenu_mouseBrowsing'));
- $('#cmenu_goToOtherSite a').text(i18n('cmenu_goToOtherSite'));
- if (!process.env.ENABLE_GOTO_OTHER_SITE)
- $('#cmenu_goToOtherSite a').hide();
$('#cmenu_showInputHelper a').text(i18n('cmenu_showInputHelper'));
$('#cmenu_showLiveArticleHelper a').text(i18n('cmenu_showLiveArticleHelper'));
$('#cmenu_settings a').text(i18n('cmenu_settings'));
@@ -1630,9 +1597,6 @@ App.prototype.setupContextMenus = function() {
'cmenu_mouseBrowsing': function() {
self.switchMouseBrowsing();
},
- 'cmenu_goToOtherSite': function() {
- self.doGoToOtherSite();
- },
'cmenu_showInputHelper': function() {
self.inputHelper.showHelper();
},
diff --git a/src/js/term_view.js b/src/js/term_view.js
index 2902d431..60dca050 100644
--- a/src/js/term_view.js
+++ b/src/js/term_view.js
@@ -183,13 +183,6 @@ export function TermView(rowCount) {
return; // Shift Ctrl Alt (19)
if (self.bbscore.modalShown || self.bbscore.contextMenuShown)
return;
- if (document.getElementById('connectionAlert').style.display != 'none') {
- if (e.keyCode == 13)
- document.getElementById('connectionAlertReconnect').click();
- if (e.keyCode == 27)
- document.getElementById('connectionAlertExitAll').click();
- return;
- }
self.onKeyDown(e);
}, false);
@@ -200,10 +193,6 @@ export function TermView(rowCount) {
return; // Shift Ctrl Alt (19)
if (self.bbscore.modalShown || self.bbscore.contextMenuShown)
return;
- if (document.getElementById('connectionAlert').style.display != 'none' &&
- (e.keyCode == 13 || e.keyCode == 27)) {
- return;
- }
// set input area focus whenever key down even if there is selection
self.bbscore.setInputAreaFocus();
}, false);
diff --git a/src/js/zh_TW_messages.js b/src/js/zh_TW_messages.js
index 3ee397dc..45db84c5 100644
--- a/src/js/zh_TW_messages.js
+++ b/src/js/zh_TW_messages.js
@@ -56,9 +56,6 @@
"cmenu_mouseBrowsing": {
"message": "滑鼠瀏覽"
},
- "cmenu_goToOtherSite": {
- "message": "去其他站台 ..."
- },
"cmenu_showInputHelper": {
"message": "輸入小幫手 ..."
},
@@ -234,10 +231,6 @@
"message": "說:"
},
- "input_sitePlaceholder": {
- "message": "在此輸入站台地址後按 ENTER"
- },
-
// input helper
"inputHelperTitle": {
"message": "輸入小幫手"
diff --git a/webpack.config.js b/webpack.config.js
index b54195bc..909876ba 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -4,6 +4,7 @@ const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
+const WebpackCdnPlugin = require('webpack-cdn-plugin');
const DEVELOPER_MODE = process.env.NODE_ENV === 'development'
const PRODUCTION_MODE = process.env.NODE_ENV === 'production'
@@ -18,6 +19,9 @@ module.exports = {
pathinfo: DEVELOPER_MODE,
filename: `[name]${ PRODUCTION_MODE ? '.[chunkhash]' : '' }.js`
},
+ externals: {
+ jquery: 'jQuery',
+ },
module: {
rules: [
{
@@ -65,7 +69,6 @@ module.exports = {
new webpack.DefinePlugin({
'process.env.PTTCHROME_PAGE_TITLE': JSON.stringify(process.env.PTTCHROME_PAGE_TITLE || 'PttChrome'),
'process.env.DEFAULT_SITE': JSON.stringify(PRODUCTION_MODE ? 'wsstelnet://ws.ptt.cc/bbs' : 'wstelnet://localhost:8080/bbs'),
- 'process.env.ENABLE_GOTO_OTHER_SITE': JSON.stringify(false),
'process.env.DEVELOPER_MODE': JSON.stringify(DEVELOPER_MODE),
}),
new ExtractTextPlugin({
@@ -81,6 +84,20 @@ module.exports = {
inject: 'head',
template: './src/dev.html',
filename: '../index.html'
+ }),
+ new WebpackCdnPlugin({
+ modules: [
+ {
+ name: 'react',
+ var: 'React',
+ path: 'umd/react.production.min.js',
+ },
+ {
+ name: 'react-dom',
+ var: 'ReactDOM',
+ path: 'umd/react-dom.production.min.js',
+ },
+ ],
})
].concat(PRODUCTION_MODE ? [
new UglifyJSPlugin({
diff --git a/yarn.lock b/yarn.lock
index afc45dd3..239dae81 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -169,6 +169,10 @@ array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+asap@~2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+
asn1.js@^4.0.0:
version "4.9.1"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40"
@@ -238,6 +242,27 @@ aws4@^1.2.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+babel-cli@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
+ dependencies:
+ babel-core "^6.26.0"
+ babel-polyfill "^6.26.0"
+ babel-register "^6.26.0"
+ babel-runtime "^6.26.0"
+ commander "^2.11.0"
+ convert-source-map "^1.5.0"
+ fs-readdir-recursive "^1.0.0"
+ glob "^7.1.2"
+ lodash "^4.17.4"
+ output-file-sync "^1.1.2"
+ path-is-absolute "^1.0.1"
+ slash "^1.0.0"
+ source-map "^0.5.6"
+ v8flags "^2.1.1"
+ optionalDependencies:
+ chokidar "^1.6.1"
+
babel-code-frame@^6.11.0, babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
@@ -406,6 +431,10 @@ babel-messages@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
+babel-plugin-add-module-exports@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25"
+
babel-plugin-check-es2015-constants@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
@@ -420,6 +449,10 @@ babel-plugin-syntax-class-properties@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
+babel-plugin-syntax-dynamic-import@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
+
babel-plugin-syntax-exponentiation-operator@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
@@ -688,6 +721,14 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
+babel-polyfill@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
+ dependencies:
+ babel-runtime "^6.26.0"
+ core-js "^2.5.0"
+ regenerator-runtime "^0.10.5"
+
babel-preset-env@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
@@ -752,7 +793,7 @@ babel-register@^6.26.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
-babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
+babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
dependencies:
@@ -1069,7 +1110,11 @@ chalk@^2.0.1, chalk@^2.1.0:
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
-chokidar@^1.6.0, chokidar@^1.7.0:
+change-emitter@^0.1.2:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515"
+
+chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
dependencies:
@@ -1276,6 +1321,10 @@ cookie@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+core-js@^1.0.0:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
+
core-js@^2.4.0, core-js@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
@@ -1592,6 +1641,10 @@ dom-converter@~0.1:
dependencies:
utila "~0.3"
+dom-helpers@^3.2.0, dom-helpers@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a"
+
dom-serializer@0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
@@ -1668,6 +1721,12 @@ encodeurl@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
+encoding@^0.1.11:
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
+ dependencies:
+ iconv-lite "~0.4.13"
+
enhanced-resolve@^3.4.0:
version "3.4.1"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
@@ -1957,6 +2016,18 @@ faye-websocket@~0.11.0:
dependencies:
websocket-driver ">=0.5.1"
+fbjs@^0.8.1, fbjs@^0.8.16:
+ version "0.8.16"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
+ dependencies:
+ core-js "^1.0.0"
+ isomorphic-fetch "^2.1.1"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.9"
+
figures@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -2060,6 +2131,10 @@ fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+fs-readdir-recursive@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -2140,7 +2215,7 @@ glob-parent@^2.0.0:
dependencies:
is-glob "^2.0.0"
-glob@^7.0.3, glob@^7.0.5:
+glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -2165,7 +2240,7 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
-graceful-fs@^4.1.2:
+graceful-fs@^4.1.2, graceful-fs@^4.1.4:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
@@ -2253,6 +2328,10 @@ hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+hoist-non-react-statics@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0"
+
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
@@ -2373,7 +2452,7 @@ husky@^0.14.3:
normalize-path "^1.0.0"
strip-indent "^2.0.0"
-iconv-lite@0.4.19:
+iconv-lite@0.4.19, iconv-lite@~0.4.13:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
@@ -2445,7 +2524,7 @@ interpret@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
-invariant@^2.2.2:
+invariant@^2.1.0, invariant@^2.2.1, invariant@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
dependencies:
@@ -2625,7 +2704,7 @@ is-regexp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
-is-stream@^1.1.0:
+is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -2673,6 +2752,13 @@ isobject@^2.0.0:
dependencies:
isarray "1.0.0"
+isomorphic-fetch@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
+ dependencies:
+ node-fetch "^1.0.1"
+ whatwg-fetch ">=0.10.0"
+
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -2767,6 +2853,10 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
+keycode@^2.1.2:
+ version "2.1.9"
+ resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa"
+
killable@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b"
@@ -2959,7 +3049,7 @@ longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-loose-envify@^1.0.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
@@ -3162,6 +3252,13 @@ no-case@^2.2.0:
dependencies:
lower-case "^1.1.1"
+node-fetch@^1.0.1:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
+ dependencies:
+ encoding "^0.1.11"
+ is-stream "^1.0.1"
+
node-forge@0.6.33:
version "0.6.33"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc"
@@ -3296,7 +3393,7 @@ oauth-sign@~0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-object-assign@^4.0.1, object-assign@^4.1.0:
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -3389,6 +3486,14 @@ osenv@^0.1.4:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
+output-file-sync@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76"
+ dependencies:
+ graceful-fs "^4.1.4"
+ mkdirp "^0.5.1"
+ object-assign "^4.1.0"
+
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -3826,6 +3931,26 @@ process@^0.11.0:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+promise@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ dependencies:
+ asap "~2.0.3"
+
+prop-types-extra@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.0.1.tgz#a57bd4810e82d27a3ff4317ecc1b4ad005f79a82"
+ dependencies:
+ warning "^3.0.0"
+
+prop-types@^15.5.10, prop-types@^15.6.0:
+ version "15.6.0"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856"
+ dependencies:
+ fbjs "^0.8.16"
+ loose-envify "^1.3.1"
+ object-assign "^4.1.1"
+
proxy-addr@~2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec"
@@ -3929,6 +4054,49 @@ rc@^1.1.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
+react-bootstrap@^0.31.5:
+ version "0.31.5"
+ resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-0.31.5.tgz#57040fa8b1274e1e074803c21a1b895fdabea05a"
+ dependencies:
+ babel-runtime "^6.11.6"
+ classnames "^2.2.5"
+ dom-helpers "^3.2.0"
+ invariant "^2.2.1"
+ keycode "^2.1.2"
+ prop-types "^15.5.10"
+ prop-types-extra "^1.0.1"
+ react-overlays "^0.7.4"
+ uncontrollable "^4.1.0"
+ warning "^3.0.0"
+
+react-dom@^16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044"
+ dependencies:
+ fbjs "^0.8.16"
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ prop-types "^15.6.0"
+
+react-overlays@^0.7.4:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.7.4.tgz#ef2ec652c3444ab8aa014262b18f662068e56d5c"
+ dependencies:
+ classnames "^2.2.5"
+ dom-helpers "^3.2.1"
+ prop-types "^15.5.10"
+ prop-types-extra "^1.0.1"
+ warning "^3.0.0"
+
+react@^16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba"
+ dependencies:
+ fbjs "^0.8.16"
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ prop-types "^15.6.0"
+
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@@ -3989,6 +4157,15 @@ readdirp@^2.0.0:
readable-stream "^2.0.2"
set-immediate-shim "^1.0.1"
+recompose@^0.26.0:
+ version "0.26.0"
+ resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.26.0.tgz#9babff039cb72ba5bd17366d55d7232fbdfb2d30"
+ dependencies:
+ change-emitter "^0.1.2"
+ fbjs "^0.8.1"
+ hoist-non-react-statics "^2.3.1"
+ symbol-observable "^1.0.4"
+
redent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
@@ -4014,6 +4191,10 @@ regenerate@^1.2.1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
+regenerator-runtime@^0.10.5:
+ version "0.10.5"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
+
regenerator-runtime@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
@@ -4250,7 +4431,7 @@ set-immediate-shim@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
-setimmediate@^1.0.4:
+setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
@@ -4553,6 +4734,10 @@ symbol-observable@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
+symbol-observable@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32"
+
tapable@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
@@ -4639,6 +4824,10 @@ type-is@~1.6.15:
media-typer "0.3.0"
mime-types "~2.1.15"
+ua-parser-js@^0.7.9:
+ version "0.7.17"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
+
uglify-js@3.1.x:
version "3.1.5"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.5.tgz#4c1a6d53b2fe77e4710dd94631853effd3ff5143"
@@ -4671,6 +4860,12 @@ uid-number@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
+uncontrollable@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-4.1.0.tgz#e0358291252e1865222d90939b19f2f49f81c1a9"
+ dependencies:
+ invariant "^2.1.0"
+
uniq@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
@@ -4722,6 +4917,10 @@ url@^0.11.0:
punycode "1.3.2"
querystring "0.2.0"
+user-home@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
+
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -4752,6 +4951,12 @@ uuid@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
+v8flags@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
+ dependencies:
+ user-home "^1.1.1"
+
validate-npm-package-license@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
@@ -4781,6 +4986,12 @@ vm-browserify@0.0.4:
dependencies:
indexof "0.0.1"
+warning@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
+ dependencies:
+ loose-envify "^1.0.0"
+
watchpack@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac"
@@ -4795,6 +5006,14 @@ wbuf@^1.1.0, wbuf@^1.7.2:
dependencies:
minimalistic-assert "^1.0.0"
+webpack-cdn-plugin@^1.6.6:
+ version "1.6.6"
+ resolved "https://registry.yarnpkg.com/webpack-cdn-plugin/-/webpack-cdn-plugin-1.6.6.tgz#132784add6fe890f20e2b6cf3dbe94eb8ccd7b58"
+ dependencies:
+ babel-cli "^6.26.0"
+ babel-plugin-add-module-exports "^0.2.1"
+ babel-preset-env "^1.6.1"
+
webpack-dev-middleware@^1.11.0:
version "1.12.1"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.1.tgz#338be3ca930973be1c2ce07d84d275e997e1a25a"
@@ -4882,6 +5101,10 @@ websocket-extensions@>=0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
+whatwg-fetch@>=0.10.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
+
whet.extend@~0.9.9:
version "0.9.9"
resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"