From 6136ceef11569bc1994d88ed838f79243579a680 Mon Sep 17 00:00:00 2001 From: Segeydev Date: Mon, 19 Feb 2018 17:07:36 +0200 Subject: [PATCH 1/9] wip --- .gitignore | 5 + src/componets/AuthForm/AuthForm.component.js | 3 + .../Auth/AuthForm/AuthForn.container.js | 122 ++++++++++++++++++ .../CompletionAuthForm.container.js | 7 + .../VerifyForm/VerifyAuthForm.container.js | 4 + src/core/bert/Converter.bert.js | 19 ++- src/core/bert/SignatureGenerator.bert.js | 16 +++ src/core/configs/MqttInit.config.js | 4 + src/core/loggers/SentryError.logger | 10 -- src/core/protocols/Index.protocol.js | 10 +- src/core/protocols/Topic.protocol.js | 2 +- src/core/protocols/Validator.protocol.js | 8 +- src/core/sagas/Auth.saga.js | 72 +++++++++++ src/core/sagas/Connector.saga.js | 20 +++ src/core/sagas/Root.saga.js | 11 ++ src/core/sagas/index.js | 4 + src/core/services/MqttClient.service.js | 4 - src/core/services/MqttEventChannel.service.js | 8 +- src/core/services/index.js | 3 +- src/core/store/Configure.dev.store.js | 10 +- src/core/store/index.js | 7 +- src/index.html | 9 -- src/root.js | 4 +- src/template.ejs | 0 24 files changed, 314 insertions(+), 48 deletions(-) create mode 100644 src/componets/AuthForm/AuthForm.component.js create mode 100644 src/containers/Auth/AuthForm/AuthForn.container.js create mode 100644 src/containers/Auth/CompletionForm/CompletionAuthForm.container.js create mode 100644 src/containers/Auth/VerifyForm/VerifyAuthForm.container.js delete mode 100644 src/core/loggers/SentryError.logger create mode 100644 src/core/sagas/Auth.saga.js create mode 100644 src/core/sagas/Connector.saga.js create mode 100644 src/core/sagas/Root.saga.js create mode 100644 src/core/sagas/index.js delete mode 100644 src/index.html mode change 100644 => 100755 src/template.ejs diff --git a/.gitignore b/.gitignore index 9629e00b6..f37b21906 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,11 @@ ebin/ */webpack-assets.json */.editorconfig */.gitignore +<<<<<<< HEAD +======= +webpack.dev.config.babel.js +webpack.prod.config.babel.js +>>>>>>> wip # Logs logs diff --git a/src/componets/AuthForm/AuthForm.component.js b/src/componets/AuthForm/AuthForm.component.js new file mode 100644 index 000000000..78f1762bf --- /dev/null +++ b/src/componets/AuthForm/AuthForm.component.js @@ -0,0 +1,3 @@ +import React from 'react'; + +const \ No newline at end of file diff --git a/src/containers/Auth/AuthForm/AuthForn.container.js b/src/containers/Auth/AuthForm/AuthForn.container.js new file mode 100644 index 000000000..759844477 --- /dev/null +++ b/src/containers/Auth/AuthForm/AuthForn.container.js @@ -0,0 +1,122 @@ +import React, { Component } from 'react'; +import { bindActionCreators } from 'redux'; +import { connect } from 'react-redux'; + + +class AuthForm extends Component { + render() { + return ( +
+
+
+
+
+
+ +
+
+
+
+
+
+
+

Phone Number

+
+

Please choose your country and enter your phone number.

+
+
+
+ + + +
+
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+

Security Code

+
+

We've sent a security code to your phone.

+

You should receive it within 60 seconds.

+

+ Haven't received the code? + Haven't received the code? +

+
+
+
+ + +
+
+ +
+
+ + +
+ +
+
+
+
+
+
+
+
+
+

Your Name

+
+

How would you like to be called?

+
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+
+ By signing in, you acknowledge that you have read and accept our Terms of + Service. +
+
+
+
+
+
+
+ + ) + } +} \ No newline at end of file diff --git a/src/containers/Auth/CompletionForm/CompletionAuthForm.container.js b/src/containers/Auth/CompletionForm/CompletionAuthForm.container.js new file mode 100644 index 000000000..518bd4495 --- /dev/null +++ b/src/containers/Auth/CompletionForm/CompletionAuthForm.container.js @@ -0,0 +1,7 @@ +import React, { Component } from 'react'; +import { bindActionCreators } from 'redux'; +import { connect } from 'react-redux'; + +class CompletionAuthForm extends Component { + +} \ No newline at end of file diff --git a/src/containers/Auth/VerifyForm/VerifyAuthForm.container.js b/src/containers/Auth/VerifyForm/VerifyAuthForm.container.js new file mode 100644 index 000000000..e1879d802 --- /dev/null +++ b/src/containers/Auth/VerifyForm/VerifyAuthForm.container.js @@ -0,0 +1,4 @@ +import React, { Component } from 'react'; +import { bindActionCreators } from 'redux'; +import { connect } from 'react-redux'; + diff --git a/src/core/bert/Converter.bert.js b/src/core/bert/Converter.bert.js index 81e7c93a3..a1026ab1c 100644 --- a/src/core/bert/Converter.bert.js +++ b/src/core/bert/Converter.bert.js @@ -92,4 +92,21 @@ const convertToBert = (payload) => ( ); -export { enc as encode, dec as decode, convertToBert }; \ No newline at end of file +export { + enc as encode, + dec as decode, + convertToBert, + + + uc, + ar, + fl, + bin, + nop, + number, + tuple, + atom, + din, + run, + big +}; \ No newline at end of file diff --git a/src/core/bert/SignatureGenerator.bert.js b/src/core/bert/SignatureGenerator.bert.js index a95e0acf2..215db3660 100644 --- a/src/core/bert/SignatureGenerator.bert.js +++ b/src/core/bert/SignatureGenerator.bert.js @@ -1,4 +1,20 @@ import { utf8_dec, utf8_toByteArray } from '../utils/Utf8.util'; +<<<<<<< HEAD +======= +import { + uc, + ar, + fl, + bin, + nop, + number, + tuple, + atom, + din, + run, + big +} from './Converter.bert'; +>>>>>>> wip function clean(r) { for(var k in r) if(!r[k]) delete r[k]; return r; } function check_len(x) { try { return (eval('len'+utf8_dec(x.v[0].v))() == x.v.length) ? true : false } diff --git a/src/core/configs/MqttInit.config.js b/src/core/configs/MqttInit.config.js index abc5e89d1..4343c1455 100644 --- a/src/core/configs/MqttInit.config.js +++ b/src/core/configs/MqttInit.config.js @@ -14,6 +14,10 @@ export default ({ will : { topic: 'version/2', payload:'version/2', +<<<<<<< HEAD qos: '2' +======= + qos: 2 +>>>>>>> wip } }); diff --git a/src/core/loggers/SentryError.logger b/src/core/loggers/SentryError.logger deleted file mode 100644 index 6e39bd9de..000000000 --- a/src/core/loggers/SentryError.logger +++ /dev/null @@ -1,10 +0,0 @@ -import Raven from 'raven-js'; - -export default ( - Raven - .config( - 'https://1febbedf16804e8eb4586fa445f8567c@sentry.io/253546', - { autoBreadcrumbs: false } - ) - .install() -); \ No newline at end of file diff --git a/src/core/protocols/Index.protocol.js b/src/core/protocols/Index.protocol.js index dd85b98ae..72bd7969f 100644 --- a/src/core/protocols/Index.protocol.js +++ b/src/core/protocols/Index.protocol.js @@ -23,35 +23,31 @@ const check = node => { const factory = (name = '', utils = {}, eventFormer = null, ...args) => { - let response; const delimiter = '/'; const eventFormerCopy = eventFormer; const prepareEvent = (pipe = []) => { if(!Array.isArray(pipe)) { return; } - return pipe.join(delimiter) + return pipe.join(delimiter).toUpperCase(); }; if(!eventFormer) { eventFormer = (res = []) => { - response = utils.decode(res); return prepareEvent([ name, - response.status + res.status ]); } } else { eventFormer = (res = []) => { - response = utils.decode(res); - prepareEvent(eventFormerCopy(response)); + return prepareEvent(eventFormerCopy(res)); } } return { name, ...utils, eventFormer, - response, ...args } }; diff --git a/src/core/protocols/Topic.protocol.js b/src/core/protocols/Topic.protocol.js index 3d70b2f1a..5d5d79d04 100644 --- a/src/core/protocols/Topic.protocol.js +++ b/src/core/protocols/Topic.protocol.js @@ -6,7 +6,7 @@ const generateNumber = () => ( Math.floor((Math.random() * config.NODES) + 1) ); -const topic = (prefix, ...args) => { +const topic = (prefix = 'events', ...args) => { let pipe = [ prefix, ...args, diff --git a/src/core/protocols/Validator.protocol.js b/src/core/protocols/Validator.protocol.js index b86f1ed37..718dbacab 100644 --- a/src/core/protocols/Validator.protocol.js +++ b/src/core/protocols/Validator.protocol.js @@ -11,10 +11,12 @@ const validate = (res) => { for(let protocol in protocols) { let node = protocols[protocol](); if(isCorrespond(res, node.len(), node.name)) { + const response = node.decode(res); + const event = node.eventFormer(response); return { - event: node.eventFormer(res), - response: node.response - }; + response, + event + } } } return; diff --git a/src/core/sagas/Auth.saga.js b/src/core/sagas/Auth.saga.js new file mode 100644 index 000000000..19285034f --- /dev/null +++ b/src/core/sagas/Auth.saga.js @@ -0,0 +1,72 @@ +import { fork, call, put, takeEvery, take, takeLatest } from 'redux-saga/effects'; +import { getProvider } from '../services/MqttClient.service'; +import { authUtils } from '../bert/SignatureGenerator.bert'; +import { setupClientEntry, setupDevEntry } from '../store'; +import { binPayload } from '../../../tools/ErlangDebugger.tools' +import { + actions, + actionsType +} from '../resource/Auth.resource'; +//worker +function* authHandler(action) { + const { phone } = action; + + const client = getProvider(); + if(!client.connected) { + return; + } + try { + const encoded = authUtils.encode({ + "type": "reg", + "token": "", + "phone": phone, + "client_id": setupClientEntry(), + "dev_key": setupDevEntry() + }); + const data = yield call(client.send,'events', encoded); + yield put(actions.codeRequestSuccess()); + return data + } catch(e) { + console.log(e); + } +} + + +//function* authVerifyHandler() { +// +//} +// +//function* authCompletionHandler(action) { +// let { firstName, lastName } = action; +//} + +//watchers +function* authRequest(params) { + while(true) { + const action = yield take(actionsType.CODE_REQUEST); + const token = yield call(authHandler, action); + } +} + +function* authResponse(params) { + while(true) { + const data = yield take(actionsType.SERVER_CODE_RESPONSE); + yield put(actions.codeResponseSuccess(data)) + } +} +//function* authVerify(param) { +// while(true) { +// const action = yield take(actionsType.PHONE_VERIFY_REQUEST) +// } +//} +// +// +//function* authCompletion(param) { +// while(true) { +// const action = yield take(actionsType.AUTH_COMPLETION); +// yield call() +// } +// +//} + +export { authRequest, authResponse }; \ No newline at end of file diff --git a/src/core/sagas/Connector.saga.js b/src/core/sagas/Connector.saga.js new file mode 100644 index 000000000..70ae785f2 --- /dev/null +++ b/src/core/sagas/Connector.saga.js @@ -0,0 +1,20 @@ +import { takeEvery, takeLatest, fork } from 'redux-saga/effects'; +import { effects } from 'redux-saga' +import { providerEventChannel } from '../services'; +import { actionsType } from '../resource/Init.resource'; +const { call, put, take } = effects; + + +const mqttSaga = function* (action) { + const socketChannel = yield call(providerEventChannel, action); + while (true) { + const eventAction = yield take(socketChannel); + yield put(eventAction); + } +}; + +const connector = function* (params) { + yield takeLatest(actionsType.CONNECTING, mqttSaga); +}; + +export { connector }; \ No newline at end of file diff --git a/src/core/sagas/Root.saga.js b/src/core/sagas/Root.saga.js new file mode 100644 index 000000000..97437e4aa --- /dev/null +++ b/src/core/sagas/Root.saga.js @@ -0,0 +1,11 @@ +import { fork } from 'redux-saga/effects'; +import { connector } from './Connector.saga'; +import { authRequest, authResponse } from './Auth.saga'; + +function* rootSaga() { + yield fork(connector); + yield fork(authRequest); + yield fork(authResponse); +} + +export { rootSaga }; \ No newline at end of file diff --git a/src/core/sagas/index.js b/src/core/sagas/index.js new file mode 100644 index 000000000..beb1f8347 --- /dev/null +++ b/src/core/sagas/index.js @@ -0,0 +1,4 @@ +import { rootSaga } from './Root.saga'; +import { connector } from './Connector.saga'; + +export { rootSaga }; \ No newline at end of file diff --git a/src/core/services/MqttClient.service.js b/src/core/services/MqttClient.service.js index 2027f6f22..93581dee3 100644 --- a/src/core/services/MqttClient.service.js +++ b/src/core/services/MqttClient.service.js @@ -4,8 +4,6 @@ import { encode, decode } from '../bert/Converter.bert'; import { topic } from '../protocols'; import { MqttLocaforageStore } from '../store'; import { incomeDB, browserStorage } from '../store'; -import { binPayload } from '../../../tools/ErlangDebugger.tools' -import { DEV_KEY, CLIENT } from '../configs/BrowserStorage.config'; import { setupClientEntry } from '../store/Browser.store'; import mqttConfig from '../configs/MqttInit.config'; @@ -28,8 +26,6 @@ const initSupplier = () => { let client = mqtt.connect(formatPath(mqttConfig), config); - - const xtendedClient = Object.assign(client, { onClose: () => { diff --git a/src/core/services/MqttEventChannel.service.js b/src/core/services/MqttEventChannel.service.js index b53d503ab..232d30e37 100644 --- a/src/core/services/MqttEventChannel.service.js +++ b/src/core/services/MqttEventChannel.service.js @@ -30,22 +30,24 @@ const supplierEventChannel = () => eventChannel( boundEventHandlers.error(e) }); client.on(eventTypes.MESSAGE, function(topic, message, packet) { - boundEventHandlers.publish(topic, message, packet) + console.log(topic, message, packet); + //boundEventHandlers.publish(topic, message, packet) }); client.on(eventTypes.PACKETRECEIVE, function (packet = {}) { if(!packet.payload) { return; } - const processedResponse = formatter(mockReceivePacket); + const processedResponse = formatter(packet); let { event, response } = validate(processedResponse); boundEventHandlers.serverResponse(event, response, packet); console.log('PACKETRECEIVE', packet); + + console.log("PACKETRECEIVE", event, response); }); client.on(eventTypes.PACKETSEND, function(packet) { console.log('PACKETSEND', packet); }); - //buffers.expanding(bufferSize); return client.end } diff --git a/src/core/services/index.js b/src/core/services/index.js index 56235ac56..ffa4240af 100644 --- a/src/core/services/index.js +++ b/src/core/services/index.js @@ -1,4 +1,5 @@ import { getSupplier, initSupplier } from './MqttClient.service'; import supplierEventChannel from './MqttEventChannel.service'; -export { initSupplier, supplierEventChannel, getSupplier }; \ No newline at end of file +export { initSupplier, supplierEventChannel, getSupplier }; + diff --git a/src/core/store/Configure.dev.store.js b/src/core/store/Configure.dev.store.js index c24850bd1..708ce6dd7 100644 --- a/src/core/store/Configure.dev.store.js +++ b/src/core/store/Configure.dev.store.js @@ -5,7 +5,8 @@ import reduxImmutableStateInvariant from 'redux-immutable-state-invariant'; import logger from 'redux-logger'; import trottle from 'lodash/throttle'; import { STORAGE_NAME, SAVE_TIME_DELAY } from '../configs/BrowserStorage.config'; -import { browserStorage } from './index'; +import { crashReporter } from '../middlewares' +import { rootSaga } from '../sagas'; import { rootReducer } from '../resource'; import { rootSaga } from '../resource'; @@ -13,10 +14,11 @@ const configureStore = () => { const sagaMiddleware = createSagaMiddleware(); const middlewares = [ + crashReporter, + logger, reduxImmutableStateInvariant(), - sagaMiddleware, - //loadingBarMiddleware({ scope: 'page' }), - logger + sagaMiddleware + //loadingBarMiddleware({ scope: 'page' }) ]; const composeExtenders = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; diff --git a/src/core/store/index.js b/src/core/store/index.js index 99700df55..95697c5f7 100644 --- a/src/core/store/index.js +++ b/src/core/store/index.js @@ -2,15 +2,14 @@ import { setupClientEntry, setupDevEntry } from './Browser.store'; import { incomeDB, outcomeDB } from './ConfigureBrowser.store'; import MqttLocaforageStore from './MqttLocaforage.store'; -console.log(process.env.NODE_ENV); - const configureStore = process.env.NODE_ENV === "development" ? require('./Configure.dev.store') - : ''; + : require('./Configure.prod.store'); const browserStorage = localStorage !== 'undefined' ? localStorage : outcomeDB; - export { +export { + setupDevEntry, setupClientEntry, browserStorage, configureStore, diff --git a/src/index.html b/src/index.html deleted file mode 100644 index 0f152d13d..000000000 --- a/src/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - -
- - diff --git a/src/root.js b/src/root.js index 1dc476ee7..c0ac63af8 100644 --- a/src/root.js +++ b/src/root.js @@ -17,7 +17,9 @@ class Root extends Component { const history = createHistory(); return ( -
test
+ + { routes() } +
) } diff --git a/src/template.ejs b/src/template.ejs old mode 100644 new mode 100755 -- GitLab From 0a9aae9fa62f14228aeda0df52befcb93f413e34 Mon Sep 17 00:00:00 2001 From: Segeydev Date: Mon, 19 Feb 2018 18:50:34 +0200 Subject: [PATCH 2/9] wip --- src/core/resource/Combined.action.js | 10 +++++++ src/core/resource/Root.reducer.js | 6 +++-- src/core/resource/index.js | 2 ++ .../profile/data/InitProfile.reducer.js | 26 +++++++++++++++++++ src/core/resource/profile/index.js | 6 +++++ src/core/sagas/Connector.saga.js | 3 ++- src/core/services/MqttClient.service.js | 1 + src/core/services/MqttEventChannel.service.js | 1 + src/core/services/index.js | 1 - src/core/store/Browser.store.js | 4 +-- src/core/store/Configure.dev.store.js | 4 +-- 11 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 src/core/resource/Combined.action.js create mode 100644 src/core/resource/profile/data/InitProfile.reducer.js diff --git a/src/core/resource/Combined.action.js b/src/core/resource/Combined.action.js new file mode 100644 index 000000000..fc2c9de8f --- /dev/null +++ b/src/core/resource/Combined.action.js @@ -0,0 +1,10 @@ +import { authInitActions } from './auth/init'; +import { authVerifyActions } from './auth/verification'; +import { supplierActions } from './supplier'; + +export const combinedActions = { + ...authInitActions, + ...authVerifyActions, + ...supplierActions +}; + diff --git a/src/core/resource/Root.reducer.js b/src/core/resource/Root.reducer.js index d0789f0eb..c566f795b 100644 --- a/src/core/resource/Root.reducer.js +++ b/src/core/resource/Root.reducer.js @@ -1,11 +1,13 @@ import { combineReducers } from 'redux'; import { supplier } from './supplier/data/Supplier.reducer'; import { authInitReducers } from './auth/init'; +import { profile } from './profile' const rootReducer = combineReducers({ supplier, - profile: combineReducers({ - credentials: authInitReducers.credentials + user: combineReducers({ + profile, + auth: authInitReducers.credentials }) }); diff --git a/src/core/resource/index.js b/src/core/resource/index.js index ddecdb652..02b48fabc 100644 --- a/src/core/resource/index.js +++ b/src/core/resource/index.js @@ -1,7 +1,9 @@ import { rootSaga } from './Root.saga'; import { rootReducer } from './Root.reducer'; +import { combinedActions } from './Combined.action' export { + combinedActions, rootReducer, rootSaga } \ No newline at end of file diff --git a/src/core/resource/profile/data/InitProfile.reducer.js b/src/core/resource/profile/data/InitProfile.reducer.js new file mode 100644 index 000000000..5871347da --- /dev/null +++ b/src/core/resource/profile/data/InitProfile.reducer.js @@ -0,0 +1,26 @@ +import { createAction, createReducer } from 'redux-act'; + +const profileInit = createAction('PROFILE/INIT/SUCCES'); + +const handleLoad = (state, action) =>{ + console.log('ACTION INIT',state, action); + return { ...state, init: true, data: action } +} ; + +const initialState = { + init: false +}; + +const profile = createReducer(on => { + on(profileInit, handleLoad); +}, initialState); + +export const userActions = { + profileInit +}; + +export default profile; + +export function isLoaded(globalState) { + return globalState.profile && globalState.profile.init; +} \ No newline at end of file diff --git a/src/core/resource/profile/index.js b/src/core/resource/profile/index.js index e69de29bb..a8e0ac64a 100644 --- a/src/core/resource/profile/index.js +++ b/src/core/resource/profile/index.js @@ -0,0 +1,6 @@ +import profile, { userActions } from './data/InitProfile.reducer'; + +export { + profile, + userActions +} \ No newline at end of file diff --git a/src/core/sagas/Connector.saga.js b/src/core/sagas/Connector.saga.js index 70ae785f2..15ac54288 100644 --- a/src/core/sagas/Connector.saga.js +++ b/src/core/sagas/Connector.saga.js @@ -14,7 +14,8 @@ const mqttSaga = function* (action) { }; const connector = function* (params) { - yield takeLatest(actionsType.CONNECTING, mqttSaga); + yield take(actionsType.CONNECTING); + yield call(mqttSaga); }; export { connector }; \ No newline at end of file diff --git a/src/core/services/MqttClient.service.js b/src/core/services/MqttClient.service.js index 93581dee3..cb6ddd25b 100644 --- a/src/core/services/MqttClient.service.js +++ b/src/core/services/MqttClient.service.js @@ -47,3 +47,4 @@ const initSupplier = () => { }; export { initSupplier, getSupplier}; + diff --git a/src/core/services/MqttEventChannel.service.js b/src/core/services/MqttEventChannel.service.js index 232d30e37..c24df32cd 100644 --- a/src/core/services/MqttEventChannel.service.js +++ b/src/core/services/MqttEventChannel.service.js @@ -17,6 +17,7 @@ const supplierEventChannel = () => eventChannel( emitter => { const client = initSupplier(); const boundEventHandlers = bindActionCreators(supplierActions, emitter); + client.on(eventTypes.CONNECT, function() { boundEventHandlers.connected(); //redux log diff --git a/src/core/services/index.js b/src/core/services/index.js index ffa4240af..4803bb3d3 100644 --- a/src/core/services/index.js +++ b/src/core/services/index.js @@ -2,4 +2,3 @@ import { getSupplier, initSupplier } from './MqttClient.service'; import supplierEventChannel from './MqttEventChannel.service'; export { initSupplier, supplierEventChannel, getSupplier }; - diff --git a/src/core/store/Browser.store.js b/src/core/store/Browser.store.js index 326e50411..1b1497e93 100644 --- a/src/core/store/Browser.store.js +++ b/src/core/store/Browser.store.js @@ -1,14 +1,14 @@ import { browserStorage } from './index'; import { DEV_KEY, CLIENT} from '../configs/BrowserStorage.config'; -const genClientId = () => ( +const generateClientId = () => ( Math.random().toString(36).substring(2) + (new Date()).getTime().toString(36) ); const setupDevEntry = () => { - let devKey = browserStorage.getItem(DEV_KEY) || genClientId(); + let devKey = browserStorage.getItem(DEV_KEY) || generateClientId(); browserStorage.setItem(DEV_KEY, devKey); diff --git a/src/core/store/Configure.dev.store.js b/src/core/store/Configure.dev.store.js index 708ce6dd7..dbe49937b 100644 --- a/src/core/store/Configure.dev.store.js +++ b/src/core/store/Configure.dev.store.js @@ -21,8 +21,8 @@ const configureStore = () => { //loadingBarMiddleware({ scope: 'page' }) ]; - const composeExtenders = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; - const store = createStore(rootReducer, {}, composeExtenders( + //const composeExtenders = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; + const store = createStore(rootReducer, {}, compose( applyMiddleware(...middlewares) ) ); -- GitLab From 9f1274ef59e376fb611c22d85f5afbdad3f69529 Mon Sep 17 00:00:00 2001 From: Oleg Date: Tue, 20 Feb 2018 00:23:41 +0200 Subject: [PATCH 3/9] to merge --- src/core/services/MqttClient.service.js | 3 +-- src/core/store/Browser.store.js | 9 ++++----- src/core/store/Configure.dev.store.js | 4 ++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/core/services/MqttClient.service.js b/src/core/services/MqttClient.service.js index cb6ddd25b..ef480b83f 100644 --- a/src/core/services/MqttClient.service.js +++ b/src/core/services/MqttClient.service.js @@ -13,11 +13,11 @@ const formatPath = ({ protocol, host, port, supplier }) => { return `${ protocol }://${ host }:${ port }/${ supplier }`; }; - const getSupplier = () => client ? client : null; const setSupplier = c => client = c; const initSupplier = () => { + let config = { clientId: setupClientEntry(), password: browserStorage.getItem('token'), @@ -47,4 +47,3 @@ const initSupplier = () => { }; export { initSupplier, getSupplier}; - diff --git a/src/core/store/Browser.store.js b/src/core/store/Browser.store.js index 1b1497e93..633e85cec 100644 --- a/src/core/store/Browser.store.js +++ b/src/core/store/Browser.store.js @@ -1,11 +1,10 @@ import { browserStorage } from './index'; import { DEV_KEY, CLIENT} from '../configs/BrowserStorage.config'; -const generateClientId = () => ( - Math.random().toString(36).substring(2) - + (new Date()).getTime().toString(36) -); - +const generateClientId = () => { + return Math.random().toString(36).substring(2) + + (new Date()).getTime().toString(36); +}; const setupDevEntry = () => { let devKey = browserStorage.getItem(DEV_KEY) || generateClientId(); diff --git a/src/core/store/Configure.dev.store.js b/src/core/store/Configure.dev.store.js index dbe49937b..708ce6dd7 100644 --- a/src/core/store/Configure.dev.store.js +++ b/src/core/store/Configure.dev.store.js @@ -21,8 +21,8 @@ const configureStore = () => { //loadingBarMiddleware({ scope: 'page' }) ]; - //const composeExtenders = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; - const store = createStore(rootReducer, {}, compose( + const composeExtenders = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; + const store = createStore(rootReducer, {}, composeExtenders( applyMiddleware(...middlewares) ) ); -- GitLab From ae1668fdaf3e33fedc8ef5f494cfb3fbab75a9d0 Mon Sep 17 00:00:00 2001 From: Oleg Date: Tue, 20 Feb 2018 16:13:56 +0200 Subject: [PATCH 4/9] blabla --- .gitignore | 2 +- src/build/bundle.app.7ae4be9ce49ac7b83760.js | 72406 ++++++++++++++++ .../bundle.app.7ae4be9ce49ac7b83760.js.map | 1 + .../bundle.manifest.d6a31cdbb5b34f305a18.js | 154 + ...undle.manifest.d6a31cdbb5b34f305a18.js.map | 1 + .../bundle.vendor.cfb6574262ec7949c15e.js | 35485 ++++++++ .../bundle.vendor.cfb6574262ec7949c15e.js.map | 1 + src/build/index.html | 7 + src/build/static/image/Richard_Smith.png | Bin 0 -> 9766 bytes src/build/static/image/favicon.ico | Bin 0 -> 3182 bytes webpackConfigs/webPackServerApp.js | 24 + webpackConfigs/webpack-compiler.js | 100 + webpackConfigs/webpack.production.config.js | 101 + 13 files changed, 108281 insertions(+), 1 deletion(-) create mode 100644 src/build/bundle.app.7ae4be9ce49ac7b83760.js create mode 100644 src/build/bundle.app.7ae4be9ce49ac7b83760.js.map create mode 100644 src/build/bundle.manifest.d6a31cdbb5b34f305a18.js create mode 100644 src/build/bundle.manifest.d6a31cdbb5b34f305a18.js.map create mode 100644 src/build/bundle.vendor.cfb6574262ec7949c15e.js create mode 100644 src/build/bundle.vendor.cfb6574262ec7949c15e.js.map create mode 100644 src/build/index.html create mode 100644 src/build/static/image/Richard_Smith.png create mode 100644 src/build/static/image/favicon.ico create mode 100755 webpackConfigs/webPackServerApp.js create mode 100755 webpackConfigs/webpack-compiler.js create mode 100755 webpackConfigs/webpack.production.config.js diff --git a/.gitignore b/.gitignore index f37b21906..3fef9c087 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,7 @@ logs .editorconfig /node_modules/ -/webpackConfigs/ + /build/ /bundle/ /config/ \ No newline at end of file diff --git a/src/build/bundle.app.7ae4be9ce49ac7b83760.js b/src/build/bundle.app.7ae4be9ce49ac7b83760.js new file mode 100644 index 000000000..96fb96279 --- /dev/null +++ b/src/build/bundle.app.7ae4be9ce49ac7b83760.js @@ -0,0 +1,72406 @@ +webpackJsonp([0],{ + +/***/ "./assets/img/Richard_Smith.png": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__.p + "static/image/Richard_Smith.png"; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/array/from.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/array/from.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/map.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/map.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/number/is-nan.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/number/is-nan.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/number/min-safe-integer.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/number/min-safe-integer.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/object/assign.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/assign.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/object/create.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/create.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/object/define-property.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/define-property.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/object/get-prototype-of.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/get-prototype-of.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/object/keys.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/keys.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/object/set-prototype-of.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/set-prototype-of.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/symbol.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/symbol/index.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/core-js/symbol/iterator.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/symbol/iterator.js"), __esModule: true }; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/classCallCheck.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/createClass.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _defineProperty = __webpack_require__("./node_modules/babel-runtime/core-js/object/define-property.js"); + +var _defineProperty2 = _interopRequireDefault(_defineProperty); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + (0, _defineProperty2.default)(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/defineProperty.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _defineProperty = __webpack_require__("./node_modules/babel-runtime/core-js/object/define-property.js"); + +var _defineProperty2 = _interopRequireDefault(_defineProperty); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (obj, key, value) { + if (key in obj) { + (0, _defineProperty2.default)(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/extends.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _assign = __webpack_require__("./node_modules/babel-runtime/core-js/object/assign.js"); + +var _assign2 = _interopRequireDefault(_assign); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _assign2.default || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/inherits.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _setPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/set-prototype-of.js"); + +var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); + +var _create = __webpack_require__("./node_modules/babel-runtime/core-js/object/create.js"); + +var _create2 = _interopRequireDefault(_create); + +var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); + +var _typeof3 = _interopRequireDefault(_typeof2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); + } + + subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; +}; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = function (obj, keys) { + var target = {}; + + for (var i in obj) { + if (keys.indexOf(i) >= 0) continue; + if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; + target[i] = obj[i]; + } + + return target; +}; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/possibleConstructorReturn.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); + +var _typeof3 = _interopRequireDefault(_typeof2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; +}; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/toConsumableArray.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _from = __webpack_require__("./node_modules/babel-runtime/core-js/array/from.js"); + +var _from2 = _interopRequireDefault(_from); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } + + return arr2; + } else { + return (0, _from2.default)(arr); + } +}; + +/***/ }), + +/***/ "./node_modules/babel-runtime/helpers/typeof.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _iterator = __webpack_require__("./node_modules/babel-runtime/core-js/symbol/iterator.js"); + +var _iterator2 = _interopRequireDefault(_iterator); + +var _symbol = __webpack_require__("./node_modules/babel-runtime/core-js/symbol.js"); + +var _symbol2 = _interopRequireDefault(_symbol); + +var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { + return typeof obj === "undefined" ? "undefined" : _typeof(obj); +} : function (obj) { + return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); +}; + +/***/ }), + +/***/ "./node_modules/base64-js/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +// Support decoding URL-safe base64 strings, as Node.js does. +// See: https://en.wikipedia.org/wiki/Base64#URL_applications +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function placeHoldersCount (b64) { + var len = b64.length + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 +} + +function byteLength (b64) { + // base64 is 4/3 + up to two characters of the original data + return (b64.length * 3 / 4) - placeHoldersCount(b64) +} + +function toByteArray (b64) { + var i, l, tmp, placeHolders, arr + var len = b64.length + placeHolders = placeHoldersCount(b64) + + arr = new Arr((len * 3 / 4) - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0; i < l; i += 4) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xFF + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xFF + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = ((uint8[i] << 16) & 0xFF0000) + ((uint8[i + 1] << 8) & 0xFF00) + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3F] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3F] + output += lookup[(tmp << 2) & 0x3F] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + + +/***/ }), + +/***/ "./node_modules/bl/bl.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(Buffer) {var DuplexStream = __webpack_require__("./node_modules/readable-stream/duplex-browser.js") + , util = __webpack_require__("./node_modules/util/util.js") + + +function BufferList (callback) { + if (!(this instanceof BufferList)) + return new BufferList(callback) + + this._bufs = [] + this.length = 0 + + if (typeof callback == 'function') { + this._callback = callback + + var piper = function piper (err) { + if (this._callback) { + this._callback(err) + this._callback = null + } + }.bind(this) + + this.on('pipe', function onPipe (src) { + src.on('error', piper) + }) + this.on('unpipe', function onUnpipe (src) { + src.removeListener('error', piper) + }) + } else { + this.append(callback) + } + + DuplexStream.call(this) +} + + +util.inherits(BufferList, DuplexStream) + + +BufferList.prototype._offset = function _offset (offset) { + var tot = 0, i = 0, _t + if (offset === 0) return [ 0, 0 ] + for (; i < this._bufs.length; i++) { + _t = tot + this._bufs[i].length + if (offset < _t || i == this._bufs.length - 1) + return [ i, offset - tot ] + tot = _t + } +} + + +BufferList.prototype.append = function append (buf) { + var i = 0 + + if (Buffer.isBuffer(buf)) { + this._appendBuffer(buf); + } else if (Array.isArray(buf)) { + for (; i < buf.length; i++) + this.append(buf[i]) + } else if (buf instanceof BufferList) { + // unwrap argument into individual BufferLists + for (; i < buf._bufs.length; i++) + this.append(buf._bufs[i]) + } else if (buf != null) { + // coerce number arguments to strings, since Buffer(number) does + // uninitialized memory allocation + if (typeof buf == 'number') + buf = buf.toString() + + this._appendBuffer(new Buffer(buf)); + } + + return this +} + + +BufferList.prototype._appendBuffer = function appendBuffer (buf) { + this._bufs.push(buf) + this.length += buf.length +} + + +BufferList.prototype._write = function _write (buf, encoding, callback) { + this._appendBuffer(buf) + + if (typeof callback == 'function') + callback() +} + + +BufferList.prototype._read = function _read (size) { + if (!this.length) + return this.push(null) + + size = Math.min(size, this.length) + this.push(this.slice(0, size)) + this.consume(size) +} + + +BufferList.prototype.end = function end (chunk) { + DuplexStream.prototype.end.call(this, chunk) + + if (this._callback) { + this._callback(null, this.slice()) + this._callback = null + } +} + + +BufferList.prototype.get = function get (index) { + return this.slice(index, index + 1)[0] +} + + +BufferList.prototype.slice = function slice (start, end) { + if (typeof start == 'number' && start < 0) + start += this.length + if (typeof end == 'number' && end < 0) + end += this.length + return this.copy(null, 0, start, end) +} + + +BufferList.prototype.copy = function copy (dst, dstStart, srcStart, srcEnd) { + if (typeof srcStart != 'number' || srcStart < 0) + srcStart = 0 + if (typeof srcEnd != 'number' || srcEnd > this.length) + srcEnd = this.length + if (srcStart >= this.length) + return dst || new Buffer(0) + if (srcEnd <= 0) + return dst || new Buffer(0) + + var copy = !!dst + , off = this._offset(srcStart) + , len = srcEnd - srcStart + , bytes = len + , bufoff = (copy && dstStart) || 0 + , start = off[1] + , l + , i + + // copy/slice everything + if (srcStart === 0 && srcEnd == this.length) { + if (!copy) { // slice, but full concat if multiple buffers + return this._bufs.length === 1 + ? this._bufs[0] + : Buffer.concat(this._bufs, this.length) + } + + // copy, need to copy individual buffers + for (i = 0; i < this._bufs.length; i++) { + this._bufs[i].copy(dst, bufoff) + bufoff += this._bufs[i].length + } + + return dst + } + + // easy, cheap case where it's a subset of one of the buffers + if (bytes <= this._bufs[off[0]].length - start) { + return copy + ? this._bufs[off[0]].copy(dst, dstStart, start, start + bytes) + : this._bufs[off[0]].slice(start, start + bytes) + } + + if (!copy) // a slice, we need something to copy in to + dst = new Buffer(len) + + for (i = off[0]; i < this._bufs.length; i++) { + l = this._bufs[i].length - start + + if (bytes > l) { + this._bufs[i].copy(dst, bufoff, start) + } else { + this._bufs[i].copy(dst, bufoff, start, start + bytes) + break + } + + bufoff += l + bytes -= l + + if (start) + start = 0 + } + + return dst +} + +BufferList.prototype.shallowSlice = function shallowSlice (start, end) { + start = start || 0 + end = end || this.length + + if (start < 0) + start += this.length + if (end < 0) + end += this.length + + var startOffset = this._offset(start) + , endOffset = this._offset(end) + , buffers = this._bufs.slice(startOffset[0], endOffset[0] + 1) + + if (endOffset[1] == 0) + buffers.pop() + else + buffers[buffers.length-1] = buffers[buffers.length-1].slice(0, endOffset[1]) + + if (startOffset[1] != 0) + buffers[0] = buffers[0].slice(startOffset[1]) + + return new BufferList(buffers) +} + +BufferList.prototype.toString = function toString (encoding, start, end) { + return this.slice(start, end).toString(encoding) +} + +BufferList.prototype.consume = function consume (bytes) { + while (this._bufs.length) { + if (bytes >= this._bufs[0].length) { + bytes -= this._bufs[0].length + this.length -= this._bufs[0].length + this._bufs.shift() + } else { + this._bufs[0] = this._bufs[0].slice(bytes) + this.length -= bytes + break + } + } + return this +} + + +BufferList.prototype.duplicate = function duplicate () { + var i = 0 + , copy = new BufferList() + + for (; i < this._bufs.length; i++) + copy.append(this._bufs[i]) + + return copy +} + + +BufferList.prototype.destroy = function destroy () { + this._bufs.length = 0 + this.length = 0 + this.push(null) +} + + +;(function () { + var methods = { + 'readDoubleBE' : 8 + , 'readDoubleLE' : 8 + , 'readFloatBE' : 4 + , 'readFloatLE' : 4 + , 'readInt32BE' : 4 + , 'readInt32LE' : 4 + , 'readUInt32BE' : 4 + , 'readUInt32LE' : 4 + , 'readInt16BE' : 2 + , 'readInt16LE' : 2 + , 'readUInt16BE' : 2 + , 'readUInt16LE' : 2 + , 'readInt8' : 1 + , 'readUInt8' : 1 + } + + for (var m in methods) { + (function (m) { + BufferList.prototype[m] = function (offset) { + return this.slice(offset, offset + methods[m])[m](0) + } + }(m)) + } +}()) + + +module.exports = BufferList + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/buffer/index.js").Buffer)) + +/***/ }), + +/***/ "./node_modules/brcast/dist/brcast.es.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +function createBroadcast (initialState) { + var listeners = {}; + var id = 1; + var _state = initialState; + + function getState () { + return _state + } + + function setState (state) { + _state = state; + var keys = Object.keys(listeners); + var i = 0; + var len = keys.length; + for (; i < len; i++) { + // if a listener gets unsubscribed during setState we just skip it + if (listeners[keys[i]]) { listeners[keys[i]](state); } + } + } + + // subscribe to changes and return the subscriptionId + function subscribe (listener) { + if (typeof listener !== 'function') { + throw new Error('listener must be a function.') + } + var currentId = id; + listeners[currentId] = listener; + id += 1; + return currentId + } + + // remove subscription by removing the listener function + function unsubscribe (id) { + listeners[id] = undefined; + } + + return { getState: getState, setState: setState, subscribe: subscribe, unsubscribe: unsubscribe } +} + +/* harmony default export */ __webpack_exports__["default"] = (createBroadcast); + + +/***/ }), + +/***/ "./node_modules/buffer/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ + + + +var base64 = __webpack_require__("./node_modules/base64-js/index.js") +var ieee754 = __webpack_require__("./node_modules/ieee754/index.js") +var isArray = __webpack_require__("./node_modules/isarray/index.js") + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + +/* + * Export kMaxLength after typed array support is determined. + */ +exports.kMaxLength = kMaxLength() + +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/array/from.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.string.iterator.js"); +__webpack_require__("./node_modules/core-js/library/modules/es6.array.from.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Array.from; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/map.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.object.to-string.js"); +__webpack_require__("./node_modules/core-js/library/modules/es6.string.iterator.js"); +__webpack_require__("./node_modules/core-js/library/modules/web.dom.iterable.js"); +__webpack_require__("./node_modules/core-js/library/modules/es6.map.js"); +__webpack_require__("./node_modules/core-js/library/modules/es7.map.to-json.js"); +__webpack_require__("./node_modules/core-js/library/modules/es7.map.of.js"); +__webpack_require__("./node_modules/core-js/library/modules/es7.map.from.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Map; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/number/is-nan.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.number.is-nan.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Number.isNaN; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/number/min-safe-integer.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.number.min-safe-integer.js"); +module.exports = -0x1fffffffffffff; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/object/assign.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.object.assign.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.assign; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/object/create.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.object.create.js"); +var $Object = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object; +module.exports = function create(P, D) { + return $Object.create(P, D); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/object/define-property.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.object.define-property.js"); +var $Object = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object; +module.exports = function defineProperty(it, key, desc) { + return $Object.defineProperty(it, key, desc); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/object/get-prototype-of.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.object.get-prototype-of.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/object/keys.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.object.keys.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.keys; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/object/set-prototype-of.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.object.set-prototype-of.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/symbol/index.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.symbol.js"); +__webpack_require__("./node_modules/core-js/library/modules/es6.object.to-string.js"); +__webpack_require__("./node_modules/core-js/library/modules/es7.symbol.async-iterator.js"); +__webpack_require__("./node_modules/core-js/library/modules/es7.symbol.observable.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Symbol; + + +/***/ }), + +/***/ "./node_modules/core-js/library/fn/symbol/iterator.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.string.iterator.js"); +__webpack_require__("./node_modules/core-js/library/modules/web.dom.iterable.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_wks-ext.js").f('iterator'); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_a-function.js": +/***/ (function(module, exports) { + +module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_add-to-unscopables.js": +/***/ (function(module, exports) { + +module.exports = function () { /* empty */ }; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_an-instance.js": +/***/ (function(module, exports) { + +module.exports = function (it, Constructor, name, forbiddenField) { + if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { + throw TypeError(name + ': incorrect invocation!'); + } return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_an-object.js": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_array-from-iterable.js": +/***/ (function(module, exports, __webpack_require__) { + +var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); + +module.exports = function (iter, ITERATOR) { + var result = []; + forOf(iter, false, result.push, result, ITERATOR); + return result; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_array-includes.js": +/***/ (function(module, exports, __webpack_require__) { + +// false -> Array#indexOf +// true -> Array#includes +var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); +var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); +var toAbsoluteIndex = __webpack_require__("./node_modules/core-js/library/modules/_to-absolute-index.js"); +module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_array-methods.js": +/***/ (function(module, exports, __webpack_require__) { + +// 0 -> Array#forEach +// 1 -> Array#map +// 2 -> Array#filter +// 3 -> Array#some +// 4 -> Array#every +// 5 -> Array#find +// 6 -> Array#findIndex +var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); +var IObject = __webpack_require__("./node_modules/core-js/library/modules/_iobject.js"); +var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); +var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); +var asc = __webpack_require__("./node_modules/core-js/library/modules/_array-species-create.js"); +module.exports = function (TYPE, $create) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var create = $create || asc; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IObject(O); + var f = ctx(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var val, res; + for (;length > index; index++) if (NO_HOLES || index in self) { + val = self[index]; + res = f(val, index, O); + if (TYPE) { + if (IS_MAP) result[index] = res; // map + else if (res) switch (TYPE) { + case 3: return true; // some + case 5: return val; // find + case 6: return index; // findIndex + case 2: result.push(val); // filter + } else if (IS_EVERY) return false; // every + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_array-species-constructor.js": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +var isArray = __webpack_require__("./node_modules/core-js/library/modules/_is-array.js"); +var SPECIES = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('species'); + +module.exports = function (original) { + var C; + if (isArray(original)) { + C = original.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? Array : C; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_array-species-create.js": +/***/ (function(module, exports, __webpack_require__) { + +// 9.4.2.3 ArraySpeciesCreate(originalArray, length) +var speciesConstructor = __webpack_require__("./node_modules/core-js/library/modules/_array-species-constructor.js"); + +module.exports = function (original, length) { + return new (speciesConstructor(original))(length); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_classof.js": +/***/ (function(module, exports, __webpack_require__) { + +// getting tag from 19.1.3.6 Object.prototype.toString() +var cof = __webpack_require__("./node_modules/core-js/library/modules/_cof.js"); +var TAG = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('toStringTag'); +// ES3 wrong here +var ARG = cof(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (e) { /* empty */ } +}; + +module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_cof.js": +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_collection-strong.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; +var create = __webpack_require__("./node_modules/core-js/library/modules/_object-create.js"); +var redefineAll = __webpack_require__("./node_modules/core-js/library/modules/_redefine-all.js"); +var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); +var anInstance = __webpack_require__("./node_modules/core-js/library/modules/_an-instance.js"); +var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); +var $iterDefine = __webpack_require__("./node_modules/core-js/library/modules/_iter-define.js"); +var step = __webpack_require__("./node_modules/core-js/library/modules/_iter-step.js"); +var setSpecies = __webpack_require__("./node_modules/core-js/library/modules/_set-species.js"); +var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); +var fastKey = __webpack_require__("./node_modules/core-js/library/modules/_meta.js").fastKey; +var validate = __webpack_require__("./node_modules/core-js/library/modules/_validate-collection.js"); +var SIZE = DESCRIPTORS ? '_s' : 'size'; + +var getEntry = function (that, key) { + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return that._i[index]; + // frozen object case + for (entry = that._f; entry; entry = entry.n) { + if (entry.k == key) return entry; + } +}; + +module.exports = { + getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + that._i = create(null); // index + that._f = undefined; // first entry + that._l = undefined; // last entry + that[SIZE] = 0; // size + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear() { + for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { + entry.r = true; + if (entry.p) entry.p = entry.p.n = undefined; + delete data[entry.i]; + } + that._f = that._l = undefined; + that[SIZE] = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function (key) { + var that = validate(this, NAME); + var entry = getEntry(that, key); + if (entry) { + var next = entry.n; + var prev = entry.p; + delete that._i[entry.i]; + entry.r = true; + if (prev) prev.n = next; + if (next) next.p = prev; + if (that._f == entry) that._f = next; + if (that._l == entry) that._l = prev; + that[SIZE]--; + } return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn /* , that = undefined */) { + validate(this, NAME); + var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var entry; + while (entry = entry ? entry.n : this._f) { + f(entry.v, entry.k, this); + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key) { + return !!getEntry(validate(this, NAME), key); + } + }); + if (DESCRIPTORS) dP(C.prototype, 'size', { + get: function () { + return validate(this, NAME)[SIZE]; + } + }); + return C; + }, + def: function (that, key, value) { + var entry = getEntry(that, key); + var prev, index; + // change existing entry + if (entry) { + entry.v = value; + // create new entry + } else { + that._l = entry = { + i: index = fastKey(key, true), // <- index + k: key, // <- key + v: value, // <- value + p: prev = that._l, // <- previous entry + n: undefined, // <- next entry + r: false // <- removed + }; + if (!that._f) that._f = entry; + if (prev) prev.n = entry; + that[SIZE]++; + // add to index + if (index !== 'F') that._i[index] = entry; + } return that; + }, + getEntry: getEntry, + setStrong: function (C, NAME, IS_MAP) { + // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + $iterDefine(C, NAME, function (iterated, kind) { + this._t = validate(iterated, NAME); // target + this._k = kind; // kind + this._l = undefined; // previous + }, function () { + var that = this; + var kind = that._k; + var entry = that._l; + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + // get next entry + if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { + // or finish the iteration + that._t = undefined; + return step(1); + } + // return step by kind + if (kind == 'keys') return step(0, entry.k); + if (kind == 'values') return step(0, entry.v); + return step(0, [entry.k, entry.v]); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // add [@@species], 23.1.2.2, 23.2.2.2 + setSpecies(NAME); + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_collection-to-json.js": +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var classof = __webpack_require__("./node_modules/core-js/library/modules/_classof.js"); +var from = __webpack_require__("./node_modules/core-js/library/modules/_array-from-iterable.js"); +module.exports = function (NAME) { + return function toJSON() { + if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); + return from(this); + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_collection.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +var meta = __webpack_require__("./node_modules/core-js/library/modules/_meta.js"); +var fails = __webpack_require__("./node_modules/core-js/library/modules/_fails.js"); +var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); +var redefineAll = __webpack_require__("./node_modules/core-js/library/modules/_redefine-all.js"); +var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); +var anInstance = __webpack_require__("./node_modules/core-js/library/modules/_an-instance.js"); +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); +var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; +var each = __webpack_require__("./node_modules/core-js/library/modules/_array-methods.js")(0); +var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); + +module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + // create collection constructor + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME, '_c'); + target._c = new Base(); + if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target); + }); + each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) { + var IS_ADDER = KEY == 'add' || KEY == 'set'; + if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) { + anInstance(this, C, KEY); + if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false; + var result = this._c[KEY](a === 0 ? 0 : a, b); + return IS_ADDER ? this : result; + }); + }); + IS_WEAK || dP(C.prototype, 'size', { + get: function () { + return this._c.size; + } + }); + } + + setToStringTag(C, NAME); + + O[NAME] = C; + $export($export.G + $export.W + $export.F, O); + + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + + return C; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_core.js": +/***/ (function(module, exports) { + +var core = module.exports = { version: '2.5.3' }; +if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_create-property.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $defineProperty = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); +var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); + +module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value)); + else object[index] = value; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_ctx.js": +/***/ (function(module, exports, __webpack_require__) { + +// optional / simple context binding +var aFunction = __webpack_require__("./node_modules/core-js/library/modules/_a-function.js"); +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_defined.js": +/***/ (function(module, exports) { + +// 7.2.1 RequireObjectCoercible(argument) +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_descriptors.js": +/***/ (function(module, exports, __webpack_require__) { + +// Thank's IE8 for his funny defineProperty +module.exports = !__webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { + return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_dom-create.js": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +var document = __webpack_require__("./node_modules/core-js/library/modules/_global.js").document; +// typeof document.createElement is 'object' in old IE +var is = isObject(document) && isObject(document.createElement); +module.exports = function (it) { + return is ? document.createElement(it) : {}; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_enum-bug-keys.js": +/***/ (function(module, exports) { + +// IE 8- don't enum bug keys +module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' +).split(','); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_enum-keys.js": +/***/ (function(module, exports, __webpack_require__) { + +// all enumerable object keys, includes symbols +var getKeys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); +var gOPS = __webpack_require__("./node_modules/core-js/library/modules/_object-gops.js"); +var pIE = __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js"); +module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); + } return result; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_export.js": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); +var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); +var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); +var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); +var PROTOTYPE = 'prototype'; + +var $export = function (type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var IS_WRAP = type & $export.W; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE]; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; + var key, own, out; + if (IS_GLOBAL) source = name; + for (key in source) { + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + if (own && key in exports) continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function (C) { + var F = function (a, b, c) { + if (this instanceof C) { + switch (arguments.length) { + case 0: return new C(); + case 1: return new C(a); + case 2: return new C(a, b); + } return new C(a, b, c); + } return C.apply(this, arguments); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% + if (IS_PROTO) { + (exports.virtual || (exports.virtual = {}))[key] = out; + // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% + if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); + } + } +}; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +$export.U = 64; // safe +$export.R = 128; // real proto method for `library` +module.exports = $export; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_fails.js": +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_for-of.js": +/***/ (function(module, exports, __webpack_require__) { + +var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); +var call = __webpack_require__("./node_modules/core-js/library/modules/_iter-call.js"); +var isArrayIter = __webpack_require__("./node_modules/core-js/library/modules/_is-array-iter.js"); +var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); +var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); +var getIterFn = __webpack_require__("./node_modules/core-js/library/modules/core.get-iterator-method.js"); +var BREAK = {}; +var RETURN = {}; +var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { + var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); + var f = ctx(fn, that, entries ? 2 : 1); + var index = 0; + var length, step, iterator, result; + if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); + // fast case for arrays with default iterator + if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { + result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + if (result === BREAK || result === RETURN) return result; + } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { + result = call(iterator, f, step.value, entries); + if (result === BREAK || result === RETURN) return result; + } +}; +exports.BREAK = BREAK; +exports.RETURN = RETURN; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_global.js": +/***/ (function(module, exports) { + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self + // eslint-disable-next-line no-new-func + : Function('return this')(); +if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_has.js": +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_hide.js": +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); +var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_html.js": +/***/ (function(module, exports, __webpack_require__) { + +var document = __webpack_require__("./node_modules/core-js/library/modules/_global.js").document; +module.exports = document && document.documentElement; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_ie8-dom-define.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = !__webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { + return Object.defineProperty(__webpack_require__("./node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_iobject.js": +/***/ (function(module, exports, __webpack_require__) { + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var cof = __webpack_require__("./node_modules/core-js/library/modules/_cof.js"); +// eslint-disable-next-line no-prototype-builtins +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_is-array-iter.js": +/***/ (function(module, exports, __webpack_require__) { + +// check on default Array iterator +var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); +var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); +var ArrayProto = Array.prototype; + +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_is-array.js": +/***/ (function(module, exports, __webpack_require__) { + +// 7.2.2 IsArray(argument) +var cof = __webpack_require__("./node_modules/core-js/library/modules/_cof.js"); +module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_is-object.js": +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_iter-call.js": +/***/ (function(module, exports, __webpack_require__) { + +// call something on iterator step with safe closing on error +var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); +module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_iter-create.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var create = __webpack_require__("./node_modules/core-js/library/modules/_object-create.js"); +var descriptor = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); +var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); +var IteratorPrototype = {}; + +// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() +__webpack_require__("./node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; }); + +module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_iter-define.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var LIBRARY = __webpack_require__("./node_modules/core-js/library/modules/_library.js"); +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +var redefine = __webpack_require__("./node_modules/core-js/library/modules/_redefine.js"); +var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); +var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); +var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); +var $iterCreate = __webpack_require__("./node_modules/core-js/library/modules/_iter-create.js"); +var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); +var getPrototypeOf = __webpack_require__("./node_modules/core-js/library/modules/_object-gpo.js"); +var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); +var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` +var FF_ITERATOR = '@@iterator'; +var KEYS = 'keys'; +var VALUES = 'values'; + +var returnThis = function () { return this; }; + +module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + var getMethod = function (kind) { + if (!BUGGY && kind in proto) return proto[kind]; + switch (kind) { + case KEYS: return function keys() { return new Constructor(this, kind); }; + case VALUES: return function values() { return new Constructor(this, kind); }; + } return function entries() { return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = (!BUGGY && $native) || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; + // Fix native + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + $default = function values() { return $native.call(this); }; + } + // Define iterator + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_iter-detect.js": +/***/ (function(module, exports, __webpack_require__) { + +var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); +var SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + riter['return'] = function () { SAFE_CLOSING = true; }; + // eslint-disable-next-line no-throw-literal + Array.from(riter, function () { throw 2; }); +} catch (e) { /* empty */ } + +module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + try { + var arr = [7]; + var iter = arr[ITERATOR](); + iter.next = function () { return { done: safe = true }; }; + arr[ITERATOR] = function () { return iter; }; + exec(arr); + } catch (e) { /* empty */ } + return safe; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_iter-step.js": +/***/ (function(module, exports) { + +module.exports = function (done, value) { + return { value: value, done: !!done }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_iterators.js": +/***/ (function(module, exports) { + +module.exports = {}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_library.js": +/***/ (function(module, exports) { + +module.exports = true; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_meta.js": +/***/ (function(module, exports, __webpack_require__) { + +var META = __webpack_require__("./node_modules/core-js/library/modules/_uid.js")('meta'); +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); +var setDesc = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; +var id = 0; +var isExtensible = Object.isExtensible || function () { + return true; +}; +var FREEZE = !__webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { + return isExtensible(Object.preventExtensions({})); +}); +var setMeta = function (it) { + setDesc(it, META, { value: { + i: 'O' + ++id, // object ID + w: {} // weak collections IDs + } }); +}; +var fastKey = function (it, create) { + // return primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMeta(it); + // return object ID + } return it[META].i; +}; +var getWeak = function (it, create) { + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMeta(it); + // return hash weak collections IDs + } return it[META].w; +}; +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; +}; +var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-assign.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 19.1.2.1 Object.assign(target, source, ...) +var getKeys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); +var gOPS = __webpack_require__("./node_modules/core-js/library/modules/_object-gops.js"); +var pIE = __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js"); +var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); +var IObject = __webpack_require__("./node_modules/core-js/library/modules/_iobject.js"); +var $assign = Object.assign; + +// should work with symbols and should have deterministic property order (V8 bug) +module.exports = !$assign || __webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { + var A = {}; + var B = {}; + // eslint-disable-next-line no-undef + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; + } return T; +} : $assign; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-create.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) +var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); +var dPs = __webpack_require__("./node_modules/core-js/library/modules/_object-dps.js"); +var enumBugKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-bug-keys.js"); +var IE_PROTO = __webpack_require__("./node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); +var Empty = function () { /* empty */ }; +var PROTOTYPE = 'prototype'; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var createDict = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__("./node_modules/core-js/library/modules/_dom-create.js")('iframe'); + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + __webpack_require__("./node_modules/core-js/library/modules/_html.js").appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; + return createDict(); +}; + +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : dPs(result, Properties); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-dp.js": +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); +var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/library/modules/_ie8-dom-define.js"); +var toPrimitive = __webpack_require__("./node_modules/core-js/library/modules/_to-primitive.js"); +var dP = Object.defineProperty; + +exports.f = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-dps.js": +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); +var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); +var getKeys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); + +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + while (length > i) dP.f(O, P = keys[i++], Properties[P]); + return O; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-gopd.js": +/***/ (function(module, exports, __webpack_require__) { + +var pIE = __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js"); +var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); +var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); +var toPrimitive = __webpack_require__("./node_modules/core-js/library/modules/_to-primitive.js"); +var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); +var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/library/modules/_ie8-dom-define.js"); +var gOPD = Object.getOwnPropertyDescriptor; + +exports.f = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) { /* empty */ } + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-gopn-ext.js": +/***/ (function(module, exports, __webpack_require__) { + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); +var gOPN = __webpack_require__("./node_modules/core-js/library/modules/_object-gopn.js").f; +var toString = {}.toString; + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } +}; + +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-gopn.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) +var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys-internal.js"); +var hiddenKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype'); + +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-gops.js": +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-gpo.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) +var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); +var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); +var IE_PROTO = __webpack_require__("./node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); +var ObjectProto = Object.prototype; + +module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-keys-internal.js": +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); +var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); +var arrayIndexOf = __webpack_require__("./node_modules/core-js/library/modules/_array-includes.js")(false); +var IE_PROTO = __webpack_require__("./node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); + +module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + return result; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-keys.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 / 15.2.3.14 Object.keys(O) +var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys-internal.js"); +var enumBugKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-bug-keys.js"); + +module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-pie.js": +/***/ (function(module, exports) { + +exports.f = {}.propertyIsEnumerable; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_object-sap.js": +/***/ (function(module, exports, __webpack_require__) { + +// most Object methods by ES6 should accept primitives +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); +var fails = __webpack_require__("./node_modules/core-js/library/modules/_fails.js"); +module.exports = function (KEY, exec) { + var fn = (core.Object || {})[KEY] || Object[KEY]; + var exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_property-desc.js": +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_redefine-all.js": +/***/ (function(module, exports, __webpack_require__) { + +var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); +module.exports = function (target, src, safe) { + for (var key in src) { + if (safe && target[key]) target[key] = src[key]; + else hide(target, key, src[key]); + } return target; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_redefine.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_set-collection-from.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/proposal-setmap-offrom/ +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +var aFunction = __webpack_require__("./node_modules/core-js/library/modules/_a-function.js"); +var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); +var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + return new this(A); + } }); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_set-collection-of.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/proposal-setmap-offrom/ +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { of: function of() { + var length = arguments.length; + var A = new Array(length); + while (length--) A[length] = arguments[length]; + return new this(A); + } }); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_set-proto.js": +/***/ (function(module, exports, __webpack_require__) { + +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); +var check = function (O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); +}; +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function (test, buggy, set) { + try { + set = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__("./node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { buggy = true; } + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_set-species.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); +var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); +var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); +var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); +var SPECIES = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('species'); + +module.exports = function (KEY) { + var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function () { return this; } + }); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_set-to-string-tag.js": +/***/ (function(module, exports, __webpack_require__) { + +var def = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; +var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); +var TAG = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('toStringTag'); + +module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_shared-key.js": +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__("./node_modules/core-js/library/modules/_shared.js")('keys'); +var uid = __webpack_require__("./node_modules/core-js/library/modules/_uid.js"); +module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_shared.js": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || (global[SHARED] = {}); +module.exports = function (key) { + return store[key] || (store[key] = {}); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_string-at.js": +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__("./node_modules/core-js/library/modules/_to-integer.js"); +var defined = __webpack_require__("./node_modules/core-js/library/modules/_defined.js"); +// true -> String#at +// false -> String#codePointAt +module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_to-absolute-index.js": +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__("./node_modules/core-js/library/modules/_to-integer.js"); +var max = Math.max; +var min = Math.min; +module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_to-integer.js": +/***/ (function(module, exports) { + +// 7.1.4 ToInteger +var ceil = Math.ceil; +var floor = Math.floor; +module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_to-iobject.js": +/***/ (function(module, exports, __webpack_require__) { + +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = __webpack_require__("./node_modules/core-js/library/modules/_iobject.js"); +var defined = __webpack_require__("./node_modules/core-js/library/modules/_defined.js"); +module.exports = function (it) { + return IObject(defined(it)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_to-length.js": +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.15 ToLength +var toInteger = __webpack_require__("./node_modules/core-js/library/modules/_to-integer.js"); +var min = Math.min; +module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_to-object.js": +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.13 ToObject(argument) +var defined = __webpack_require__("./node_modules/core-js/library/modules/_defined.js"); +module.exports = function (it) { + return Object(defined(it)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_to-primitive.js": +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.1 ToPrimitive(input [, PreferredType]) +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_uid.js": +/***/ (function(module, exports) { + +var id = 0; +var px = Math.random(); +module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_validate-collection.js": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +module.exports = function (it, TYPE) { + if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); + return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_wks-define.js": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); +var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); +var LIBRARY = __webpack_require__("./node_modules/core-js/library/modules/_library.js"); +var wksExt = __webpack_require__("./node_modules/core-js/library/modules/_wks-ext.js"); +var defineProperty = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; +module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_wks-ext.js": +/***/ (function(module, exports, __webpack_require__) { + +exports.f = __webpack_require__("./node_modules/core-js/library/modules/_wks.js"); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/_wks.js": +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__("./node_modules/core-js/library/modules/_shared.js")('wks'); +var uid = __webpack_require__("./node_modules/core-js/library/modules/_uid.js"); +var Symbol = __webpack_require__("./node_modules/core-js/library/modules/_global.js").Symbol; +var USE_SYMBOL = typeof Symbol == 'function'; + +var $exports = module.exports = function (name) { + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/core.get-iterator-method.js": +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__("./node_modules/core-js/library/modules/_classof.js"); +var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); +var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.array.from.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); +var call = __webpack_require__("./node_modules/core-js/library/modules/_iter-call.js"); +var isArrayIter = __webpack_require__("./node_modules/core-js/library/modules/_is-array-iter.js"); +var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); +var createProperty = __webpack_require__("./node_modules/core-js/library/modules/_create-property.js"); +var getIterFn = __webpack_require__("./node_modules/core-js/library/modules/core.get-iterator-method.js"); + +$export($export.S + $export.F * !__webpack_require__("./node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', { + // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) + from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); + // if object isn't iterable or it's array with default iterator - use simple case + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + result.length = index; + return result; + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.array.iterator.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var addToUnscopables = __webpack_require__("./node_modules/core-js/library/modules/_add-to-unscopables.js"); +var step = __webpack_require__("./node_modules/core-js/library/modules/_iter-step.js"); +var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); +var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); + +// 22.1.3.4 Array.prototype.entries() +// 22.1.3.13 Array.prototype.keys() +// 22.1.3.29 Array.prototype.values() +// 22.1.3.30 Array.prototype[@@iterator]() +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind +// 22.1.5.2.1 %ArrayIteratorPrototype%.next() +}, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) +Iterators.Arguments = Iterators.Array; + +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.map.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var strong = __webpack_require__("./node_modules/core-js/library/modules/_collection-strong.js"); +var validate = __webpack_require__("./node_modules/core-js/library/modules/_validate-collection.js"); +var MAP = 'Map'; + +// 23.1 Map Objects +module.exports = __webpack_require__("./node_modules/core-js/library/modules/_collection.js")(MAP, function (get) { + return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key) { + var entry = strong.getEntry(validate(this, MAP), key); + return entry && entry.v; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value) { + return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); + } +}, strong, true); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.number.is-nan.js": +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.4 Number.isNaN(number) +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); + +$export($export.S, 'Number', { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare + return number != number; + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.number.min-safe-integer.js": +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.10 Number.MIN_SAFE_INTEGER +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); + +$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.object.assign.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.1 Object.assign(target, source) +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); + +$export($export.S + $export.F, 'Object', { assign: __webpack_require__("./node_modules/core-js/library/modules/_object-assign.js") }); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.object.create.js": +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) +$export($export.S, 'Object', { create: __webpack_require__("./node_modules/core-js/library/modules/_object-create.js") }); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.object.define-property.js": +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) +$export($export.S + $export.F * !__webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f }); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.object.get-prototype-of.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 Object.getPrototypeOf(O) +var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); +var $getPrototypeOf = __webpack_require__("./node_modules/core-js/library/modules/_object-gpo.js"); + +__webpack_require__("./node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () { + return function getPrototypeOf(it) { + return $getPrototypeOf(toObject(it)); + }; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.object.keys.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 Object.keys(O) +var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); +var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); + +__webpack_require__("./node_modules/core-js/library/modules/_object-sap.js")('keys', function () { + return function keys(it) { + return $keys(toObject(it)); + }; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.object.set-prototype-of.js": +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.19 Object.setPrototypeOf(O, proto) +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +$export($export.S, 'Object', { setPrototypeOf: __webpack_require__("./node_modules/core-js/library/modules/_set-proto.js").set }); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.object.to-string.js": +/***/ (function(module, exports) { + + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.string.iterator.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $at = __webpack_require__("./node_modules/core-js/library/modules/_string-at.js")(true); + +// 21.1.3.27 String.prototype[@@iterator]() +__webpack_require__("./node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) { + this._t = String(iterated); // target + this._i = 0; // next index +// 21.1.5.2.1 %StringIteratorPrototype%.next() +}, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { value: undefined, done: true }; + point = $at(O, index); + this._i += point.length; + return { value: point, done: false }; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es6.symbol.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// ECMAScript 6 symbols shim +var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); +var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); +var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); +var redefine = __webpack_require__("./node_modules/core-js/library/modules/_redefine.js"); +var META = __webpack_require__("./node_modules/core-js/library/modules/_meta.js").KEY; +var $fails = __webpack_require__("./node_modules/core-js/library/modules/_fails.js"); +var shared = __webpack_require__("./node_modules/core-js/library/modules/_shared.js"); +var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); +var uid = __webpack_require__("./node_modules/core-js/library/modules/_uid.js"); +var wks = __webpack_require__("./node_modules/core-js/library/modules/_wks.js"); +var wksExt = __webpack_require__("./node_modules/core-js/library/modules/_wks-ext.js"); +var wksDefine = __webpack_require__("./node_modules/core-js/library/modules/_wks-define.js"); +var enumKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-keys.js"); +var isArray = __webpack_require__("./node_modules/core-js/library/modules/_is-array.js"); +var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); +var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); +var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); +var toPrimitive = __webpack_require__("./node_modules/core-js/library/modules/_to-primitive.js"); +var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); +var _create = __webpack_require__("./node_modules/core-js/library/modules/_object-create.js"); +var gOPNExt = __webpack_require__("./node_modules/core-js/library/modules/_object-gopn-ext.js"); +var $GOPD = __webpack_require__("./node_modules/core-js/library/modules/_object-gopd.js"); +var $DP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); +var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); +var gOPD = $GOPD.f; +var dP = $DP.f; +var gOPN = gOPNExt.f; +var $Symbol = global.Symbol; +var $JSON = global.JSON; +var _stringify = $JSON && $JSON.stringify; +var PROTOTYPE = 'prototype'; +var HIDDEN = wks('_hidden'); +var TO_PRIMITIVE = wks('toPrimitive'); +var isEnum = {}.propertyIsEnumerable; +var SymbolRegistry = shared('symbol-registry'); +var AllSymbols = shared('symbols'); +var OPSymbols = shared('op-symbols'); +var ObjectProto = Object[PROTOTYPE]; +var USE_NATIVE = typeof $Symbol == 'function'; +var QObject = global.QObject; +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function () { return dP(this, 'a', { value: 7 }).a; } + })).a != 7; +}) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); +} : dP; + +var wrap = function (tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + sym._k = tag; + return sym; +}; + +var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + return it instanceof $Symbol; +}; + +var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { enumerable: createDesc(0, false) }); + } return setSymbolDesc(it, key, D); + } return dP(it, key, D); +}; +var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + while (l > i) $defineProperty(it, key = keys[i++], P[key]); + return it; +}; +var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); +}; +var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; +}; +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; +}; +var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } return result; +}; +var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } return result; +}; + +// 19.4.1.1 Symbol([description]) +if (!USE_NATIVE) { + $Symbol = function Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + var $set = function (value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); + return wrap(tag); + }; + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__("./node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable; + __webpack_require__("./node_modules/core-js/library/modules/_object-gops.js").f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__webpack_require__("./node_modules/core-js/library/modules/_library.js")) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); + +for (var es6Symbols = ( + // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' +).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); + +for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); + +$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function (key) { + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; + }, + useSetter: function () { setter = true; }, + useSimple: function () { setter = false; } +}); + +$export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols +}); + +// 24.3.2 JSON.stringify(value [, replacer [, space]]) +$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; +})), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + while (arguments.length > i) args.push(arguments[i++]); + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } +}); + +// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) +$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__("./node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); +// 19.4.3.5 Symbol.prototype[@@toStringTag] +setToStringTag($Symbol, 'Symbol'); +// 20.2.1.9 Math[@@toStringTag] +setToStringTag(Math, 'Math', true); +// 24.3.3 JSON[@@toStringTag] +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es7.map.from.js": +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from +__webpack_require__("./node_modules/core-js/library/modules/_set-collection-from.js")('Map'); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es7.map.of.js": +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of +__webpack_require__("./node_modules/core-js/library/modules/_set-collection-of.js")('Map'); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es7.map.to-json.js": +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); + +$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__("./node_modules/core-js/library/modules/_collection-to-json.js")('Map') }); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es7.symbol.async-iterator.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/_wks-define.js")('asyncIterator'); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/es7.symbol.observable.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/_wks-define.js")('observable'); + + +/***/ }), + +/***/ "./node_modules/core-js/library/modules/web.dom.iterable.js": +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__("./node_modules/core-js/library/modules/es6.array.iterator.js"); +var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); +var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); +var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); +var TO_STRING_TAG = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('toStringTag'); + +var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + + 'TextTrackList,TouchList').split(','); + +for (var i = 0; i < DOMIterables.length; i++) { + var NAME = DOMIterables[i]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = Iterators.Array; +} + + +/***/ }), + +/***/ "./node_modules/core-util-is/lib/util.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/buffer/index.js").Buffer)) + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/camelize.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = camelize; +var regExp = /[-\s]+(.)?/g; + +/** + * Convert dash separated strings to camel cased. + * + * @param {String} str + * @return {String} + */ +function camelize(str) { + return str.replace(regExp, toUpper); +} + +function toUpper(match, c) { + return c ? c.toUpperCase() : ''; +} + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.supportedValue = exports.supportedProperty = exports.prefix = undefined; + +var _prefix = __webpack_require__("./node_modules/css-vendor/lib/prefix.js"); + +var _prefix2 = _interopRequireDefault(_prefix); + +var _supportedProperty = __webpack_require__("./node_modules/css-vendor/lib/supported-property.js"); + +var _supportedProperty2 = _interopRequireDefault(_supportedProperty); + +var _supportedValue = __webpack_require__("./node_modules/css-vendor/lib/supported-value.js"); + +var _supportedValue2 = _interopRequireDefault(_supportedValue); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +exports['default'] = { + prefix: _prefix2['default'], + supportedProperty: _supportedProperty2['default'], + supportedValue: _supportedValue2['default'] +}; /** + * CSS Vendor prefix detection and property feature testing. + * + * @copyright Oleg Slobodskoi 2015 + * @website https://github.com/jsstyles/css-vendor + * @license MIT + */ + +exports.prefix = _prefix2['default']; +exports.supportedProperty = _supportedProperty2['default']; +exports.supportedValue = _supportedValue2['default']; + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/prefix.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); + +var _isInBrowser2 = _interopRequireDefault(_isInBrowser); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var js = ''; /** + * Export javascript style and css style vendor prefixes. + * Based on "transform" support test. + */ + +var css = ''; + +// We should not do anything if required serverside. +if (_isInBrowser2['default']) { + // Order matters. We need to check Webkit the last one because + // other vendors use to add Webkit prefixes to some properties + var jsCssMap = { + Moz: '-moz-', + // IE did it wrong again ... + ms: '-ms-', + O: '-o-', + Webkit: '-webkit-' + }; + var style = document.createElement('p').style; + var testProp = 'Transform'; + + for (var key in jsCssMap) { + if (key + testProp in style) { + js = key; + css = jsCssMap[key]; + break; + } + } +} + +/** + * Vendor prefix string for the current browser. + * + * @type {{js: String, css: String}} + * @api public + */ +exports['default'] = { js: js, css: css }; + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/supported-property.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = supportedProperty; + +var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); + +var _isInBrowser2 = _interopRequireDefault(_isInBrowser); + +var _prefix = __webpack_require__("./node_modules/css-vendor/lib/prefix.js"); + +var _prefix2 = _interopRequireDefault(_prefix); + +var _camelize = __webpack_require__("./node_modules/css-vendor/lib/camelize.js"); + +var _camelize2 = _interopRequireDefault(_camelize); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var el = void 0; +var cache = {}; + +if (_isInBrowser2['default']) { + el = document.createElement('p'); + + /** + * We test every property on vendor prefix requirement. + * Once tested, result is cached. It gives us up to 70% perf boost. + * http://jsperf.com/element-style-object-access-vs-plain-object + * + * Prefill cache with known css properties to reduce amount of + * properties we need to feature test at runtime. + * http://davidwalsh.name/vendor-prefix + */ + var computed = window.getComputedStyle(document.documentElement, ''); + for (var key in computed) { + if (!isNaN(key)) cache[computed[key]] = computed[key]; + } +} + +/** + * Test if a property is supported, returns supported property with vendor + * prefix if required. Returns `false` if not supported. + * + * @param {String} prop dash separated + * @return {String|Boolean} + * @api public + */ +function supportedProperty(prop) { + // For server-side rendering. + if (!el) return prop; + + // We have not tested this prop yet, lets do the test. + if (cache[prop] != null) return cache[prop]; + + // Camelization is required because we can't test using + // css syntax for e.g. in FF. + // Test if property is supported as it is. + if ((0, _camelize2['default'])(prop) in el.style) { + cache[prop] = prop; + } + // Test if property is supported with vendor prefix. + else if (_prefix2['default'].js + (0, _camelize2['default'])('-' + prop) in el.style) { + cache[prop] = _prefix2['default'].css + prop; + } else { + cache[prop] = false; + } + + return cache[prop]; +} + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/supported-value.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = supportedValue; + +var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); + +var _isInBrowser2 = _interopRequireDefault(_isInBrowser); + +var _prefix = __webpack_require__("./node_modules/css-vendor/lib/prefix.js"); + +var _prefix2 = _interopRequireDefault(_prefix); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var cache = {}; +var el = void 0; + +if (_isInBrowser2['default']) el = document.createElement('p'); + +/** + * Returns prefixed value if needed. Returns `false` if value is not supported. + * + * @param {String} property + * @param {String} value + * @return {String|Boolean} + * @api public + */ +function supportedValue(property, value) { + // For server-side rendering. + if (!el) return value; + + // It is a string or a number as a string like '1'. + // We want only prefixable values here. + if (typeof value !== 'string' || !isNaN(parseInt(value, 10))) return value; + + var cacheKey = property + value; + + if (cache[cacheKey] != null) return cache[cacheKey]; + + // IE can even throw an error in some cases, for e.g. style.content = 'bar' + try { + // Test value as it is. + el.style[property] = value; + } catch (err) { + cache[cacheKey] = false; + return false; + } + + // Value is supported as it is. + if (el.style[property] !== '') { + cache[cacheKey] = value; + } else { + // Test value with vendor prefix. + value = _prefix2['default'].css + value; + + // Hardcode test to convert "flex" to "-ms-flexbox" for IE10. + if (value === '-ms-flex') value = '-ms-flexbox'; + + el.style[property] = value; + + // Value is supported with vendor prefix. + if (el.style[property] !== '') cache[cacheKey] = value; + } + + if (!cache[cacheKey]) cache[cacheKey] = false; + + // Reset style value. + el.style[property] = ''; + + return cache[cacheKey]; +} + +/***/ }), + +/***/ "./node_modules/deepmerge/dist/es.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +var isMergeableObject = function isMergeableObject(value) { + return isNonNullObject(value) + && !isSpecial(value) +}; + +function isNonNullObject(value) { + return !!value && typeof value === 'object' +} + +function isSpecial(value) { + var stringValue = Object.prototype.toString.call(value); + + return stringValue === '[object RegExp]' + || stringValue === '[object Date]' + || isReactElement(value) +} + +// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 +var canUseSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; + +function isReactElement(value) { + return value.$$typeof === REACT_ELEMENT_TYPE +} + +function emptyTarget(val) { + return Array.isArray(val) ? [] : {} +} + +function cloneUnlessOtherwiseSpecified(value, optionsArgument) { + var clone = !optionsArgument || optionsArgument.clone !== false; + + return (clone && isMergeableObject(value)) + ? deepmerge(emptyTarget(value), value, optionsArgument) + : value +} + +function defaultArrayMerge(target, source, optionsArgument) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, optionsArgument) + }) +} + +function mergeObject(target, source, optionsArgument) { + var destination = {}; + if (isMergeableObject(target)) { + Object.keys(target).forEach(function(key) { + destination[key] = cloneUnlessOtherwiseSpecified(target[key], optionsArgument); + }); + } + Object.keys(source).forEach(function(key) { + if (!isMergeableObject(source[key]) || !target[key]) { + destination[key] = cloneUnlessOtherwiseSpecified(source[key], optionsArgument); + } else { + destination[key] = deepmerge(target[key], source[key], optionsArgument); + } + }); + return destination +} + +function deepmerge(target, source, optionsArgument) { + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var options = optionsArgument || { arrayMerge: defaultArrayMerge }; + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, optionsArgument) + } else if (sourceIsArray) { + var arrayMerge = options.arrayMerge || defaultArrayMerge; + return arrayMerge(target, source, optionsArgument) + } else { + return mergeObject(target, source, optionsArgument) + } +} + +deepmerge.all = function deepmergeAll(array, optionsArgument) { + if (!Array.isArray(array)) { + throw new Error('first argument should be an array') + } + + return array.reduce(function(prev, next) { + return deepmerge(prev, next, optionsArgument) + }, {}) +}; + +var deepmerge_1 = deepmerge; + +/* harmony default export */ __webpack_exports__["default"] = (deepmerge_1); + + +/***/ }), + +/***/ "./node_modules/dom-helpers/activeElement.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = activeElement; + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function activeElement() { + var doc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _ownerDocument2.default)(); + + try { + return doc.activeElement; + } catch (e) {/* ie throws if no active element */} +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/class/addClass.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = addClass; + +var _hasClass = __webpack_require__("./node_modules/dom-helpers/class/hasClass.js"); + +var _hasClass2 = _interopRequireDefault(_hasClass); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function addClass(element, className) { + if (element.classList) element.classList.add(className);else if (!(0, _hasClass2.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className); +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/class/hasClass.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = hasClass; +function hasClass(element, className) { + if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1; +} +module.exports = exports["default"]; + +/***/ }), + +/***/ "./node_modules/dom-helpers/class/removeClass.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function replaceClassName(origClass, classToRemove) { + return origClass.replace(new RegExp('(^|\\s)' + classToRemove + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, ''); +} + +module.exports = function removeClass(element, className) { + if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className)); +}; + +/***/ }), + +/***/ "./node_modules/dom-helpers/ownerDocument.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = ownerDocument; +function ownerDocument(node) { + return node && node.ownerDocument || document; +} +module.exports = exports["default"]; + +/***/ }), + +/***/ "./node_modules/dom-helpers/ownerWindow.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = ownerWindow; + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function ownerWindow(node) { + var doc = (0, _ownerDocument2.default)(node); + return doc && doc.defaultView || doc.parentWindow; +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/query/contains.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); + +var _inDOM2 = _interopRequireDefault(_inDOM); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function () { + // HTML DOM and SVG DOM may have different support levels, + // so we need to check on context instead of a document root element. + return _inDOM2.default ? function (context, node) { + if (context.contains) { + return context.contains(node); + } else if (context.compareDocumentPosition) { + return context === node || !!(context.compareDocumentPosition(node) & 16); + } else { + return fallback(context, node); + } + } : fallback; +}(); + +function fallback(context, node) { + if (node) do { + if (node === context) return true; + } while (node = node.parentNode); + + return false; +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/query/isWindow.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = getWindow; +function getWindow(node) { + return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; +} +module.exports = exports["default"]; + +/***/ }), + +/***/ "./node_modules/dom-helpers/style/getComputedStyle.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _getComputedStyle; + +var _camelizeStyle = __webpack_require__("./node_modules/dom-helpers/util/camelizeStyle.js"); + +var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var rposition = /^(top|right|bottom|left)$/; +var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i; + +function _getComputedStyle(node) { + if (!node) throw new TypeError('No Element passed to `getComputedStyle()`'); + var doc = node.ownerDocument; + + return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : { + //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72 + getPropertyValue: function getPropertyValue(prop) { + var style = node.style; + + prop = (0, _camelizeStyle2.default)(prop); + + if (prop == 'float') prop = 'styleFloat'; + + var current = node.currentStyle[prop] || null; + + if (current == null && style && style[prop]) current = style[prop]; + + if (rnumnonpx.test(current) && !rposition.test(prop)) { + // Remember the original values + var left = style.left; + var runStyle = node.runtimeStyle; + var rsLeft = runStyle && runStyle.left; + + // Put in the new values to get a computed value out + if (rsLeft) runStyle.left = node.currentStyle.left; + + style.left = prop === 'fontSize' ? '1em' : current; + current = style.pixelLeft + 'px'; + + // Revert the changed values + style.left = left; + if (rsLeft) runStyle.left = rsLeft; + } + + return current; + } + }; +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/style/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = style; + +var _camelizeStyle = __webpack_require__("./node_modules/dom-helpers/util/camelizeStyle.js"); + +var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle); + +var _hyphenateStyle = __webpack_require__("./node_modules/dom-helpers/util/hyphenateStyle.js"); + +var _hyphenateStyle2 = _interopRequireDefault(_hyphenateStyle); + +var _getComputedStyle2 = __webpack_require__("./node_modules/dom-helpers/style/getComputedStyle.js"); + +var _getComputedStyle3 = _interopRequireDefault(_getComputedStyle2); + +var _removeStyle = __webpack_require__("./node_modules/dom-helpers/style/removeStyle.js"); + +var _removeStyle2 = _interopRequireDefault(_removeStyle); + +var _properties = __webpack_require__("./node_modules/dom-helpers/transition/properties.js"); + +var _isTransform = __webpack_require__("./node_modules/dom-helpers/transition/isTransform.js"); + +var _isTransform2 = _interopRequireDefault(_isTransform); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function style(node, property, value) { + var css = ''; + var transforms = ''; + var props = property; + + if (typeof property === 'string') { + if (value === undefined) { + return node.style[(0, _camelizeStyle2.default)(property)] || (0, _getComputedStyle3.default)(node).getPropertyValue((0, _hyphenateStyle2.default)(property)); + } else { + (props = {})[property] = value; + } + } + + Object.keys(props).forEach(function (key) { + var value = props[key]; + if (!value && value !== 0) { + (0, _removeStyle2.default)(node, (0, _hyphenateStyle2.default)(key)); + } else if ((0, _isTransform2.default)(key)) { + transforms += key + '(' + value + ') '; + } else { + css += (0, _hyphenateStyle2.default)(key) + ': ' + value + ';'; + } + }); + + if (transforms) { + css += _properties.transform + ': ' + transforms + ';'; + } + + node.style.cssText += ';' + css; +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/style/removeStyle.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = removeStyle; +function removeStyle(node, key) { + return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key); +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/transition/isTransform.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = isTransform; +var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i; + +function isTransform(property) { + return !!(property && supportedTransforms.test(property)); +} +module.exports = exports["default"]; + +/***/ }), + +/***/ "./node_modules/dom-helpers/transition/properties.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = undefined; + +var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); + +var _inDOM2 = _interopRequireDefault(_inDOM); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var transform = 'transform'; +var prefix = void 0, + transitionEnd = void 0, + animationEnd = void 0; +var transitionProperty = void 0, + transitionDuration = void 0, + transitionTiming = void 0, + transitionDelay = void 0; +var animationName = void 0, + animationDuration = void 0, + animationTiming = void 0, + animationDelay = void 0; + +if (_inDOM2.default) { + var _getTransitionPropert = getTransitionProperties(); + + prefix = _getTransitionPropert.prefix; + exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd; + exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd; + + + exports.transform = transform = prefix + '-' + transform; + exports.transitionProperty = transitionProperty = prefix + '-transition-property'; + exports.transitionDuration = transitionDuration = prefix + '-transition-duration'; + exports.transitionDelay = transitionDelay = prefix + '-transition-delay'; + exports.transitionTiming = transitionTiming = prefix + '-transition-timing-function'; + + exports.animationName = animationName = prefix + '-animation-name'; + exports.animationDuration = animationDuration = prefix + '-animation-duration'; + exports.animationTiming = animationTiming = prefix + '-animation-delay'; + exports.animationDelay = animationDelay = prefix + '-animation-timing-function'; +} + +exports.transform = transform; +exports.transitionProperty = transitionProperty; +exports.transitionTiming = transitionTiming; +exports.transitionDelay = transitionDelay; +exports.transitionDuration = transitionDuration; +exports.transitionEnd = transitionEnd; +exports.animationName = animationName; +exports.animationDuration = animationDuration; +exports.animationTiming = animationTiming; +exports.animationDelay = animationDelay; +exports.animationEnd = animationEnd; +exports.default = { + transform: transform, + end: transitionEnd, + property: transitionProperty, + timing: transitionTiming, + delay: transitionDelay, + duration: transitionDuration +}; + + +function getTransitionProperties() { + var style = document.createElement('div').style; + + var vendorMap = { + O: function O(e) { + return 'o' + e.toLowerCase(); + }, + Moz: function Moz(e) { + return e.toLowerCase(); + }, + Webkit: function Webkit(e) { + return 'webkit' + e; + }, + ms: function ms(e) { + return 'MS' + e; + } + }; + + var vendors = Object.keys(vendorMap); + + var transitionEnd = void 0, + animationEnd = void 0; + var prefix = ''; + + for (var i = 0; i < vendors.length; i++) { + var vendor = vendors[i]; + + if (vendor + 'TransitionProperty' in style) { + prefix = '-' + vendor.toLowerCase(); + transitionEnd = vendorMap[vendor]('TransitionEnd'); + animationEnd = vendorMap[vendor]('AnimationEnd'); + break; + } + } + + if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend'; + + if (!animationEnd && 'animationName' in style) animationEnd = 'animationend'; + + style = null; + + return { animationEnd: animationEnd, transitionEnd: transitionEnd, prefix: prefix }; +} + +/***/ }), + +/***/ "./node_modules/dom-helpers/util/camelize.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = camelize; +var rHyphen = /-(.)/g; + +function camelize(string) { + return string.replace(rHyphen, function (_, chr) { + return chr.toUpperCase(); + }); +} +module.exports = exports["default"]; + +/***/ }), + +/***/ "./node_modules/dom-helpers/util/camelizeStyle.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = camelizeStyleName; + +var _camelize = __webpack_require__("./node_modules/dom-helpers/util/camelize.js"); + +var _camelize2 = _interopRequireDefault(_camelize); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var msPattern = /^-ms-/; /** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js + */ +function camelizeStyleName(string) { + return (0, _camelize2.default)(string.replace(msPattern, 'ms-')); +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/util/hyphenate.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = hyphenate; + +var rUpper = /([A-Z])/g; + +function hyphenate(string) { + return string.replace(rUpper, '-$1').toLowerCase(); +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/util/hyphenateStyle.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = hyphenateStyleName; + +var _hyphenate = __webpack_require__("./node_modules/dom-helpers/util/hyphenate.js"); + +var _hyphenate2 = _interopRequireDefault(_hyphenate); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var msPattern = /^ms-/; /** + * Copyright 2013-2014, Facebook, Inc. + * All rights reserved. + * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js + */ + +function hyphenateStyleName(string) { + return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-'); +} +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/util/inDOM.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement); +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/dom-helpers/util/scrollbarSize.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (recalc) { + if (!size && size !== 0 || recalc) { + if (_inDOM2.default) { + var scrollDiv = document.createElement('div'); + + scrollDiv.style.position = 'absolute'; + scrollDiv.style.top = '-9999px'; + scrollDiv.style.width = '50px'; + scrollDiv.style.height = '50px'; + scrollDiv.style.overflow = 'scroll'; + + document.body.appendChild(scrollDiv); + size = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + } + } + + return size; +}; + +var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); + +var _inDOM2 = _interopRequireDefault(_inDOM); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var size = void 0; + +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/duplexify/index.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(Buffer, process) {var stream = __webpack_require__("./node_modules/readable-stream/readable-browser.js") +var eos = __webpack_require__("./node_modules/end-of-stream/index.js") +var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") +var shift = __webpack_require__("./node_modules/stream-shift/index.js") + +var SIGNAL_FLUSH = new Buffer([0]) + +var onuncork = function(self, fn) { + if (self._corked) self.once('uncork', fn) + else fn() +} + +var destroyer = function(self, end) { + return function(err) { + if (err) self._destroyInterval(err) + else if (end && !self._ended) self.end() + } +} + +var end = function(ws, fn) { + if (!ws) return fn() + if (ws._writableState && ws._writableState.finished) return fn() + if (ws._writableState) return ws.end(fn) + ws.end() + fn() +} + +var toStreams2 = function(rs) { + return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs) +} + +var Duplexify = function(writable, readable, opts) { + if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts) + stream.Duplex.call(this, opts) + + this._writable = null + this._readable = null + this._readable2 = null + + this._forwardDestroy = !opts || opts.destroy !== false + this._forwardEnd = !opts || opts.end !== false + this._corked = 1 // start corked + this._ondrain = null + this._drained = false + this._forwarding = false + this._unwrite = null + this._unread = null + this._ended = false + this._error = null + this._preferError = false + + this.destroyed = false + + if (writable) this.setWritable(writable) + if (readable) this.setReadable(readable) +} + +inherits(Duplexify, stream.Duplex) + +Duplexify.obj = function(writable, readable, opts) { + if (!opts) opts = {} + opts.objectMode = true + opts.highWaterMark = 16 + return new Duplexify(writable, readable, opts) +} + +Duplexify.prototype.cork = function() { + if (++this._corked === 1) this.emit('cork') +} + +Duplexify.prototype.uncork = function() { + if (this._corked && --this._corked === 0) this.emit('uncork') +} + +Duplexify.prototype.setWritable = function(writable) { + if (this._unwrite) this._unwrite() + + if (this.destroyed) { + if (writable && writable.destroy) writable.destroy() + return + } + + if (writable === null || writable === false) { + this.end() + return + } + + var self = this + var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd)) + + var ondrain = function() { + var ondrain = self._ondrain + self._ondrain = null + if (ondrain) ondrain() + } + + var clear = function() { + self._writable.removeListener('drain', ondrain) + unend() + } + + if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks + + this._writable = writable + this._writable.on('drain', ondrain) + this._unwrite = clear + + this.uncork() // always uncork setWritable +} + +Duplexify.prototype.setReadable = function(readable) { + if (this._unread) this._unread() + + if (this.destroyed) { + if (readable && readable.destroy) readable.destroy() + return + } + + if (readable === null || readable === false) { + this.push(null) + this.resume() + return + } + + var self = this + var unend = eos(readable, {writable:false, readable:true}, destroyer(this)) + + var onreadable = function() { + self._forward() + } + + var onend = function() { + self.push(null) + } + + var clear = function() { + self._readable2.removeListener('readable', onreadable) + self._readable2.removeListener('end', onend) + unend() + } + + this._drained = true + this._readable = readable + this._readable2 = readable._readableState ? readable : toStreams2(readable) + this._readable2.on('readable', onreadable) + this._readable2.on('end', onend) + this._unread = clear + + this._forward() +} + +Duplexify.prototype._read = function() { + this._drained = true + this._forward() +} + +Duplexify.prototype._forward = function() { + if (this._forwarding || !this._readable2 || !this._drained) return + this._forwarding = true + + var data + + while (this._drained && (data = shift(this._readable2)) !== null) { + if (this.destroyed) continue + this._drained = this.push(data) + } + + this._forwarding = false +} + +Duplexify.prototype.destroy = function(err) { + if (this._preferError && !this._error && err) this._error = err + + if (this.destroyed) return + this.destroyed = true + + var self = this + process.nextTick(function() { + self._destroy(self._preferError ? self._error : err) + }) +} + +Duplexify.prototype._destroyInterval = function(err) { + if (this.destroyed) return + if (err.message !== 'premature close') return this.destroy(err) + this._preferError = true + this.destroy(null) +} + +Duplexify.prototype._destroy = function(err) { + if (err) { + var ondrain = this._ondrain + this._ondrain = null + if (ondrain) ondrain(err) + else this.emit('error', err) + } + + if (this._forwardDestroy) { + if (this._readable && this._readable.destroy) this._readable.destroy() + if (this._writable && this._writable.destroy) this._writable.destroy() + } + + this.emit('close') +} + +Duplexify.prototype._write = function(data, enc, cb) { + if (this.destroyed) return cb() + if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb)) + if (data === SIGNAL_FLUSH) return this._finish(cb) + if (!this._writable) return cb() + + if (this._writable.write(data) === false) this._ondrain = cb + else cb() +} + + +Duplexify.prototype._finish = function(cb) { + var self = this + this.emit('preend') + onuncork(this, function() { + end(self._forwardEnd && self._writable, function() { + // haxx to not emit prefinish twice + if (self._writableState.prefinished === false) self._writableState.prefinished = true + self.emit('prefinish') + onuncork(self, cb) + }) + }) +} + +Duplexify.prototype.end = function(data, enc, cb) { + if (typeof data === 'function') return this.end(null, null, data) + if (typeof enc === 'function') return this.end(data, null, enc) + this._ended = true + if (data) this.write(data) + if (!this._writableState.ending) this.write(SIGNAL_FLUSH) + return stream.Writable.prototype.end.call(this, cb) +} + +module.exports = Duplexify + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/buffer/index.js").Buffer, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/end-of-stream/index.js": +/***/ (function(module, exports, __webpack_require__) { + +var once = __webpack_require__("./node_modules/once/once.js"); + +var noop = function() {}; + +var isRequest = function(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +}; + +var isChildProcess = function(stream) { + return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +}; + +var eos = function(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + + callback = once(callback || noop); + + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + + var onlegacyfinish = function() { + if (!stream.writable) onfinish(); + }; + + var onfinish = function() { + writable = false; + if (!readable) callback.call(stream); + }; + + var onend = function() { + readable = false; + if (!writable) callback.call(stream); + }; + + var onexit = function(exitCode) { + callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); + }; + + var onerror = function(err) { + callback.call(stream, err); + }; + + var onclose = function() { + if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close')); + if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close')); + }; + + var onrequest = function() { + stream.req.on('finish', onfinish); + }; + + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest(); + else stream.on('request', onrequest); + } else if (writable && !ws) { // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + + if (isChildProcess(stream)) stream.on('exit', onexit); + + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + + return function() { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('exit', onexit); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +}; + +module.exports = eos; + + +/***/ }), + +/***/ "./node_modules/events/events.js": +/***/ (function(module, exports) { + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +EventEmitter.defaultMaxListeners = 10; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + // If there is no 'error' event listener then throw. + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } else { + // At least give some kind of context to the user + var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); + err.context = er; + throw err; + } + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + // fast cases + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + // slower + default: + args = Array.prototype.slice.call(arguments, 1); + handler.apply(this, args); + } + } else if (isObject(handler)) { + args = Array.prototype.slice.call(arguments, 1); + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + else if (isObject(this._events[type])) + // If we've already got an array, just append. + this._events[type].push(listener); + else + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + + // Check for listener leak + if (isObject(this._events[type]) && !this._events[type].warned) { + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + // not supported in IE 10 + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +// emits a 'removeListener' event iff the listener was removed +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + // not listening for removeListener, no need to emit + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else if (listeners) { + // LIFO order + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.prototype.listenerCount = function(type) { + if (this._events) { + var evlistener = this._events[type]; + + if (isFunction(evlistener)) + return 1; + else if (evlistener) + return evlistener.length; + } + return 0; +}; + +EventEmitter.listenerCount = function(emitter, type) { + return emitter.listenerCount(type); +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + + +/***/ }), + +/***/ "./node_modules/global/window.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var win; + +if (typeof window !== "undefined") { + win = window; +} else if (typeof global !== "undefined") { + win = global; +} else if (typeof self !== "undefined"){ + win = self; +} else { + win = {}; +} + +module.exports = win; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/hyphenate-style-name/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var uppercasePattern = /[A-Z]/g; +var msPattern = /^ms-/; +var cache = {}; + +function hyphenateStyleName(string) { + return string in cache + ? cache[string] + : cache[string] = string + .replace(uppercasePattern, '-$&') + .toLowerCase() + .replace(msPattern, '-ms-'); +} + +module.exports = hyphenateStyleName; + + +/***/ }), + +/***/ "./node_modules/ieee754/index.js": +/***/ (function(module, exports) { + +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + + +/***/ }), + +/***/ "./node_modules/inherits/inherits_browser.js": +/***/ (function(module, exports) { + +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } +} + + +/***/ }), + +/***/ "./node_modules/is-function/index.js": +/***/ (function(module, exports) { + +module.exports = isFunction + +var toString = Object.prototype.toString + +function isFunction (fn) { + var string = toString.call(fn) + return string === '[object Function]' || + (typeof fn === 'function' && string !== '[object RegExp]') || + (typeof window !== 'undefined' && + // IE8 and below + (fn === window.setTimeout || + fn === window.alert || + fn === window.confirm || + fn === window.prompt)) +}; + + +/***/ }), + +/***/ "./node_modules/is-in-browser/dist/module.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowser", function() { return isBrowser; }); +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var isBrowser = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && document.nodeType === 9; + +/* harmony default export */ __webpack_exports__["default"] = (isBrowser); + + +/***/ }), + +/***/ "./node_modules/is-plain-object/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + + + +var isObject = __webpack_require__("./node_modules/isobject/index.js"); + +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; +} + +module.exports = function isPlainObject(o) { + var ctor,prot; + + if (isObjectObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; + + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +}; + + +/***/ }), + +/***/ "./node_modules/isarray/index.js": +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), + +/***/ "./node_modules/isobject/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + + + +module.exports = function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +}; + + +/***/ }), + +/***/ "./node_modules/json-stringify-safe/stringify.js": +/***/ (function(module, exports) { + +exports = module.exports = stringify +exports.getSerialize = serializer + +function stringify(obj, replacer, spaces, cycleReplacer) { + return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces) +} + +function serializer(replacer, cycleReplacer) { + var stack = [], keys = [] + + if (cycleReplacer == null) cycleReplacer = function(key, value) { + if (stack[0] === value) return "[Circular ~]" + return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]" + } + + return function(key, value) { + if (stack.length > 0) { + var thisPos = stack.indexOf(this) + ~thisPos ? stack.splice(thisPos + 1) : stack.push(this) + ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key) + if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value) + } + else stack.push(value) + + return replacer == null ? value : replacer.call(this, key, value) + } +} + + +/***/ }), + +/***/ "./node_modules/jss-camel-case/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = camelCase; + +var _hyphenateStyleName = __webpack_require__("./node_modules/hyphenate-style-name/index.js"); + +var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Convert camel cased property names to dash separated. + * + * @param {Object} style + * @return {Object} + */ +function convertCase(style) { + var converted = {}; + + for (var prop in style) { + converted[(0, _hyphenateStyleName2['default'])(prop)] = style[prop]; + } + + if (style.fallbacks) { + if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks); + } + + return converted; +} + +/** + * Allow camel cased property names by converting them back to dasherized. + * + * @param {Rule} rule + */ +function camelCase() { + function onProcessStyle(style) { + if (Array.isArray(style)) { + // Handle rules like @font-face, which can have multiple styles in an array + for (var index = 0; index < style.length; index++) { + style[index] = convertCase(style[index]); + } + return style; + } + + return convertCase(style); + } + + function onChangeValue(value, prop, rule) { + var hyphenatedProp = (0, _hyphenateStyleName2['default'])(prop); + + // There was no camel case in place + if (prop === hyphenatedProp) return value; + + rule.prop(hyphenatedProp, value); + + // Core will ignore that property value we set the proper one above. + return null; + } + + return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; +} + +/***/ }), + +/***/ "./node_modules/jss-compose/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = jssCompose; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Set selector. + * + * @param {Object} original rule + * @param {String} className class string + * @return {Boolean} flag, indicating function was successfull or not + */ +function registerClass(rule, className) { + // Skip falsy values + if (!className) return true; + + // Support array of class names `{composes: ['foo', 'bar']}` + if (Array.isArray(className)) { + for (var index = 0; index < className.length; index++) { + var isSetted = registerClass(rule, className[index]); + if (!isSetted) return false; + } + + return true; + } + + // Support space separated class names `{composes: 'foo bar'}` + if (className.indexOf(' ') > -1) { + return registerClass(rule, className.split(' ')); + } + + var parent = rule.options.parent; + + // It is a ref to a local rule. + + if (className[0] === '$') { + var refRule = parent.getRule(className.substr(1)); + + if (!refRule) { + (0, _warning2.default)(false, '[JSS] Referenced rule is not defined. \r\n%s', rule); + return false; + } + + if (refRule === rule) { + (0, _warning2.default)(false, '[JSS] Cyclic composition detected. \r\n%s', rule); + return false; + } + + parent.classes[rule.key] += ' ' + parent.classes[refRule.key]; + + return true; + } + + rule.options.parent.classes[rule.key] += ' ' + className; + + return true; +} + +/** + * Convert compose property to additional class, remove property from original styles. + * + * @param {Rule} rule + * @api public + */ +function jssCompose() { + function onProcessStyle(style, rule) { + if (!style.composes) return style; + registerClass(rule, style.composes); + // Remove composes property to prevent infinite loop. + delete style.composes; + return style; + } + return { onProcessStyle: onProcessStyle }; +} + +/***/ }), + +/***/ "./node_modules/jss-default-unit/lib/defaultUnits.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/** + * Generated jss-default-unit CSS property units + * + * @type object + */ +exports['default'] = { + 'animation-delay': 'ms', + 'animation-duration': 'ms', + 'background-position': 'px', + 'background-position-x': 'px', + 'background-position-y': 'px', + 'background-size': 'px', + border: 'px', + 'border-bottom': 'px', + 'border-bottom-left-radius': 'px', + 'border-bottom-right-radius': 'px', + 'border-bottom-width': 'px', + 'border-left': 'px', + 'border-left-width': 'px', + 'border-radius': 'px', + 'border-right': 'px', + 'border-right-width': 'px', + 'border-spacing': 'px', + 'border-top': 'px', + 'border-top-left-radius': 'px', + 'border-top-right-radius': 'px', + 'border-top-width': 'px', + 'border-width': 'px', + 'border-after-width': 'px', + 'border-before-width': 'px', + 'border-end-width': 'px', + 'border-horizontal-spacing': 'px', + 'border-start-width': 'px', + 'border-vertical-spacing': 'px', + bottom: 'px', + 'box-shadow': 'px', + 'column-gap': 'px', + 'column-rule': 'px', + 'column-rule-width': 'px', + 'column-width': 'px', + 'flex-basis': 'px', + 'font-size': 'px', + 'font-size-delta': 'px', + height: 'px', + left: 'px', + 'letter-spacing': 'px', + 'logical-height': 'px', + 'logical-width': 'px', + margin: 'px', + 'margin-after': 'px', + 'margin-before': 'px', + 'margin-bottom': 'px', + 'margin-left': 'px', + 'margin-right': 'px', + 'margin-top': 'px', + 'max-height': 'px', + 'max-width': 'px', + 'margin-end': 'px', + 'margin-start': 'px', + 'mask-position-x': 'px', + 'mask-position-y': 'px', + 'mask-size': 'px', + 'max-logical-height': 'px', + 'max-logical-width': 'px', + 'min-height': 'px', + 'min-width': 'px', + 'min-logical-height': 'px', + 'min-logical-width': 'px', + motion: 'px', + 'motion-offset': 'px', + outline: 'px', + 'outline-offset': 'px', + 'outline-width': 'px', + padding: 'px', + 'padding-bottom': 'px', + 'padding-left': 'px', + 'padding-right': 'px', + 'padding-top': 'px', + 'padding-after': 'px', + 'padding-before': 'px', + 'padding-end': 'px', + 'padding-start': 'px', + 'perspective-origin-x': '%', + 'perspective-origin-y': '%', + perspective: 'px', + right: 'px', + 'shape-margin': 'px', + size: 'px', + 'text-indent': 'px', + 'text-stroke': 'px', + 'text-stroke-width': 'px', + top: 'px', + 'transform-origin': '%', + 'transform-origin-x': '%', + 'transform-origin-y': '%', + 'transform-origin-z': '%', + 'transition-delay': 'ms', + 'transition-duration': 'ms', + 'vertical-align': 'px', + width: 'px', + 'word-spacing': 'px', + // Not existing properties. + // Used to avoid issues with jss-expand intergration. + 'box-shadow-x': 'px', + 'box-shadow-y': 'px', + 'box-shadow-blur': 'px', + 'box-shadow-spread': 'px', + 'font-line-height': 'px', + 'text-shadow-x': 'px', + 'text-shadow-y': 'px', + 'text-shadow-blur': 'px' +}; + +/***/ }), + +/***/ "./node_modules/jss-default-unit/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports['default'] = defaultUnit; + +var _defaultUnits = __webpack_require__("./node_modules/jss-default-unit/lib/defaultUnits.js"); + +var _defaultUnits2 = _interopRequireDefault(_defaultUnits); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Clones the object and adds a camel cased property version. + */ +function addCamelCasedVersion(obj) { + var regExp = /(-[a-z])/g; + var replace = function replace(str) { + return str[1].toUpperCase(); + }; + var newObj = {}; + for (var key in obj) { + newObj[key] = obj[key]; + newObj[key.replace(regExp, replace)] = obj[key]; + } + return newObj; +} + +var units = addCamelCasedVersion(_defaultUnits2['default']); + +/** + * Recursive deep style passing function + * + * @param {String} current property + * @param {(Object|Array|Number|String)} property value + * @param {Object} options + * @return {(Object|Array|Number|String)} resulting value + */ +function iterate(prop, value, options) { + if (!value) return value; + + var convertedValue = value; + + var type = typeof value === 'undefined' ? 'undefined' : _typeof(value); + if (type === 'object' && Array.isArray(value)) type = 'array'; + + switch (type) { + case 'object': + if (prop === 'fallbacks') { + for (var innerProp in value) { + value[innerProp] = iterate(innerProp, value[innerProp], options); + } + break; + } + for (var _innerProp in value) { + value[_innerProp] = iterate(prop + '-' + _innerProp, value[_innerProp], options); + } + break; + case 'array': + for (var i = 0; i < value.length; i++) { + value[i] = iterate(prop, value[i], options); + } + break; + case 'number': + if (value !== 0) { + convertedValue = value + (options[prop] || units[prop] || ''); + } + break; + default: + break; + } + + return convertedValue; +} + +/** + * Add unit to numeric values. + */ +function defaultUnit() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var camelCasedOptions = addCamelCasedVersion(options); + + function onProcessStyle(style, rule) { + if (rule.type !== 'style') return style; + + for (var prop in style) { + style[prop] = iterate(prop, style[prop], camelCasedOptions); + } + + return style; + } + + function onChangeValue(value, prop) { + return iterate(prop, value, camelCasedOptions); + } + + return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; +} + +/***/ }), + +/***/ "./node_modules/jss-expand/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.default = jssExpand; + +var _props = __webpack_require__("./node_modules/jss-expand/lib/props.js"); + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +/** + * Map values by given prop. + * + * @param {Array} array of values + * @param {String} original property + * @param {String} original rule + * @return {String} mapped values + */ +function mapValuesByProp(value, prop, rule) { + return value.map(function (item) { + return objectToString(item, prop, rule); + }); +} + +/** + * Convert array to string. + * + * @param {Array} array of values + * @param {String} original property + * @param {Object} sheme, for converting arrays in strings + * @param {Object} original rule + * @return {String} converted string + */ +function arrayToString(value, prop, scheme, rule) { + if (scheme[prop] == null) return value.join(','); + if (value.length === 0) return ''; + if (Array.isArray(value[0])) return arrayToString(value[0], prop, scheme); + if (_typeof(value[0]) === 'object') { + return mapValuesByProp(value, prop, rule); + } + return value.join(' '); +} + +/** + * Convert object to string. + * + * @param {Object} object of values + * @param {String} original property + * @param {Object} original rule + * @param {Boolean} is fallback prop + * @return {String} converted string + */ +function objectToString(value, prop, rule, isFallback) { + if (!(_props.propObj[prop] || _props.customPropObj[prop])) return ''; + + var result = []; + + // Check if exists any non-standart property + if (_props.customPropObj[prop]) { + value = customPropsToStyle(value, rule, _props.customPropObj[prop], isFallback); + } + + // Pass throught all standart props + if (Object.keys(value).length) { + for (var baseProp in _props.propObj[prop]) { + if (value[baseProp]) { + if (Array.isArray(value[baseProp])) { + result.push(arrayToString(value[baseProp], baseProp, _props.propArrayInObj)); + } else result.push(value[baseProp]); + continue; + } + + // Add default value from props config. + if (_props.propObj[prop][baseProp] != null) { + result.push(_props.propObj[prop][baseProp]); + } + } + } + + return result.join(' '); +} + +/** + * Convert custom properties values to styles adding them to rule directly + * + * @param {Object} object of values + * @param {Object} original rule + * @param {String} property, that contain partial custom properties + * @param {Boolean} is fallback prop + * @return {Object} value without custom properties, that was already added to rule + */ +function customPropsToStyle(value, rule, customProps, isFallback) { + for (var prop in customProps) { + var propName = customProps[prop]; + + // If current property doesn't exist already in rule - add new one + if (typeof value[prop] !== 'undefined' && (isFallback || !rule.prop(propName))) { + var appendedValue = styleDetector(_defineProperty({}, propName, value[prop]), rule)[propName]; + + // Add style directly in rule + if (isFallback) rule.style.fallbacks[propName] = appendedValue;else rule.style[propName] = appendedValue; + } + // Delete converted property to avoid double converting + delete value[prop]; + } + + return value; +} + +/** + * Detect if a style needs to be converted. + * + * @param {Object} style + * @param {Object} rule + * @param {Boolean} is fallback prop + * @return {Object} convertedStyle + */ +function styleDetector(style, rule, isFallback) { + for (var prop in style) { + var value = style[prop]; + + if (Array.isArray(value)) { + // Check double arrays to avoid recursion. + if (!Array.isArray(value[0])) { + if (prop === 'fallbacks') { + for (var index = 0; index < style.fallbacks.length; index++) { + style.fallbacks[index] = styleDetector(style.fallbacks[index], rule, true); + } + continue; + } + + style[prop] = arrayToString(value, prop, _props.propArray); + // Avoid creating properties with empty values + if (!style[prop]) delete style[prop]; + } + } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { + if (prop === 'fallbacks') { + style.fallbacks = styleDetector(style.fallbacks, rule, true); + continue; + } + + style[prop] = objectToString(value, prop, rule, isFallback); + // Avoid creating properties with empty values + if (!style[prop]) delete style[prop]; + } + + // Maybe a computed value resulting in an empty string + else if (style[prop] === '') delete style[prop]; + } + + return style; +} + +/** + * Adds possibility to write expanded styles. + * + * @param {Rule} rule + * @api public + */ +function jssExpand() { + function onProcessStyle(style, rule) { + if (!style || rule.type !== 'style') return style; + + if (Array.isArray(style)) { + // Pass rules one by one and reformat them + for (var index = 0; index < style.length; index++) { + style[index] = styleDetector(style[index], rule); + } + return style; + } + + return styleDetector(style, rule); + } + + return { onProcessStyle: onProcessStyle }; +} + +/***/ }), + +/***/ "./node_modules/jss-expand/lib/props.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/** + * A scheme for converting properties from array to regular style. + * All properties listed below will be transformed to a string separated by space. + */ +var propArray = exports.propArray = { + 'background-size': true, + 'background-position': true, + border: true, + 'border-bottom': true, + 'border-left': true, + 'border-top': true, + 'border-right': true, + 'border-radius': true, + 'border-image': true, + 'box-shadow': true, + flex: true, + margin: true, + padding: true, + outline: true, + 'transform-origin': true, + transform: true, + transition: true + + /** + * A scheme for converting arrays to regular styles inside of objects. + * For e.g.: "{position: [0, 0]}" => "background-position: 0 0;". + */ +};var propArrayInObj = exports.propArrayInObj = { + position: true, // background-position + size: true // background-size + + + /** + * A scheme for parsing and building correct styles from passed objects. + */ +};var propObj = exports.propObj = { + padding: { + top: 0, + right: 0, + bottom: 0, + left: 0 + }, + margin: { + top: 0, + right: 0, + bottom: 0, + left: 0 + }, + background: { + attachment: null, + color: null, + image: null, + position: null, + repeat: null + }, + border: { + width: null, + style: null, + color: null + }, + 'border-top': { + width: null, + style: null, + color: null + }, + 'border-right': { + width: null, + style: null, + color: null + }, + 'border-bottom': { + width: null, + style: null, + color: null + }, + 'border-left': { + width: null, + style: null, + color: null + }, + outline: { + width: null, + style: null, + color: null + }, + 'list-style': { + type: null, + position: null, + image: null + }, + transition: { + property: null, + duration: null, + 'timing-function': null, + timingFunction: null, // Needed for avoiding comilation issues with jss-camel-case + delay: null + }, + animation: { + name: null, + duration: null, + 'timing-function': null, + timingFunction: null, // Needed to avoid compilation issues with jss-camel-case + delay: null, + 'iteration-count': null, + iterationCount: null, // Needed to avoid compilation issues with jss-camel-case + direction: null, + 'fill-mode': null, + fillMode: null, // Needed to avoid compilation issues with jss-camel-case + 'play-state': null, + playState: null // Needed to avoid compilation issues with jss-camel-case + }, + 'box-shadow': { + x: 0, + y: 0, + blur: 0, + spread: 0, + color: null, + inset: null + }, + 'text-shadow': { + x: 0, + y: 0, + blur: null, + color: null + } + + /** + * A scheme for converting non-standart properties inside object. + * For e.g.: include 'border-radius' property inside 'border' object. + */ +};var customPropObj = exports.customPropObj = { + border: { + radius: 'border-radius', + image: 'border-image' + }, + background: { + size: 'background-size', + image: 'background-image' + }, + font: { + style: 'font-style', + variant: 'font-variant', + weight: 'font-weight', + stretch: 'font-stretch', + size: 'font-size', + family: 'font-family', + lineHeight: 'line-height', // Needed to avoid compilation issues with jss-camel-case + 'line-height': 'line-height' + }, + flex: { + grow: 'flex-grow', + basis: 'flex-basis', + direction: 'flex-direction', + wrap: 'flex-wrap', + flow: 'flex-flow', + shrink: 'flex-shrink' + }, + align: { + self: 'align-self', + items: 'align-items', + content: 'align-content' + } +}; + +/***/ }), + +/***/ "./node_modules/jss-extend/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports['default'] = jssExtend; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var isObject = function isObject(obj) { + return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && !Array.isArray(obj); +}; +var valueNs = 'extendCurrValue' + Date.now(); + +function mergeExtend(style, rule, sheet, newStyle) { + var extendType = _typeof(style.extend); + // Extend using a rule name. + if (extendType === 'string') { + if (!sheet) return; + var refRule = sheet.getRule(style.extend); + if (!refRule) return; + if (refRule === rule) { + (0, _warning2['default'])(false, '[JSS] A rule tries to extend itself \r\n%s', rule); + return; + } + var parent = refRule.options.parent; + + if (parent) { + var originalStyle = parent.rules.raw[style.extend]; + extend(originalStyle, rule, sheet, newStyle); + } + return; + } + + // Extend using an array of objects. + if (Array.isArray(style.extend)) { + for (var index = 0; index < style.extend.length; index++) { + extend(style.extend[index], rule, sheet, newStyle); + } + return; + } + + // Extend is a style object. + for (var prop in style.extend) { + if (prop === 'extend') { + extend(style.extend.extend, rule, sheet, newStyle); + continue; + } + if (isObject(style.extend[prop])) { + if (!(prop in newStyle)) newStyle[prop] = {}; + extend(style.extend[prop], rule, sheet, newStyle[prop]); + continue; + } + newStyle[prop] = style.extend[prop]; + } +} + +function mergeRest(style, rule, sheet, newStyle) { + // Copy base style. + for (var prop in style) { + if (prop === 'extend') continue; + if (isObject(newStyle[prop]) && isObject(style[prop])) { + extend(style[prop], rule, sheet, newStyle[prop]); + continue; + } + + if (isObject(style[prop])) { + newStyle[prop] = extend(style[prop], rule, sheet); + continue; + } + + newStyle[prop] = style[prop]; + } +} + +/** + * Recursively extend styles. + */ +function extend(style, rule, sheet) { + var newStyle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + + mergeExtend(style, rule, sheet, newStyle); + mergeRest(style, rule, sheet, newStyle); + return newStyle; +} + +/** + * Handle `extend` property. + * + * @param {Rule} rule + * @api public + */ +function jssExtend() { + function onProcessStyle(style, rule, sheet) { + if ('extend' in style) return extend(style, rule, sheet); + return style; + } + + function onChangeValue(value, prop, rule) { + if (prop !== 'extend') return value; + + // Value is empty, remove properties set previously. + if (value == null || value === false) { + for (var key in rule[valueNs]) { + rule.prop(key, null); + } + rule[valueNs] = null; + return null; + } + + for (var _key in value) { + rule.prop(_key, value[_key]); + } + rule[valueNs] = value; + + // Make sure we don't set the value in the core. + return null; + } + + return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; +} + +/***/ }), + +/***/ "./node_modules/jss-global/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +exports['default'] = jssGlobal; + +var _jss = __webpack_require__("./node_modules/jss/lib/index.js"); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var propKey = '@global'; +var prefixKey = '@global '; + +var GlobalContainerRule = function () { + function GlobalContainerRule(key, styles, options) { + _classCallCheck(this, GlobalContainerRule); + + this.type = 'global'; + + this.key = key; + this.options = options; + this.rules = new _jss.RuleList(_extends({}, options, { + parent: this + })); + + for (var selector in styles) { + this.rules.add(selector, styles[selector], { selector: selector }); + } + + this.rules.process(); + } + + /** + * Get a rule. + */ + + + _createClass(GlobalContainerRule, [{ + key: 'getRule', + value: function getRule(name) { + return this.rules.get(name); + } + + /** + * Create and register rule, run plugins. + */ + + }, { + key: 'addRule', + value: function addRule(name, style, options) { + var rule = this.rules.add(name, style, options); + this.options.jss.plugins.onProcessRule(rule); + return rule; + } + + /** + * Get index of a rule. + */ + + }, { + key: 'indexOf', + value: function indexOf(rule) { + return this.rules.indexOf(rule); + } + + /** + * Generates a CSS string. + */ + + }, { + key: 'toString', + value: function toString() { + return this.rules.toString(); + } + }]); + + return GlobalContainerRule; +}(); + +var GlobalPrefixedRule = function () { + function GlobalPrefixedRule(name, style, options) { + _classCallCheck(this, GlobalPrefixedRule); + + this.name = name; + this.options = options; + var selector = name.substr(prefixKey.length); + this.rule = options.jss.createRule(selector, style, _extends({}, options, { + parent: this, + selector: selector + })); + } + + _createClass(GlobalPrefixedRule, [{ + key: 'toString', + value: function toString(options) { + return this.rule.toString(options); + } + }]); + + return GlobalPrefixedRule; +}(); + +var separatorRegExp = /\s*,\s*/g; + +function addScope(selector, scope) { + var parts = selector.split(separatorRegExp); + var scoped = ''; + for (var i = 0; i < parts.length; i++) { + scoped += scope + ' ' + parts[i].trim(); + if (parts[i + 1]) scoped += ', '; + } + return scoped; +} + +function handleNestedGlobalContainerRule(rule) { + var options = rule.options, + style = rule.style; + + var rules = style[propKey]; + + if (!rules) return; + + for (var name in rules) { + options.sheet.addRule(name, rules[name], _extends({}, options, { + selector: addScope(name, rule.selector) + })); + } + + delete style[propKey]; +} + +function handlePrefixedGlobalRule(rule) { + var options = rule.options, + style = rule.style; + + for (var prop in style) { + if (prop.substr(0, propKey.length) !== propKey) continue; + + var selector = addScope(prop.substr(propKey.length), rule.selector); + options.sheet.addRule(selector, style[prop], _extends({}, options, { + selector: selector + })); + delete style[prop]; + } +} + +/** + * Convert nested rules to separate, remove them from original styles. + * + * @param {Rule} rule + * @api public + */ +function jssGlobal() { + function onCreateRule(name, styles, options) { + if (name === propKey) { + return new GlobalContainerRule(name, styles, options); + } + + if (name[0] === '@' && name.substr(0, prefixKey.length) === prefixKey) { + return new GlobalPrefixedRule(name, styles, options); + } + + var parent = options.parent; + + + if (parent) { + if (parent.type === 'global' || parent.options.parent.type === 'global') { + options.global = true; + } + } + + if (options.global) options.selector = name; + + return null; + } + + function onProcessRule(rule) { + if (rule.type !== 'style') return; + + handleNestedGlobalContainerRule(rule); + handlePrefixedGlobalRule(rule); + } + + return { onCreateRule: onCreateRule, onProcessRule: onProcessRule }; +} + +/***/ }), + +/***/ "./node_modules/jss-nested/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +exports.default = jssNested; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var separatorRegExp = /\s*,\s*/g; +var parentRegExp = /&/g; +var refRegExp = /\$([\w-]+)/g; + +/** + * Convert nested rules to separate, remove them from original styles. + * + * @param {Rule} rule + * @api public + */ +function jssNested() { + // Get a function to be used for $ref replacement. + function getReplaceRef(container) { + return function (match, key) { + var rule = container.getRule(key); + if (rule) return rule.selector; + (0, _warning2.default)(false, '[JSS] Could not find the referenced rule %s in %s.', key, container.options.meta || container); + return key; + }; + } + + var hasAnd = function hasAnd(str) { + return str.indexOf('&') !== -1; + }; + + function replaceParentRefs(nestedProp, parentProp) { + var parentSelectors = parentProp.split(separatorRegExp); + var nestedSelectors = nestedProp.split(separatorRegExp); + + var result = ''; + + for (var i = 0; i < parentSelectors.length; i++) { + var parent = parentSelectors[i]; + + for (var j = 0; j < nestedSelectors.length; j++) { + var nested = nestedSelectors[j]; + if (result) result += ', '; + // Replace all & by the parent or prefix & with the parent. + result += hasAnd(nested) ? nested.replace(parentRegExp, parent) : parent + ' ' + nested; + } + } + + return result; + } + + function getOptions(rule, container, options) { + // Options has been already created, now we only increase index. + if (options) return _extends({}, options, { index: options.index + 1 }); + + var nestingLevel = rule.options.nestingLevel; + + nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1; + + return _extends({}, rule.options, { + nestingLevel: nestingLevel, + index: container.indexOf(rule) + 1 + }); + } + + function onProcessStyle(style, rule) { + if (rule.type !== 'style') return style; + var container = rule.options.parent; + var options = void 0; + var replaceRef = void 0; + for (var prop in style) { + var isNested = hasAnd(prop); + var isNestedConditional = prop[0] === '@'; + + if (!isNested && !isNestedConditional) continue; + + options = getOptions(rule, container, options); + + if (isNested) { + var selector = replaceParentRefs(prop, rule.selector + // Lazily create the ref replacer function just once for + // all nested rules within the sheet. + );if (!replaceRef) replaceRef = getReplaceRef(container + // Replace all $refs. + );selector = selector.replace(refRegExp, replaceRef); + + container.addRule(selector, style[prop], _extends({}, options, { selector: selector })); + } else if (isNestedConditional) { + container + // Place conditional right after the parent rule to ensure right ordering. + .addRule(prop, null, options).addRule(rule.key, style[prop], { selector: rule.selector }); + } + + delete style[prop]; + } + + return style; + } + + return { onProcessStyle: onProcessStyle }; +} + +/***/ }), + +/***/ "./node_modules/jss-preset-default/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jssTemplate = __webpack_require__("./node_modules/jss-template/lib/index.js"); + +var _jssTemplate2 = _interopRequireDefault(_jssTemplate); + +var _jssGlobal = __webpack_require__("./node_modules/jss-global/lib/index.js"); + +var _jssGlobal2 = _interopRequireDefault(_jssGlobal); + +var _jssExtend = __webpack_require__("./node_modules/jss-extend/lib/index.js"); + +var _jssExtend2 = _interopRequireDefault(_jssExtend); + +var _jssNested = __webpack_require__("./node_modules/jss-nested/lib/index.js"); + +var _jssNested2 = _interopRequireDefault(_jssNested); + +var _jssCompose = __webpack_require__("./node_modules/jss-compose/lib/index.js"); + +var _jssCompose2 = _interopRequireDefault(_jssCompose); + +var _jssCamelCase = __webpack_require__("./node_modules/jss-camel-case/lib/index.js"); + +var _jssCamelCase2 = _interopRequireDefault(_jssCamelCase); + +var _jssDefaultUnit = __webpack_require__("./node_modules/jss-default-unit/lib/index.js"); + +var _jssDefaultUnit2 = _interopRequireDefault(_jssDefaultUnit); + +var _jssExpand = __webpack_require__("./node_modules/jss-expand/lib/index.js"); + +var _jssExpand2 = _interopRequireDefault(_jssExpand); + +var _jssVendorPrefixer = __webpack_require__("./node_modules/jss-vendor-prefixer/lib/index.js"); + +var _jssVendorPrefixer2 = _interopRequireDefault(_jssVendorPrefixer); + +var _jssPropsSort = __webpack_require__("./node_modules/jss-props-sort/lib/index.js"); + +var _jssPropsSort2 = _interopRequireDefault(_jssPropsSort); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function () { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return { + plugins: [(0, _jssTemplate2.default)(options.template), (0, _jssGlobal2.default)(options.global), (0, _jssExtend2.default)(options.extend), (0, _jssNested2.default)(options.nested), (0, _jssCompose2.default)(options.compose), (0, _jssCamelCase2.default)(options.camelCase), (0, _jssDefaultUnit2.default)(options.defaultUnit), (0, _jssExpand2.default)(options.expand), (0, _jssVendorPrefixer2.default)(options.vendorPrefixer), (0, _jssPropsSort2.default)(options.propsSort)] + }; +}; + +/***/ }), + +/***/ "./node_modules/jss-props-sort/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = jssPropsSort; +/** + * Sort props by length. + */ +function jssPropsSort() { + function sort(prop0, prop1) { + return prop0.length - prop1.length; + } + + function onProcessStyle(style, rule) { + if (rule.type !== 'style') return style; + + var newStyle = {}; + var props = Object.keys(style).sort(sort); + for (var prop in props) { + newStyle[props[prop]] = style[props[prop]]; + } + return newStyle; + } + + return { onProcessStyle: onProcessStyle }; +} + +/***/ }), + +/***/ "./node_modules/jss-template/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _parse = __webpack_require__("./node_modules/jss-template/lib/parse.js"); + +var _parse2 = _interopRequireDefault(_parse); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var onProcessRule = function onProcessRule(rule) { + if (typeof rule.style === 'string') { + rule.style = (0, _parse2['default'])(rule.style); + } +}; + +exports['default'] = function () { + return { onProcessRule: onProcessRule }; +}; + +/***/ }), + +/***/ "./node_modules/jss-template/lib/parse.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var semiWithNl = /;\n/; + +/** + * Naive CSS parser. + * - Supports only rule body (no selectors) + * - Requires semicolon and new line after the value (except of last line) + * - No nested rules support + */ + +exports['default'] = function (cssText) { + var style = {}; + var split = cssText.split(semiWithNl); + for (var i = 0; i < split.length; i++) { + var decl = (split[i] || '').trim(); + + if (!decl) continue; + var colonIndex = decl.indexOf(':'); + if (colonIndex === -1) { + (0, _warning2['default'])(false, 'Malformed CSS string "%s"', decl); + continue; + } + var prop = decl.substr(0, colonIndex).trim(); + var value = decl.substr(colonIndex + 1).trim(); + style[prop] = value; + } + return style; +}; + +/***/ }), + +/***/ "./node_modules/jss-vendor-prefixer/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = jssVendorPrefixer; + +var _cssVendor = __webpack_require__("./node_modules/css-vendor/lib/index.js"); + +var vendor = _interopRequireWildcard(_cssVendor); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +/** + * Add vendor prefix to a property name when needed. + * + * @param {Rule} rule + * @api public + */ +function jssVendorPrefixer() { + function onProcessRule(rule) { + if (rule.type === 'keyframes') { + rule.key = '@' + vendor.prefix.css + rule.key.substr(1); + } + } + + function onProcessStyle(style, rule) { + if (rule.type !== 'style') return style; + + for (var prop in style) { + var value = style[prop]; + + var changeProp = false; + var supportedProp = vendor.supportedProperty(prop); + if (supportedProp && supportedProp !== prop) changeProp = true; + + var changeValue = false; + var supportedValue = vendor.supportedValue(supportedProp, value); + if (supportedValue && supportedValue !== value) changeValue = true; + + if (changeProp || changeValue) { + if (changeProp) delete style[prop]; + style[supportedProp || prop] = supportedValue || value; + } + } + + return style; + } + + function onChangeValue(value, prop) { + return vendor.supportedValue(prop, value); + } + + return { onProcessRule: onProcessRule, onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; +} + +/***/ }), + +/***/ "./node_modules/jss/lib/Jss.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); + +var _isInBrowser2 = _interopRequireDefault(_isInBrowser); + +var _StyleSheet = __webpack_require__("./node_modules/jss/lib/StyleSheet.js"); + +var _StyleSheet2 = _interopRequireDefault(_StyleSheet); + +var _PluginsRegistry = __webpack_require__("./node_modules/jss/lib/PluginsRegistry.js"); + +var _PluginsRegistry2 = _interopRequireDefault(_PluginsRegistry); + +var _rules = __webpack_require__("./node_modules/jss/lib/plugins/rules.js"); + +var _rules2 = _interopRequireDefault(_rules); + +var _observables = __webpack_require__("./node_modules/jss/lib/plugins/observables.js"); + +var _observables2 = _interopRequireDefault(_observables); + +var _functions = __webpack_require__("./node_modules/jss/lib/plugins/functions.js"); + +var _functions2 = _interopRequireDefault(_functions); + +var _sheets = __webpack_require__("./node_modules/jss/lib/sheets.js"); + +var _sheets2 = _interopRequireDefault(_sheets); + +var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); + +var _StyleRule2 = _interopRequireDefault(_StyleRule); + +var _createGenerateClassName = __webpack_require__("./node_modules/jss/lib/utils/createGenerateClassName.js"); + +var _createGenerateClassName2 = _interopRequireDefault(_createGenerateClassName); + +var _createRule2 = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); + +var _createRule3 = _interopRequireDefault(_createRule2); + +var _DomRenderer = __webpack_require__("./node_modules/jss/lib/renderers/DomRenderer.js"); + +var _DomRenderer2 = _interopRequireDefault(_DomRenderer); + +var _VirtualRenderer = __webpack_require__("./node_modules/jss/lib/renderers/VirtualRenderer.js"); + +var _VirtualRenderer2 = _interopRequireDefault(_VirtualRenderer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var defaultPlugins = _rules2['default'].concat([_observables2['default'], _functions2['default']]); + +var instanceCounter = 0; + +var Jss = function () { + function Jss(options) { + _classCallCheck(this, Jss); + + this.id = instanceCounter++; + this.version = "9.8.0"; + this.plugins = new _PluginsRegistry2['default'](); + this.options = { + createGenerateClassName: _createGenerateClassName2['default'], + Renderer: _isInBrowser2['default'] ? _DomRenderer2['default'] : _VirtualRenderer2['default'], + plugins: [] + }; + this.generateClassName = (0, _createGenerateClassName2['default'])(); + + // eslint-disable-next-line prefer-spread + this.use.apply(this, defaultPlugins); + this.setup(options); + } + + _createClass(Jss, [{ + key: 'setup', + value: function setup() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + if (options.createGenerateClassName) { + this.options.createGenerateClassName = options.createGenerateClassName; + // $FlowFixMe + this.generateClassName = options.createGenerateClassName(); + } + + if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint; + if (options.virtual || options.Renderer) { + this.options.Renderer = options.Renderer || (options.virtual ? _VirtualRenderer2['default'] : _DomRenderer2['default']); + } + + // eslint-disable-next-line prefer-spread + if (options.plugins) this.use.apply(this, options.plugins); + + return this; + } + + /** + * Create a Style Sheet. + */ + + }, { + key: 'createStyleSheet', + value: function createStyleSheet(styles) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var index = options.index; + if (typeof index !== 'number') { + index = _sheets2['default'].index === 0 ? 0 : _sheets2['default'].index + 1; + } + var sheet = new _StyleSheet2['default'](styles, _extends({}, options, { + jss: this, + generateClassName: options.generateClassName || this.generateClassName, + insertionPoint: this.options.insertionPoint, + Renderer: this.options.Renderer, + index: index + })); + this.plugins.onProcessSheet(sheet); + + return sheet; + } + + /** + * Detach the Style Sheet and remove it from the registry. + */ + + }, { + key: 'removeStyleSheet', + value: function removeStyleSheet(sheet) { + sheet.detach(); + _sheets2['default'].remove(sheet); + return this; + } + + /** + * Create a rule without a Style Sheet. + */ + + }, { + key: 'createRule', + value: function createRule(name) { + var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + // Enable rule without name for inline styles. + if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { + options = style; + style = name; + name = undefined; + } + + // Cast from RuleFactoryOptions to RuleOptions + // https://stackoverflow.com/questions/41328728/force-casting-in-flow + var ruleOptions = options; + + ruleOptions.jss = this; + ruleOptions.Renderer = this.options.Renderer; + if (!ruleOptions.generateClassName) ruleOptions.generateClassName = this.generateClassName; + if (!ruleOptions.classes) ruleOptions.classes = {}; + var rule = (0, _createRule3['default'])(name, style, ruleOptions); + + if (!ruleOptions.selector && rule instanceof _StyleRule2['default']) { + rule.selector = '.' + ruleOptions.generateClassName(rule); + } + + this.plugins.onProcessRule(rule); + + return rule; + } + + /** + * Register plugin. Passed function will be invoked with a rule instance. + */ + + }, { + key: 'use', + value: function use() { + var _this = this; + + for (var _len = arguments.length, plugins = Array(_len), _key = 0; _key < _len; _key++) { + plugins[_key] = arguments[_key]; + } + + plugins.forEach(function (plugin) { + // Avoids applying same plugin twice, at least based on ref. + if (_this.options.plugins.indexOf(plugin) === -1) { + _this.options.plugins.push(plugin); + _this.plugins.use(plugin); + } + }); + + return this; + } + }]); + + return Jss; +}(); + +exports['default'] = Jss; + +/***/ }), + +/***/ "./node_modules/jss/lib/PluginsRegistry.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var PluginsRegistry = function () { + function PluginsRegistry() { + _classCallCheck(this, PluginsRegistry); + + this.hooks = { + onCreateRule: [], + onProcessRule: [], + onProcessStyle: [], + onProcessSheet: [], + onChangeValue: [], + onUpdate: [] + + /** + * Call `onCreateRule` hooks and return an object if returned by a hook. + */ + }; + } + + _createClass(PluginsRegistry, [{ + key: 'onCreateRule', + value: function onCreateRule(name, decl, options) { + for (var i = 0; i < this.hooks.onCreateRule.length; i++) { + var rule = this.hooks.onCreateRule[i](name, decl, options); + if (rule) return rule; + } + return null; + } + + /** + * Call `onProcessRule` hooks. + */ + + }, { + key: 'onProcessRule', + value: function onProcessRule(rule) { + if (rule.isProcessed) return; + var sheet = rule.options.sheet; + + for (var i = 0; i < this.hooks.onProcessRule.length; i++) { + this.hooks.onProcessRule[i](rule, sheet); + } + + // $FlowFixMe + if (rule.style) this.onProcessStyle(rule.style, rule, sheet); + + rule.isProcessed = true; + } + + /** + * Call `onProcessStyle` hooks. + */ + + }, { + key: 'onProcessStyle', + value: function onProcessStyle(style, rule, sheet) { + var nextStyle = style; + + for (var i = 0; i < this.hooks.onProcessStyle.length; i++) { + nextStyle = this.hooks.onProcessStyle[i](nextStyle, rule, sheet); + // $FlowFixMe + rule.style = nextStyle; + } + } + + /** + * Call `onProcessSheet` hooks. + */ + + }, { + key: 'onProcessSheet', + value: function onProcessSheet(sheet) { + for (var i = 0; i < this.hooks.onProcessSheet.length; i++) { + this.hooks.onProcessSheet[i](sheet); + } + } + + /** + * Call `onUpdate` hooks. + */ + + }, { + key: 'onUpdate', + value: function onUpdate(data, rule, sheet) { + for (var i = 0; i < this.hooks.onUpdate.length; i++) { + this.hooks.onUpdate[i](data, rule, sheet); + } + } + + /** + * Call `onChangeValue` hooks. + */ + + }, { + key: 'onChangeValue', + value: function onChangeValue(value, prop, rule) { + var processedValue = value; + for (var i = 0; i < this.hooks.onChangeValue.length; i++) { + processedValue = this.hooks.onChangeValue[i](processedValue, prop, rule); + } + return processedValue; + } + + /** + * Register a plugin. + * If function is passed, it is a shortcut for `{onProcessRule}`. + */ + + }, { + key: 'use', + value: function use(plugin) { + for (var name in plugin) { + if (this.hooks[name]) this.hooks[name].push(plugin[name]);else (0, _warning2['default'])(false, '[JSS] Unknown hook "%s".', name); + } + } + }]); + + return PluginsRegistry; +}(); + +exports['default'] = PluginsRegistry; + +/***/ }), + +/***/ "./node_modules/jss/lib/RuleList.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _createRule = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); + +var _createRule2 = _interopRequireDefault(_createRule); + +var _linkRule = __webpack_require__("./node_modules/jss/lib/utils/linkRule.js"); + +var _linkRule2 = _interopRequireDefault(_linkRule); + +var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); + +var _StyleRule2 = _interopRequireDefault(_StyleRule); + +var _escape = __webpack_require__("./node_modules/jss/lib/utils/escape.js"); + +var _escape2 = _interopRequireDefault(_escape); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Contains rules objects and allows adding/removing etc. + * Is used for e.g. by `StyleSheet` or `ConditionalRule`. + */ +var RuleList = function () { + + // Original styles object. + function RuleList(options) { + _classCallCheck(this, RuleList); + + this.map = {}; + this.raw = {}; + this.index = []; + + this.options = options; + this.classes = options.classes; + } + + /** + * Create and register rule. + * + * Will not render after Style Sheet was rendered the first time. + */ + + + // Used to ensure correct rules order. + + // Rules registry for access by .get() method. + // It contains the same rule registered by name and by selector. + + + _createClass(RuleList, [{ + key: 'add', + value: function add(name, decl, options) { + var _options = this.options, + parent = _options.parent, + sheet = _options.sheet, + jss = _options.jss, + Renderer = _options.Renderer, + generateClassName = _options.generateClassName; + + + options = _extends({ + classes: this.classes, + parent: parent, + sheet: sheet, + jss: jss, + Renderer: Renderer, + generateClassName: generateClassName + }, options); + + if (!options.selector && this.classes[name]) { + options.selector = '.' + (0, _escape2['default'])(this.classes[name]); + } + + this.raw[name] = decl; + + var rule = (0, _createRule2['default'])(name, decl, options); + + var className = void 0; + + if (!options.selector && rule instanceof _StyleRule2['default']) { + className = generateClassName(rule, sheet); + rule.selector = '.' + (0, _escape2['default'])(className); + } + + this.register(rule, className); + + var index = options.index === undefined ? this.index.length : options.index; + this.index.splice(index, 0, rule); + + return rule; + } + + /** + * Get a rule. + */ + + }, { + key: 'get', + value: function get(name) { + return this.map[name]; + } + + /** + * Delete a rule. + */ + + }, { + key: 'remove', + value: function remove(rule) { + this.unregister(rule); + this.index.splice(this.indexOf(rule), 1); + } + + /** + * Get index of a rule. + */ + + }, { + key: 'indexOf', + value: function indexOf(rule) { + return this.index.indexOf(rule); + } + + /** + * Run `onProcessRule()` plugins on every rule. + */ + + }, { + key: 'process', + value: function process() { + var plugins = this.options.jss.plugins; + // We need to clone array because if we modify the index somewhere else during a loop + // we end up with very hard-to-track-down side effects. + + this.index.slice(0).forEach(plugins.onProcessRule, plugins); + } + + /** + * Register a rule in `.map` and `.classes` maps. + */ + + }, { + key: 'register', + value: function register(rule, className) { + this.map[rule.key] = rule; + if (rule instanceof _StyleRule2['default']) { + this.map[rule.selector] = rule; + if (className) this.classes[rule.key] = className; + } + } + + /** + * Unregister a rule. + */ + + }, { + key: 'unregister', + value: function unregister(rule) { + delete this.map[rule.key]; + if (rule instanceof _StyleRule2['default']) { + delete this.map[rule.selector]; + delete this.classes[rule.key]; + } + } + + /** + * Update the function values with a new data. + */ + + }, { + key: 'update', + value: function update(name, data) { + var _options2 = this.options, + plugins = _options2.jss.plugins, + sheet = _options2.sheet; + + if (typeof name === 'string') { + plugins.onUpdate(data, this.get(name), sheet); + return; + } + + for (var index = 0; index < this.index.length; index++) { + plugins.onUpdate(name, this.index[index], sheet); + } + } + + /** + * Link renderable rules with CSSRuleList. + */ + + }, { + key: 'link', + value: function link(cssRules) { + var map = this.options.sheet.renderer.getUnescapedKeysMap(this.index); + + for (var i = 0; i < cssRules.length; i++) { + var cssRule = cssRules[i]; + var _key = this.options.sheet.renderer.getKey(cssRule); + if (map[_key]) _key = map[_key]; + var rule = this.map[_key]; + if (rule) (0, _linkRule2['default'])(rule, cssRule); + } + } + + /** + * Convert rules to a CSS string. + */ + + }, { + key: 'toString', + value: function toString(options) { + var str = ''; + var sheet = this.options.sheet; + + var link = sheet ? sheet.options.link : false; + + for (var index = 0; index < this.index.length; index++) { + var rule = this.index[index]; + var css = rule.toString(options); + + // No need to render an empty rule. + if (!css && !link) continue; + + if (str) str += '\n'; + str += css; + } + + return str; + } + }]); + + return RuleList; +}(); + +exports['default'] = RuleList; + +/***/ }), + +/***/ "./node_modules/jss/lib/SheetsManager.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * SheetsManager is like a WeakMap which is designed to count StyleSheet + * instances and attach/detach automatically. + */ +var SheetsManager = function () { + function SheetsManager() { + _classCallCheck(this, SheetsManager); + + this.sheets = []; + this.refs = []; + this.keys = []; + } + + _createClass(SheetsManager, [{ + key: 'get', + value: function get(key) { + var index = this.keys.indexOf(key); + return this.sheets[index]; + } + }, { + key: 'add', + value: function add(key, sheet) { + var sheets = this.sheets, + refs = this.refs, + keys = this.keys; + + var index = sheets.indexOf(sheet); + + if (index !== -1) return index; + + sheets.push(sheet); + refs.push(0); + keys.push(key); + + return sheets.length - 1; + } + }, { + key: 'manage', + value: function manage(key) { + var index = this.keys.indexOf(key); + var sheet = this.sheets[index]; + if (this.refs[index] === 0) sheet.attach(); + this.refs[index]++; + if (!this.keys[index]) this.keys.splice(index, 0, key); + return sheet; + } + }, { + key: 'unmanage', + value: function unmanage(key) { + var index = this.keys.indexOf(key); + if (index === -1) { + // eslint-ignore-next-line no-console + (0, _warning2['default'])(false, "SheetsManager: can't find sheet to unmanage"); + return; + } + if (this.refs[index] > 0) { + this.refs[index]--; + if (this.refs[index] === 0) this.sheets[index].detach(); + } + } + }, { + key: 'size', + get: function get() { + return this.keys.length; + } + }]); + + return SheetsManager; +}(); + +exports['default'] = SheetsManager; + +/***/ }), + +/***/ "./node_modules/jss/lib/SheetsRegistry.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Sheets registry to access them all at one place. + */ +var SheetsRegistry = function () { + function SheetsRegistry() { + _classCallCheck(this, SheetsRegistry); + + this.registry = []; + } + + _createClass(SheetsRegistry, [{ + key: 'add', + + + /** + * Register a Style Sheet. + */ + value: function add(sheet) { + var registry = this.registry; + var index = sheet.options.index; + + + if (registry.indexOf(sheet) !== -1) return; + + if (registry.length === 0 || index >= this.index) { + registry.push(sheet); + return; + } + + // Find a position. + for (var i = 0; i < registry.length; i++) { + if (registry[i].options.index > index) { + registry.splice(i, 0, sheet); + return; + } + } + } + + /** + * Reset the registry. + */ + + }, { + key: 'reset', + value: function reset() { + this.registry = []; + } + + /** + * Remove a Style Sheet. + */ + + }, { + key: 'remove', + value: function remove(sheet) { + var index = this.registry.indexOf(sheet); + this.registry.splice(index, 1); + } + + /** + * Convert all attached sheets to a CSS string. + */ + + }, { + key: 'toString', + value: function toString(options) { + return this.registry.filter(function (sheet) { + return sheet.attached; + }).map(function (sheet) { + return sheet.toString(options); + }).join('\n'); + } + }, { + key: 'index', + + + /** + * Current highest index number. + */ + get: function get() { + return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index; + } + }]); + + return SheetsRegistry; +}(); + +exports['default'] = SheetsRegistry; + +/***/ }), + +/***/ "./node_modules/jss/lib/StyleSheet.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _linkRule = __webpack_require__("./node_modules/jss/lib/utils/linkRule.js"); + +var _linkRule2 = _interopRequireDefault(_linkRule); + +var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); + +var _RuleList2 = _interopRequireDefault(_RuleList); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var StyleSheet = function () { + function StyleSheet(styles, options) { + _classCallCheck(this, StyleSheet); + + this.attached = false; + this.deployed = false; + this.linked = false; + this.classes = {}; + this.options = _extends({}, options, { + sheet: this, + parent: this, + classes: this.classes + }); + this.renderer = new options.Renderer(this); + this.rules = new _RuleList2['default'](this.options); + + for (var name in styles) { + this.rules.add(name, styles[name]); + } + + this.rules.process(); + } + + /** + * Attach renderable to the render tree. + */ + + + _createClass(StyleSheet, [{ + key: 'attach', + value: function attach() { + if (this.attached) return this; + if (!this.deployed) this.deploy(); + this.renderer.attach(); + if (!this.linked && this.options.link) this.link(); + this.attached = true; + return this; + } + + /** + * Remove renderable from render tree. + */ + + }, { + key: 'detach', + value: function detach() { + if (!this.attached) return this; + this.renderer.detach(); + this.attached = false; + return this; + } + + /** + * Add a rule to the current stylesheet. + * Will insert a rule also after the stylesheet has been rendered first time. + */ + + }, { + key: 'addRule', + value: function addRule(name, decl, options) { + var queue = this.queue; + + // Plugins can create rules. + // In order to preserve the right order, we need to queue all `.addRule` calls, + // which happen after the first `rules.add()` call. + + if (this.attached && !queue) this.queue = []; + + var rule = this.rules.add(name, decl, options); + this.options.jss.plugins.onProcessRule(rule); + + if (this.attached) { + if (!this.deployed) return rule; + // Don't insert rule directly if there is no stringified version yet. + // It will be inserted all together when .attach is called. + if (queue) queue.push(rule);else { + this.insertRule(rule); + if (this.queue) { + this.queue.forEach(this.insertRule, this); + this.queue = undefined; + } + } + return rule; + } + + // We can't add rules to a detached style node. + // We will redeploy the sheet once user will attach it. + this.deployed = false; + + return rule; + } + + /** + * Insert rule into the StyleSheet + */ + + }, { + key: 'insertRule', + value: function insertRule(rule) { + var renderable = this.renderer.insertRule(rule); + if (renderable && this.options.link) (0, _linkRule2['default'])(rule, renderable); + } + + /** + * Create and add rules. + * Will render also after Style Sheet was rendered the first time. + */ + + }, { + key: 'addRules', + value: function addRules(styles, options) { + var added = []; + for (var name in styles) { + added.push(this.addRule(name, styles[name], options)); + } + return added; + } + + /** + * Get a rule by name. + */ + + }, { + key: 'getRule', + value: function getRule(name) { + return this.rules.get(name); + } + + /** + * Delete a rule by name. + * Returns `true`: if rule has been deleted from the DOM. + */ + + }, { + key: 'deleteRule', + value: function deleteRule(name) { + var rule = this.rules.get(name); + + if (!rule) return false; + + this.rules.remove(rule); + + if (this.attached && rule.renderable) { + return this.renderer.deleteRule(rule.renderable); + } + + return true; + } + + /** + * Get index of a rule. + */ + + }, { + key: 'indexOf', + value: function indexOf(rule) { + return this.rules.indexOf(rule); + } + + /** + * Deploy pure CSS string to a renderable. + */ + + }, { + key: 'deploy', + value: function deploy() { + this.renderer.deploy(); + this.deployed = true; + return this; + } + + /** + * Link renderable CSS rules from sheet with their corresponding models. + */ + + }, { + key: 'link', + value: function link() { + var cssRules = this.renderer.getRules(); + + // Is undefined when VirtualRenderer is used. + if (cssRules) this.rules.link(cssRules); + this.linked = true; + return this; + } + + /** + * Update the function values with a new data. + */ + + }, { + key: 'update', + value: function update(name, data) { + this.rules.update(name, data); + return this; + } + + /** + * Convert rules to a CSS string. + */ + + }, { + key: 'toString', + value: function toString(options) { + return this.rules.toString(options); + } + }]); + + return StyleSheet; +}(); + +exports['default'] = StyleSheet; + +/***/ }), + +/***/ "./node_modules/jss/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.create = exports.createGenerateClassName = exports.sheets = exports.RuleList = exports.SheetsManager = exports.SheetsRegistry = exports.toCssValue = exports.getDynamicStyles = undefined; + +var _getDynamicStyles = __webpack_require__("./node_modules/jss/lib/utils/getDynamicStyles.js"); + +Object.defineProperty(exports, 'getDynamicStyles', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_getDynamicStyles)['default']; + } +}); + +var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); + +Object.defineProperty(exports, 'toCssValue', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_toCssValue)['default']; + } +}); + +var _SheetsRegistry = __webpack_require__("./node_modules/jss/lib/SheetsRegistry.js"); + +Object.defineProperty(exports, 'SheetsRegistry', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_SheetsRegistry)['default']; + } +}); + +var _SheetsManager = __webpack_require__("./node_modules/jss/lib/SheetsManager.js"); + +Object.defineProperty(exports, 'SheetsManager', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_SheetsManager)['default']; + } +}); + +var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); + +Object.defineProperty(exports, 'RuleList', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_RuleList)['default']; + } +}); + +var _sheets = __webpack_require__("./node_modules/jss/lib/sheets.js"); + +Object.defineProperty(exports, 'sheets', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_sheets)['default']; + } +}); + +var _createGenerateClassName = __webpack_require__("./node_modules/jss/lib/utils/createGenerateClassName.js"); + +Object.defineProperty(exports, 'createGenerateClassName', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_createGenerateClassName)['default']; + } +}); + +var _Jss = __webpack_require__("./node_modules/jss/lib/Jss.js"); + +var _Jss2 = _interopRequireDefault(_Jss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Creates a new instance of Jss. + */ +var create = exports.create = function create(options) { + return new _Jss2['default'](options); +}; + +/** + * A global Jss instance. + */ +exports['default'] = create(); + +/***/ }), + +/***/ "./node_modules/jss/lib/plugins/functions.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); + +var _RuleList2 = _interopRequireDefault(_RuleList); + +var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); + +var _StyleRule2 = _interopRequireDefault(_StyleRule); + +var _createRule = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); + +var _createRule2 = _interopRequireDefault(_createRule); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// A symbol replacement. +var now = Date.now(); + +var fnValuesNs = 'fnValues' + now; +var fnStyleNs = 'fnStyle' + ++now; + +exports['default'] = { + onCreateRule: function onCreateRule(name, decl, options) { + if (typeof decl !== 'function') return null; + var rule = (0, _createRule2['default'])(name, {}, options); + rule[fnStyleNs] = decl; + return rule; + }, + onProcessStyle: function onProcessStyle(style, rule) { + var fn = {}; + for (var prop in style) { + var value = style[prop]; + if (typeof value !== 'function') continue; + delete style[prop]; + fn[prop] = value; + } + rule = rule; + rule[fnValuesNs] = fn; + return style; + }, + onUpdate: function onUpdate(data, rule) { + // It is a rules container like for e.g. ConditionalRule. + if (rule.rules instanceof _RuleList2['default']) { + rule.rules.update(data); + return; + } + if (!(rule instanceof _StyleRule2['default'])) return; + + rule = rule; + + // If we have a fn values map, it is a rule with function values. + if (rule[fnValuesNs]) { + for (var prop in rule[fnValuesNs]) { + rule.prop(prop, rule[fnValuesNs][prop](data)); + } + } + + rule = rule; + + var fnStyle = rule[fnStyleNs]; + + // If we have a style function, the entire rule is dynamic and style object + // will be returned from that function. + if (fnStyle) { + var style = fnStyle(data); + for (var _prop in style) { + rule.prop(_prop, style[_prop]); + } + } + } +}; + +/***/ }), + +/***/ "./node_modules/jss/lib/plugins/observables.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); + +var _StyleRule2 = _interopRequireDefault(_StyleRule); + +var _createRule = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); + +var _createRule2 = _interopRequireDefault(_createRule); + +var _isObservable = __webpack_require__("./node_modules/jss/lib/utils/isObservable.js"); + +var _isObservable2 = _interopRequireDefault(_isObservable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +exports['default'] = { + onCreateRule: function onCreateRule(name, decl, options) { + if (!(0, _isObservable2['default'])(decl)) return null; + + // Cast `decl` to `Observable`, since it passed the type guard. + var style$ = decl; + + var rule = (0, _createRule2['default'])(name, {}, options); + + // TODO + // Call `stream.subscribe()` returns a subscription, which should be explicitly + // unsubscribed from when we know this sheet is no longer needed. + style$.subscribe(function (style) { + for (var prop in style) { + rule.prop(prop, style[prop]); + } + }); + + return rule; + }, + onProcessRule: function onProcessRule(rule) { + if (!(rule instanceof _StyleRule2['default'])) return; + var styleRule = rule; + var style = styleRule.style; + + var _loop = function _loop(prop) { + var value = style[prop]; + if (!(0, _isObservable2['default'])(value)) return 'continue'; + delete style[prop]; + value.subscribe({ + next: function next(nextValue) { + styleRule.prop(prop, nextValue); + } + }); + }; + + for (var prop in style) { + var _ret = _loop(prop); + + if (_ret === 'continue') continue; + } + } +}; + +/***/ }), + +/***/ "./node_modules/jss/lib/plugins/rules.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SimpleRule = __webpack_require__("./node_modules/jss/lib/rules/SimpleRule.js"); + +var _SimpleRule2 = _interopRequireDefault(_SimpleRule); + +var _KeyframesRule = __webpack_require__("./node_modules/jss/lib/rules/KeyframesRule.js"); + +var _KeyframesRule2 = _interopRequireDefault(_KeyframesRule); + +var _ConditionalRule = __webpack_require__("./node_modules/jss/lib/rules/ConditionalRule.js"); + +var _ConditionalRule2 = _interopRequireDefault(_ConditionalRule); + +var _FontFaceRule = __webpack_require__("./node_modules/jss/lib/rules/FontFaceRule.js"); + +var _FontFaceRule2 = _interopRequireDefault(_FontFaceRule); + +var _ViewportRule = __webpack_require__("./node_modules/jss/lib/rules/ViewportRule.js"); + +var _ViewportRule2 = _interopRequireDefault(_ViewportRule); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var classes = { + '@charset': _SimpleRule2['default'], + '@import': _SimpleRule2['default'], + '@namespace': _SimpleRule2['default'], + '@keyframes': _KeyframesRule2['default'], + '@media': _ConditionalRule2['default'], + '@supports': _ConditionalRule2['default'], + '@font-face': _FontFaceRule2['default'], + '@viewport': _ViewportRule2['default'], + '@-ms-viewport': _ViewportRule2['default'] + + /** + * Generate plugins which will register all rules. + */ +}; +exports['default'] = Object.keys(classes).map(function (key) { + // https://jsperf.com/indexof-vs-substr-vs-regex-at-the-beginning-3 + var re = new RegExp('^' + key); + var onCreateRule = function onCreateRule(name, decl, options) { + return re.test(name) ? new classes[key](name, decl, options) : null; + }; + return { onCreateRule: onCreateRule }; +}); + +/***/ }), + +/***/ "./node_modules/jss/lib/renderers/DomRenderer.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _sheets = __webpack_require__("./node_modules/jss/lib/sheets.js"); + +var _sheets2 = _interopRequireDefault(_sheets); + +var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); + +var _StyleRule2 = _interopRequireDefault(_StyleRule); + +var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); + +var _toCssValue2 = _interopRequireDefault(_toCssValue); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Cache the value from the first time a function is called. + */ +var memoize = function memoize(fn) { + var value = void 0; + return function () { + if (!value) value = fn(); + return value; + }; +}; + +/** + * Get a style property value. + */ +function getPropertyValue(cssRule, prop) { + try { + return cssRule.style.getPropertyValue(prop); + } catch (err) { + // IE may throw if property is unknown. + return ''; + } +} + +/** + * Set a style property. + */ +function setProperty(cssRule, prop, value) { + try { + var cssValue = value; + + if (Array.isArray(value)) { + cssValue = (0, _toCssValue2['default'])(value, true); + + if (value[value.length - 1] === '!important') { + cssRule.style.setProperty(prop, cssValue, 'important'); + return true; + } + } + + cssRule.style.setProperty(prop, cssValue); + } catch (err) { + // IE may throw if property is unknown. + return false; + } + return true; +} + +/** + * Remove a style property. + */ +function removeProperty(cssRule, prop) { + try { + cssRule.style.removeProperty(prop); + } catch (err) { + (0, _warning2['default'])(false, '[JSS] DOMException "%s" was thrown. Tried to remove property "%s".', err.message, prop); + } +} + +var CSSRuleTypes = { + STYLE_RULE: 1, + KEYFRAMES_RULE: 7 + + /** + * Get the CSS Rule key. + */ + +};var getKey = function () { + var extractKey = function extractKey(cssText) { + var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return cssText.substr(from, cssText.indexOf('{') - 1); + }; + + return function (cssRule) { + if (cssRule.type === CSSRuleTypes.STYLE_RULE) return cssRule.selectorText; + if (cssRule.type === CSSRuleTypes.KEYFRAMES_RULE) { + var name = cssRule.name; + + if (name) return '@keyframes ' + name; + + // There is no rule.name in the following browsers: + // - IE 9 + // - Safari 7.1.8 + // - Mobile Safari 9.0.0 + var cssText = cssRule.cssText; + + return '@' + extractKey(cssText, cssText.indexOf('keyframes')); + } + + // Conditionals. + return extractKey(cssRule.cssText); + }; +}(); + +/** + * Set the selector. + */ +function setSelector(cssRule, selectorText) { + cssRule.selectorText = selectorText; + + // Return false if setter was not successful. + // Currently works in chrome only. + return cssRule.selectorText === selectorText; +} + +/** + * Gets the `head` element upon the first call and caches it. + */ +var getHead = memoize(function () { + return document.head || document.getElementsByTagName('head')[0]; +}); + +/** + * Gets a map of rule keys, where the property is an unescaped key and value + * is a potentially escaped one. + * It is used to identify CSS rules and the corresponding JSS rules. As an identifier + * for CSSStyleRule we normally use `selectorText`. Though if original selector text + * contains escaped code points e.g. `:not(#\\20)`, CSSOM will compile it to `:not(# )` + * and so CSS rule's `selectorText` won't match JSS rule selector. + * + * https://www.w3.org/International/questions/qa-escapes#cssescapes + */ +var getUnescapedKeysMap = function () { + var style = void 0; + var isAttached = false; + + return function (rules) { + var map = {}; + // https://github.com/facebook/flow/issues/2696 + if (!style) style = document.createElement('style'); + for (var i = 0; i < rules.length; i++) { + var rule = rules[i]; + if (!(rule instanceof _StyleRule2['default'])) continue; + var selector = rule.selector; + // Only unescape selector over CSSOM if it contains a back slash. + + if (selector && selector.indexOf('\\') !== -1) { + // Lazilly attach when needed. + if (!isAttached) { + getHead().appendChild(style); + isAttached = true; + } + style.textContent = selector + ' {}'; + var _style = style, + sheet = _style.sheet; + + if (sheet) { + var cssRules = sheet.cssRules; + + if (cssRules) map[cssRules[0].selectorText] = rule.key; + } + } + } + if (isAttached) { + getHead().removeChild(style); + isAttached = false; + } + return map; + }; +}(); + +/** + * Find attached sheet with an index higher than the passed one. + */ +function findHigherSheet(registry, options) { + for (var i = 0; i < registry.length; i++) { + var sheet = registry[i]; + if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) { + return sheet; + } + } + return null; +} + +/** + * Find attached sheet with the highest index. + */ +function findHighestSheet(registry, options) { + for (var i = registry.length - 1; i >= 0; i--) { + var sheet = registry[i]; + if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) { + return sheet; + } + } + return null; +} + +/** + * Find a comment with "jss" inside. + */ +function findCommentNode(text) { + var head = getHead(); + for (var i = 0; i < head.childNodes.length; i++) { + var node = head.childNodes[i]; + if (node.nodeType === 8 && node.nodeValue.trim() === text) { + return node; + } + } + return null; +} + +/** + * Find a node before which we can insert the sheet. + */ +function findPrevNode(options) { + var registry = _sheets2['default'].registry; + + + if (registry.length > 0) { + // Try to insert before the next higher sheet. + var sheet = findHigherSheet(registry, options); + if (sheet) return sheet.renderer.element; + + // Otherwise insert after the last attached. + sheet = findHighestSheet(registry, options); + if (sheet) return sheet.renderer.element.nextElementSibling; + } + + // Try to find a comment placeholder if registry is empty. + var insertionPoint = options.insertionPoint; + + if (insertionPoint && typeof insertionPoint === 'string') { + var comment = findCommentNode(insertionPoint); + if (comment) return comment.nextSibling; + // If user specifies an insertion point and it can't be found in the document - + // bad specificity issues may appear. + (0, _warning2['default'])(insertionPoint === 'jss', '[JSS] Insertion point "%s" not found.', insertionPoint); + } + + return null; +} + +/** + * Insert style element into the DOM. + */ +function insertStyle(style, options) { + var insertionPoint = options.insertionPoint; + + var prevNode = findPrevNode(options); + + if (prevNode) { + var parentNode = prevNode.parentNode; + + if (parentNode) parentNode.insertBefore(style, prevNode); + return; + } + + // Works with iframes and any node types. + if (insertionPoint && typeof insertionPoint.nodeType === 'number') { + // https://stackoverflow.com/questions/41328728/force-casting-in-flow + var insertionPointElement = insertionPoint; + var _parentNode = insertionPointElement.parentNode; + + if (_parentNode) _parentNode.insertBefore(style, insertionPointElement.nextSibling);else (0, _warning2['default'])(false, '[JSS] Insertion point is not in the DOM.'); + return; + } + + getHead().insertBefore(style, prevNode); +} + +/** + * Read jss nonce setting from the page if the user has set it. + */ +var getNonce = memoize(function () { + var node = document.querySelector('meta[property="csp-nonce"]'); + return node ? node.getAttribute('content') : null; +}); + +var DomRenderer = function () { + function DomRenderer(sheet) { + _classCallCheck(this, DomRenderer); + + this.getPropertyValue = getPropertyValue; + this.setProperty = setProperty; + this.removeProperty = removeProperty; + this.setSelector = setSelector; + this.getKey = getKey; + this.getUnescapedKeysMap = getUnescapedKeysMap; + this.hasInsertedRules = false; + + // There is no sheet when the renderer is used from a standalone StyleRule. + if (sheet) _sheets2['default'].add(sheet); + + this.sheet = sheet; + + var _ref = this.sheet ? this.sheet.options : {}, + media = _ref.media, + meta = _ref.meta, + element = _ref.element; + + this.element = element || document.createElement('style'); + this.element.type = 'text/css'; + this.element.setAttribute('data-jss', ''); + if (media) this.element.setAttribute('media', media); + if (meta) this.element.setAttribute('data-meta', meta); + var nonce = getNonce(); + if (nonce) this.element.setAttribute('nonce', nonce); + } + + /** + * Insert style element into render tree. + */ + + + // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696 + + + _createClass(DomRenderer, [{ + key: 'attach', + value: function attach() { + // In the case the element node is external and it is already in the DOM. + if (this.element.parentNode || !this.sheet) return; + + // When rules are inserted using `insertRule` API, after `sheet.detach().attach()` + // browsers remove those rules. + // TODO figure out if its a bug and if it is known. + // Workaround is to redeploy the sheet before attaching as a string. + if (this.hasInsertedRules) { + this.deploy(); + this.hasInsertedRules = false; + } + + insertStyle(this.element, this.sheet.options); + } + + /** + * Remove style element from render tree. + */ + + }, { + key: 'detach', + value: function detach() { + this.element.parentNode.removeChild(this.element); + } + + /** + * Inject CSS string into element. + */ + + }, { + key: 'deploy', + value: function deploy() { + if (!this.sheet) return; + this.element.textContent = '\n' + this.sheet.toString() + '\n'; + } + + /** + * Insert a rule into element. + */ + + }, { + key: 'insertRule', + value: function insertRule(rule, index) { + var sheet = this.element.sheet; + var cssRules = sheet.cssRules; + + var str = rule.toString(); + if (!index) index = cssRules.length; + + if (!str) return false; + + try { + sheet.insertRule(str, index); + } catch (err) { + (0, _warning2['default'])(false, '[JSS] Can not insert an unsupported rule \n\r%s', rule); + return false; + } + this.hasInsertedRules = true; + + return cssRules[index]; + } + + /** + * Delete a rule. + */ + + }, { + key: 'deleteRule', + value: function deleteRule(cssRule) { + var sheet = this.element.sheet; + + var index = this.indexOf(cssRule); + if (index === -1) return false; + sheet.deleteRule(index); + return true; + } + + /** + * Get index of a CSS Rule. + */ + + }, { + key: 'indexOf', + value: function indexOf(cssRule) { + var cssRules = this.element.sheet.cssRules; + + for (var _index = 0; _index < cssRules.length; _index++) { + if (cssRule === cssRules[_index]) return _index; + } + return -1; + } + + /** + * Generate a new CSS rule and replace the existing one. + */ + + }, { + key: 'replaceRule', + value: function replaceRule(cssRule, rule) { + var index = this.indexOf(cssRule); + var newCssRule = this.insertRule(rule, index); + this.element.sheet.deleteRule(index); + return newCssRule; + } + + /** + * Get all rules elements. + */ + + }, { + key: 'getRules', + value: function getRules() { + return this.element.sheet.cssRules; + } + }]); + + return DomRenderer; +}(); + +exports['default'] = DomRenderer; + +/***/ }), + +/***/ "./node_modules/jss/lib/renderers/VirtualRenderer.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* eslint-disable class-methods-use-this */ + +/** + * Rendering backend to do nothing in nodejs. + */ +var VirtualRenderer = function () { + function VirtualRenderer() { + _classCallCheck(this, VirtualRenderer); + } + + _createClass(VirtualRenderer, [{ + key: 'setProperty', + value: function setProperty() { + return true; + } + }, { + key: 'getPropertyValue', + value: function getPropertyValue() { + return ''; + } + }, { + key: 'removeProperty', + value: function removeProperty() {} + }, { + key: 'setSelector', + value: function setSelector() { + return true; + } + }, { + key: 'getKey', + value: function getKey() { + return ''; + } + }, { + key: 'attach', + value: function attach() {} + }, { + key: 'detach', + value: function detach() {} + }, { + key: 'deploy', + value: function deploy() {} + }, { + key: 'insertRule', + value: function insertRule() { + return false; + } + }, { + key: 'deleteRule', + value: function deleteRule() { + return true; + } + }, { + key: 'replaceRule', + value: function replaceRule() { + return false; + } + }, { + key: 'getRules', + value: function getRules() {} + }, { + key: 'indexOf', + value: function indexOf() { + return -1; + } + }]); + + return VirtualRenderer; +}(); + +exports['default'] = VirtualRenderer; + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/ConditionalRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); + +var _RuleList2 = _interopRequireDefault(_RuleList); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Conditional rule for @media, @supports + */ +var ConditionalRule = function () { + function ConditionalRule(key, styles, options) { + _classCallCheck(this, ConditionalRule); + + this.type = 'conditional'; + this.isProcessed = false; + + this.key = key; + this.options = options; + this.rules = new _RuleList2['default'](_extends({}, options, { parent: this })); + + for (var name in styles) { + this.rules.add(name, styles[name]); + } + + this.rules.process(); + } + + /** + * Get a rule. + */ + + + _createClass(ConditionalRule, [{ + key: 'getRule', + value: function getRule(name) { + return this.rules.get(name); + } + + /** + * Get index of a rule. + */ + + }, { + key: 'indexOf', + value: function indexOf(rule) { + return this.rules.indexOf(rule); + } + + /** + * Create and register rule, run plugins. + */ + + }, { + key: 'addRule', + value: function addRule(name, style, options) { + var rule = this.rules.add(name, style, options); + this.options.jss.plugins.onProcessRule(rule); + return rule; + } + + /** + * Generates a CSS string. + */ + + }, { + key: 'toString', + value: function toString() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 }; + + var inner = this.rules.toString(options); + return inner ? this.key + ' {\n' + inner + '\n}' : ''; + } + }]); + + return ConditionalRule; +}(); + +exports['default'] = ConditionalRule; + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/FontFaceRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _toCss = __webpack_require__("./node_modules/jss/lib/utils/toCss.js"); + +var _toCss2 = _interopRequireDefault(_toCss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var FontFaceRule = function () { + function FontFaceRule(key, style, options) { + _classCallCheck(this, FontFaceRule); + + this.type = 'font-face'; + this.isProcessed = false; + + this.key = key; + this.style = style; + this.options = options; + } + + /** + * Generates a CSS string. + */ + + + _createClass(FontFaceRule, [{ + key: 'toString', + value: function toString(options) { + if (Array.isArray(this.style)) { + var str = ''; + for (var index = 0; index < this.style.length; index++) { + str += (0, _toCss2['default'])(this.key, this.style[index]); + if (this.style[index + 1]) str += '\n'; + } + return str; + } + + return (0, _toCss2['default'])(this.key, this.style, options); + } + }]); + + return FontFaceRule; +}(); + +exports['default'] = FontFaceRule; + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/KeyframesRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); + +var _RuleList2 = _interopRequireDefault(_RuleList); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Rule for @keyframes + */ +var KeyframesRule = function () { + function KeyframesRule(key, frames, options) { + _classCallCheck(this, KeyframesRule); + + this.type = 'keyframes'; + this.isProcessed = false; + + this.key = key; + this.options = options; + this.rules = new _RuleList2['default'](_extends({}, options, { parent: this })); + + for (var name in frames) { + this.rules.add(name, frames[name], _extends({}, this.options, { + parent: this, + selector: name + })); + } + + this.rules.process(); + } + + /** + * Generates a CSS string. + */ + + + _createClass(KeyframesRule, [{ + key: 'toString', + value: function toString() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 }; + + var inner = this.rules.toString(options); + if (inner) inner += '\n'; + return this.key + ' {\n' + inner + '}'; + } + }]); + + return KeyframesRule; +}(); + +exports['default'] = KeyframesRule; + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/SimpleRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var SimpleRule = function () { + function SimpleRule(key, value, options) { + _classCallCheck(this, SimpleRule); + + this.type = 'simple'; + this.isProcessed = false; + + this.key = key; + this.value = value; + this.options = options; + } + + /** + * Generates a CSS string. + */ + // eslint-disable-next-line no-unused-vars + + + _createClass(SimpleRule, [{ + key: 'toString', + value: function toString(options) { + if (Array.isArray(this.value)) { + var str = ''; + for (var index = 0; index < this.value.length; index++) { + str += this.key + ' ' + this.value[index] + ';'; + if (this.value[index + 1]) str += '\n'; + } + return str; + } + + return this.key + ' ' + this.value + ';'; + } + }]); + + return SimpleRule; +}(); + +exports['default'] = SimpleRule; + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/StyleRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _toCss = __webpack_require__("./node_modules/jss/lib/utils/toCss.js"); + +var _toCss2 = _interopRequireDefault(_toCss); + +var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); + +var _toCssValue2 = _interopRequireDefault(_toCssValue); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var StyleRule = function () { + function StyleRule(key, style, options) { + _classCallCheck(this, StyleRule); + + this.type = 'style'; + this.isProcessed = false; + var sheet = options.sheet, + Renderer = options.Renderer, + selector = options.selector; + + this.key = key; + this.options = options; + this.style = style; + if (selector) this.selectorText = selector; + this.renderer = sheet ? sheet.renderer : new Renderer(); + } + + /** + * Set selector string. + * Attention: use this with caution. Most browsers didn't implement + * selectorText setter, so this may result in rerendering of entire Style Sheet. + */ + + + _createClass(StyleRule, [{ + key: 'prop', + + + /** + * Get or set a style property. + */ + value: function prop(name, value) { + // It's a getter. + if (value === undefined) return this.style[name]; + + // Don't do anything if the value has not changed. + if (this.style[name] === value) return this; + + value = this.options.jss.plugins.onChangeValue(value, name, this); + + var isEmpty = value == null || value === false; + var isDefined = name in this.style; + + // Value is empty and wasn't defined before. + if (isEmpty && !isDefined) return this; + + // We are going to remove this value. + var remove = isEmpty && isDefined; + + if (remove) delete this.style[name];else this.style[name] = value; + + // Renderable is defined if StyleSheet option `link` is true. + if (this.renderable) { + if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, value); + return this; + } + + var sheet = this.options.sheet; + + if (sheet && sheet.attached) { + (0, _warning2['default'])(false, 'Rule is not linked. Missing sheet option "link: true".'); + } + return this; + } + + /** + * Apply rule to an element inline. + */ + + }, { + key: 'applyTo', + value: function applyTo(renderable) { + var json = this.toJSON(); + for (var prop in json) { + this.renderer.setProperty(renderable, prop, json[prop]); + }return this; + } + + /** + * Returns JSON representation of the rule. + * Fallbacks are not supported. + * Useful for inline styles. + */ + + }, { + key: 'toJSON', + value: function toJSON() { + var json = {}; + for (var prop in this.style) { + var value = this.style[prop]; + if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = (0, _toCssValue2['default'])(value); + } + return json; + } + + /** + * Generates a CSS string. + */ + + }, { + key: 'toString', + value: function toString(options) { + var sheet = this.options.sheet; + + var link = sheet ? sheet.options.link : false; + var opts = link ? _extends({}, options, { allowEmpty: true }) : options; + return (0, _toCss2['default'])(this.selector, this.style, opts); + } + }, { + key: 'selector', + set: function set(selector) { + if (selector === this.selectorText) return; + + this.selectorText = selector; + + if (!this.renderable) return; + + var hasChanged = this.renderer.setSelector(this.renderable, selector); + + // If selector setter is not implemented, rerender the rule. + if (!hasChanged && this.renderable) { + var renderable = this.renderer.replaceRule(this.renderable, this); + if (renderable) this.renderable = renderable; + } + } + + /** + * Get selector string. + */ + , + get: function get() { + return this.selectorText; + } + }]); + + return StyleRule; +}(); + +exports['default'] = StyleRule; + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/ViewportRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _toCss = __webpack_require__("./node_modules/jss/lib/utils/toCss.js"); + +var _toCss2 = _interopRequireDefault(_toCss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var ViewportRule = function () { + function ViewportRule(key, style, options) { + _classCallCheck(this, ViewportRule); + + this.type = 'viewport'; + this.isProcessed = false; + + this.key = key; + this.style = style; + this.options = options; + } + + /** + * Generates a CSS string. + */ + + + _createClass(ViewportRule, [{ + key: 'toString', + value: function toString(options) { + return (0, _toCss2['default'])(this.key, this.style, options); + } + }]); + + return ViewportRule; +}(); + +exports['default'] = ViewportRule; + +/***/ }), + +/***/ "./node_modules/jss/lib/sheets.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SheetsRegistry = __webpack_require__("./node_modules/jss/lib/SheetsRegistry.js"); + +var _SheetsRegistry2 = _interopRequireDefault(_SheetsRegistry); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * This is a global sheets registry. Only DomRenderer will add sheets to it. + * On the server one should use an own SheetsRegistry instance and add the + * sheets to it, because you need to make sure to create a new registry for + * each request in order to not leak sheets across requests. + */ +exports['default'] = new _SheetsRegistry2['default'](); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/cloneStyle.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports['default'] = cloneStyle; + +var _isObservable = __webpack_require__("./node_modules/jss/lib/utils/isObservable.js"); + +var _isObservable2 = _interopRequireDefault(_isObservable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var isArray = Array.isArray; +function cloneStyle(style) { + // Support empty values in case user ends up with them by accident. + if (style == null) return style; + + // Support string value for SimpleRule. + var typeOfStyle = typeof style === 'undefined' ? 'undefined' : _typeof(style); + + if (typeOfStyle === 'string' || typeOfStyle === 'number' || typeOfStyle === 'function') { + return style; + } + + // Support array for FontFaceRule. + if (isArray(style)) return style.map(cloneStyle); + + // Support Observable styles. Observables are immutable, so we don't need to + // copy them. + if ((0, _isObservable2['default'])(style)) return style; + + var newStyle = {}; + for (var name in style) { + var value = style[name]; + if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { + newStyle[name] = cloneStyle(value); + continue; + } + newStyle[name] = value; + } + + return newStyle; +} + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/createGenerateClassName.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _StyleSheet = __webpack_require__("./node_modules/jss/lib/StyleSheet.js"); + +var _StyleSheet2 = _interopRequireDefault(_StyleSheet); + +var _moduleId = __webpack_require__("./node_modules/jss/lib/utils/moduleId.js"); + +var _moduleId2 = _interopRequireDefault(_moduleId); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var maxRules = 1e10; + + +var env = process.env.NODE_ENV; + +/** + * Returns a function which generates unique class names based on counters. + * When new generator function is created, rule counter is reseted. + * We need to reset the rule counter for SSR for each request. + */ + +exports['default'] = function () { + var ruleCounter = 0; + var defaultPrefix = env === 'production' ? 'c' : ''; + + return function (rule, sheet) { + ruleCounter += 1; + + if (ruleCounter > maxRules) { + (0, _warning2['default'])(false, '[JSS] You might have a memory leak. Rule counter is at %s.', ruleCounter); + } + + var prefix = defaultPrefix; + var jssId = ''; + + if (sheet) { + prefix = sheet.options.classNamePrefix || defaultPrefix; + if (sheet.options.jss.id != null) jssId += sheet.options.jss.id; + } + + if (env === 'production') { + return '' + prefix + _moduleId2['default'] + jssId + ruleCounter; + } + + return prefix + rule.key + '-' + _moduleId2['default'] + (jssId && '-' + jssId) + '-' + ruleCounter; + }; +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/createRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = createRule; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); + +var _StyleRule2 = _interopRequireDefault(_StyleRule); + +var _cloneStyle = __webpack_require__("./node_modules/jss/lib/utils/cloneStyle.js"); + +var _cloneStyle2 = _interopRequireDefault(_cloneStyle); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Create a rule instance. + */ +function createRule() { + var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'unnamed'; + var decl = arguments[1]; + var options = arguments[2]; + var jss = options.jss; + + var declCopy = (0, _cloneStyle2['default'])(decl); + + var rule = jss.plugins.onCreateRule(name, declCopy, options); + if (rule) return rule; + + // It is an at-rule and it has no instance. + if (name[0] === '@') { + (0, _warning2['default'])(false, '[JSS] Unknown at-rule %s', name); + } + + return new _StyleRule2['default'](name, declCopy, options); +} + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/escape.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global, process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var CSS = global.CSS; + +var env = process.env.NODE_ENV; + +var escapeRegex = /([[\].#*$><+~=|^:(),"'`])/g; + +exports['default'] = function (str) { + // We don't need to escape it in production, because we are not using user's + // input for selectors, we are generating a valid selector. + if (env === 'production') return str; + + if (!CSS || !CSS.escape) { + return str.replace(escapeRegex, '\\$1'); + } + + return CSS.escape(str); +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/getDynamicStyles.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +/** + * Extracts a styles object with only props that contain function values. + */ +exports['default'] = function (styles) { + // eslint-disable-next-line no-shadow + function extract(styles) { + var to = null; + + for (var key in styles) { + var value = styles[key]; + var type = typeof value === 'undefined' ? 'undefined' : _typeof(value); + + if (type === 'function') { + if (!to) to = {}; + to[key] = value; + } else if (type === 'object' && value !== null && !Array.isArray(value)) { + var extracted = extract(value); + if (extracted) { + if (!to) to = {}; + to[key] = extracted; + } + } + } + + return to; + } + + return extract(styles); +}; + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/isObservable.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _symbolObservable = __webpack_require__("./node_modules/symbol-observable/es/index.js"); + +var _symbolObservable2 = _interopRequireDefault(_symbolObservable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +exports['default'] = function (value) { + return value && value[_symbolObservable2['default']] && value === value[_symbolObservable2['default']](); +}; + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/linkRule.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = linkRule; +/** + * Link rule with CSSStyleRule and nested rules with corresponding nested cssRules if both exists. + */ +function linkRule(rule, cssRule) { + rule.renderable = cssRule; + if (rule.rules && cssRule.cssRules) rule.rules.link(cssRule.cssRules); +} + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/moduleId.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ns = '2f1acc6c3a606b082e5eef5e54414ffb'; +if (global[ns] == null) global[ns] = 0; + +// Bundle may contain multiple JSS versions at the same time. In order to identify +// the current version with just one short number and use it for classes generation +// we use a counter. Also it is more accurate, because user can manually reevaluate +// the module. +exports['default'] = global[ns]++; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/toCss.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = toCss; + +var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); + +var _toCssValue2 = _interopRequireDefault(_toCssValue); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Indent a string. + * http://jsperf.com/array-join-vs-for + */ +function indentStr(str, indent) { + var result = ''; + for (var index = 0; index < indent; index++) { + result += ' '; + }return result + str; +} + +/** + * Converts a Rule to CSS string. + */ + +function toCss(selector, style) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var result = ''; + + if (!style) return result; + + var _options$indent = options.indent, + indent = _options$indent === undefined ? 0 : _options$indent; + var fallbacks = style.fallbacks; + + + indent++; + + // Apply fallbacks first. + if (fallbacks) { + // Array syntax {fallbacks: [{prop: value}]} + if (Array.isArray(fallbacks)) { + for (var index = 0; index < fallbacks.length; index++) { + var fallback = fallbacks[index]; + for (var prop in fallback) { + var value = fallback[prop]; + if (value != null) { + result += '\n' + indentStr(prop + ': ' + (0, _toCssValue2['default'])(value) + ';', indent); + } + } + } + } else { + // Object syntax {fallbacks: {prop: value}} + for (var _prop in fallbacks) { + var _value = fallbacks[_prop]; + if (_value != null) { + result += '\n' + indentStr(_prop + ': ' + (0, _toCssValue2['default'])(_value) + ';', indent); + } + } + } + } + + for (var _prop2 in style) { + var _value2 = style[_prop2]; + if (_value2 != null && _prop2 !== 'fallbacks') { + result += '\n' + indentStr(_prop2 + ': ' + (0, _toCssValue2['default'])(_value2) + ';', indent); + } + } + + // Allow empty style in this case, because properties will be added dynamically. + if (!result && !options.allowEmpty) return result; + + indent--; + result = indentStr(selector + ' {' + result + '\n', indent) + indentStr('}', indent); + + return result; +} + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/toCssValue.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = toCssValue; +var join = function join(value, by) { + var result = ''; + for (var i = 0; i < value.length; i++) { + // Remove !important from the value, it will be readded later. + if (value[i] === '!important') break; + if (result) result += by; + result += value[i]; + } + return result; +}; + +/** + * Converts array values to string. + * + * `margin: [['5px', '10px']]` > `margin: 5px 10px;` + * `border: ['1px', '2px']` > `border: 1px, 2px;` + * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;` + * `color: ['red', !important]` > `color: red !important;` + */ +function toCssValue(value) { + var ignoreImportant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (!Array.isArray(value)) return value; + + var cssValue = ''; + + // Support space separated values via `[['5px', '10px']]`. + if (Array.isArray(value[0])) { + for (var i = 0; i < value.length; i++) { + if (value[i] === '!important') break; + if (cssValue) cssValue += ', '; + cssValue += join(value[i], ' '); + } + } else cssValue = join(value, ', '); + + // Add !important, because it was ignored. + if (!ignoreImportant && value[value.length - 1] === '!important') { + cssValue += ' !important'; + } + + return cssValue; +} + +/***/ }), + +/***/ "./node_modules/keycode/index.js": +/***/ (function(module, exports) { + +// Source: http://jsfiddle.net/vWx8V/ +// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes + +/** + * Conenience method returns corresponding value for given keyName or keyCode. + * + * @param {Mixed} keyCode {Number} or keyName {String} + * @return {Mixed} + * @api public + */ + +exports = module.exports = function(searchInput) { + // Keyboard Events + if (searchInput && 'object' === typeof searchInput) { + var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode + if (hasKeyCode) searchInput = hasKeyCode + } + + // Numbers + if ('number' === typeof searchInput) return names[searchInput] + + // Everything else (cast to string) + var search = String(searchInput) + + // check codes + var foundNamedKey = codes[search.toLowerCase()] + if (foundNamedKey) return foundNamedKey + + // check aliases + var foundNamedKey = aliases[search.toLowerCase()] + if (foundNamedKey) return foundNamedKey + + // weird character? + if (search.length === 1) return search.charCodeAt(0) + + return undefined +} + +/** + * Get by name + * + * exports.code['enter'] // => 13 + */ + +var codes = exports.code = exports.codes = { + 'backspace': 8, + 'tab': 9, + 'enter': 13, + 'shift': 16, + 'ctrl': 17, + 'alt': 18, + 'pause/break': 19, + 'caps lock': 20, + 'esc': 27, + 'space': 32, + 'page up': 33, + 'page down': 34, + 'end': 35, + 'home': 36, + 'left': 37, + 'up': 38, + 'right': 39, + 'down': 40, + 'insert': 45, + 'delete': 46, + 'command': 91, + 'left command': 91, + 'right command': 93, + 'numpad *': 106, + 'numpad +': 107, + 'numpad -': 109, + 'numpad .': 110, + 'numpad /': 111, + 'num lock': 144, + 'scroll lock': 145, + 'my computer': 182, + 'my calculator': 183, + ';': 186, + '=': 187, + ',': 188, + '-': 189, + '.': 190, + '/': 191, + '`': 192, + '[': 219, + '\\': 220, + ']': 221, + "'": 222 +} + +// Helper aliases + +var aliases = exports.aliases = { + 'windows': 91, + '⇧': 16, + '⌥': 18, + '⌃': 17, + '⌘': 91, + 'ctl': 17, + 'control': 17, + 'option': 18, + 'pause': 19, + 'break': 19, + 'caps': 20, + 'return': 13, + 'escape': 27, + 'spc': 32, + 'pgup': 33, + 'pgdn': 34, + 'ins': 45, + 'del': 46, + 'cmd': 91 +} + + +/*! + * Programatically add the following + */ + +// lower case chars +for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32 + +// numbers +for (var i = 48; i < 58; i++) codes[i - 48] = i + +// function keys +for (i = 1; i < 13; i++) codes['f'+i] = i + 111 + +// numpad keys +for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96 + +/** + * Get by code + * + * exports.name[13] // => 'Enter' + */ + +var names = exports.names = exports.title = {} // title for backward compat + +// Create reverse mapping +for (i in codes) names[codes[i]] = i + +// Add aliases +for (var alias in aliases) { + codes[alias] = aliases[alias] +} + + +/***/ }), + +/***/ "./node_modules/localforage/dist/localforage.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var require;var require;/*! + localForage -- Offline Storage, Improved + Version 1.5.6 + https://localforage.github.io/localForage + (c) 2013-2017 Mozilla, Apache License 2.0 +*/ +(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw (f.code="MODULE_NOT_FOUND", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted + // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called. + var scriptEl = global.document.createElement('script'); + scriptEl.onreadystatechange = function () { + nextTick(); + + scriptEl.onreadystatechange = null; + scriptEl.parentNode.removeChild(scriptEl); + scriptEl = null; + }; + global.document.documentElement.appendChild(scriptEl); + }; + } else { + scheduleDrain = function () { + setTimeout(nextTick, 0); + }; + } +} + +var draining; +var queue = []; +//named nextTick for less confusing stack traces +function nextTick() { + draining = true; + var i, oldQueue; + var len = queue.length; + while (len) { + oldQueue = queue; + queue = []; + i = -1; + while (++i < len) { + oldQueue[i](); + } + len = queue.length; + } + draining = false; +} + +module.exports = immediate; +function immediate(task) { + if (queue.push(task) === 1 && !draining) { + scheduleDrain(); + } +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],2:[function(_dereq_,module,exports){ +'use strict'; +var immediate = _dereq_(1); + +/* istanbul ignore next */ +function INTERNAL() {} + +var handlers = {}; + +var REJECTED = ['REJECTED']; +var FULFILLED = ['FULFILLED']; +var PENDING = ['PENDING']; + +module.exports = Promise; + +function Promise(resolver) { + if (typeof resolver !== 'function') { + throw new TypeError('resolver must be a function'); + } + this.state = PENDING; + this.queue = []; + this.outcome = void 0; + if (resolver !== INTERNAL) { + safelyResolveThenable(this, resolver); + } +} + +Promise.prototype["catch"] = function (onRejected) { + return this.then(null, onRejected); +}; +Promise.prototype.then = function (onFulfilled, onRejected) { + if (typeof onFulfilled !== 'function' && this.state === FULFILLED || + typeof onRejected !== 'function' && this.state === REJECTED) { + return this; + } + var promise = new this.constructor(INTERNAL); + if (this.state !== PENDING) { + var resolver = this.state === FULFILLED ? onFulfilled : onRejected; + unwrap(promise, resolver, this.outcome); + } else { + this.queue.push(new QueueItem(promise, onFulfilled, onRejected)); + } + + return promise; +}; +function QueueItem(promise, onFulfilled, onRejected) { + this.promise = promise; + if (typeof onFulfilled === 'function') { + this.onFulfilled = onFulfilled; + this.callFulfilled = this.otherCallFulfilled; + } + if (typeof onRejected === 'function') { + this.onRejected = onRejected; + this.callRejected = this.otherCallRejected; + } +} +QueueItem.prototype.callFulfilled = function (value) { + handlers.resolve(this.promise, value); +}; +QueueItem.prototype.otherCallFulfilled = function (value) { + unwrap(this.promise, this.onFulfilled, value); +}; +QueueItem.prototype.callRejected = function (value) { + handlers.reject(this.promise, value); +}; +QueueItem.prototype.otherCallRejected = function (value) { + unwrap(this.promise, this.onRejected, value); +}; + +function unwrap(promise, func, value) { + immediate(function () { + var returnValue; + try { + returnValue = func(value); + } catch (e) { + return handlers.reject(promise, e); + } + if (returnValue === promise) { + handlers.reject(promise, new TypeError('Cannot resolve promise with itself')); + } else { + handlers.resolve(promise, returnValue); + } + }); +} + +handlers.resolve = function (self, value) { + var result = tryCatch(getThen, value); + if (result.status === 'error') { + return handlers.reject(self, result.value); + } + var thenable = result.value; + + if (thenable) { + safelyResolveThenable(self, thenable); + } else { + self.state = FULFILLED; + self.outcome = value; + var i = -1; + var len = self.queue.length; + while (++i < len) { + self.queue[i].callFulfilled(value); + } + } + return self; +}; +handlers.reject = function (self, error) { + self.state = REJECTED; + self.outcome = error; + var i = -1; + var len = self.queue.length; + while (++i < len) { + self.queue[i].callRejected(error); + } + return self; +}; + +function getThen(obj) { + // Make sure we only access the accessor once as required by the spec + var then = obj && obj.then; + if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') { + return function appyThen() { + then.apply(obj, arguments); + }; + } +} + +function safelyResolveThenable(self, thenable) { + // Either fulfill, reject or reject with error + var called = false; + function onError(value) { + if (called) { + return; + } + called = true; + handlers.reject(self, value); + } + + function onSuccess(value) { + if (called) { + return; + } + called = true; + handlers.resolve(self, value); + } + + function tryToUnwrap() { + thenable(onSuccess, onError); + } + + var result = tryCatch(tryToUnwrap); + if (result.status === 'error') { + onError(result.value); + } +} + +function tryCatch(func, value) { + var out = {}; + try { + out.value = func(value); + out.status = 'success'; + } catch (e) { + out.status = 'error'; + out.value = e; + } + return out; +} + +Promise.resolve = resolve; +function resolve(value) { + if (value instanceof this) { + return value; + } + return handlers.resolve(new this(INTERNAL), value); +} + +Promise.reject = reject; +function reject(reason) { + var promise = new this(INTERNAL); + return handlers.reject(promise, reason); +} + +Promise.all = all; +function all(iterable) { + var self = this; + if (Object.prototype.toString.call(iterable) !== '[object Array]') { + return this.reject(new TypeError('must be an array')); + } + + var len = iterable.length; + var called = false; + if (!len) { + return this.resolve([]); + } + + var values = new Array(len); + var resolved = 0; + var i = -1; + var promise = new this(INTERNAL); + + while (++i < len) { + allResolver(iterable[i], i); + } + return promise; + function allResolver(value, i) { + self.resolve(value).then(resolveFromAll, function (error) { + if (!called) { + called = true; + handlers.reject(promise, error); + } + }); + function resolveFromAll(outValue) { + values[i] = outValue; + if (++resolved === len && !called) { + called = true; + handlers.resolve(promise, values); + } + } + } +} + +Promise.race = race; +function race(iterable) { + var self = this; + if (Object.prototype.toString.call(iterable) !== '[object Array]') { + return this.reject(new TypeError('must be an array')); + } + + var len = iterable.length; + var called = false; + if (!len) { + return this.resolve([]); + } + + var i = -1; + var promise = new this(INTERNAL); + + while (++i < len) { + resolver(iterable[i]); + } + return promise; + function resolver(value) { + self.resolve(value).then(function (response) { + if (!called) { + called = true; + handlers.resolve(promise, response); + } + }, function (error) { + if (!called) { + called = true; + handlers.reject(promise, error); + } + }); + } +} + +},{"1":1}],3:[function(_dereq_,module,exports){ +(function (global){ +'use strict'; +if (typeof global.Promise !== 'function') { + global.Promise = _dereq_(2); +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"2":2}],4:[function(_dereq_,module,exports){ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function getIDB() { + /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */ + try { + if (typeof indexedDB !== 'undefined') { + return indexedDB; + } + if (typeof webkitIndexedDB !== 'undefined') { + return webkitIndexedDB; + } + if (typeof mozIndexedDB !== 'undefined') { + return mozIndexedDB; + } + if (typeof OIndexedDB !== 'undefined') { + return OIndexedDB; + } + if (typeof msIndexedDB !== 'undefined') { + return msIndexedDB; + } + } catch (e) { + return; + } +} + +var idb = getIDB(); + +function isIndexedDBValid() { + try { + // Initialize IndexedDB; fall back to vendor-prefixed versions + // if needed. + if (!idb) { + return false; + } + // We mimic PouchDB here; + // + // We test for openDatabase because IE Mobile identifies itself + // as Safari. Oh the lulz... + var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform); + + var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1; + + // Safari <10.1 does not meet our requirements for IDB support (#5572) + // since Safari 10.1 shipped with fetch, we can use that to detect it + return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' && + // some outdated implementations of IDB that appear on Samsung + // and HTC Android devices <4.4 are missing IDBKeyRange + // See: https://github.com/mozilla/localForage/issues/128 + // See: https://github.com/mozilla/localForage/issues/272 + typeof IDBKeyRange !== 'undefined'; + } catch (e) { + return false; + } +} + +// Abstracts constructing a Blob object, so it also works in older +// browsers that don't support the native Blob constructor. (i.e. +// old QtWebKit versions, at least). +// Abstracts constructing a Blob object, so it also works in older +// browsers that don't support the native Blob constructor. (i.e. +// old QtWebKit versions, at least). +function createBlob(parts, properties) { + /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */ + parts = parts || []; + properties = properties || {}; + try { + return new Blob(parts, properties); + } catch (e) { + if (e.name !== 'TypeError') { + throw e; + } + var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder; + var builder = new Builder(); + for (var i = 0; i < parts.length; i += 1) { + builder.append(parts[i]); + } + return builder.getBlob(properties.type); + } +} + +// This is CommonJS because lie is an external dependency, so Rollup +// can just ignore it. +if (typeof Promise === 'undefined') { + // In the "nopromises" build this will just throw if you don't have + // a global promise object, but it would throw anyway later. + _dereq_(3); +} +var Promise$1 = Promise; + +function executeCallback(promise, callback) { + if (callback) { + promise.then(function (result) { + callback(null, result); + }, function (error) { + callback(error); + }); + } +} + +function executeTwoCallbacks(promise, callback, errorCallback) { + if (typeof callback === 'function') { + promise.then(callback); + } + + if (typeof errorCallback === 'function') { + promise["catch"](errorCallback); + } +} + +function normalizeKey(key) { + // Cast the key to a string, as that's all we can set as a key. + if (typeof key !== 'string') { + console.warn(key + ' used as a key, but it is not a string.'); + key = String(key); + } + + return key; +} + +// Some code originally from async_storage.js in +// [Gaia](https://github.com/mozilla-b2g/gaia). + +var DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support'; +var supportsBlobs; +var dbContexts; +var toString = Object.prototype.toString; + +// Transaction Modes +var READ_ONLY = 'readonly'; +var READ_WRITE = 'readwrite'; + +// Transform a binary string to an array buffer, because otherwise +// weird stuff happens when you try to work with the binary string directly. +// It is known. +// From http://stackoverflow.com/questions/14967647/ (continues on next line) +// encode-decode-image-with-base64-breaks-image (2013-04-21) +function _binStringToArrayBuffer(bin) { + var length = bin.length; + var buf = new ArrayBuffer(length); + var arr = new Uint8Array(buf); + for (var i = 0; i < length; i++) { + arr[i] = bin.charCodeAt(i); + } + return buf; +} + +// +// Blobs are not supported in all versions of IndexedDB, notably +// Chrome <37 and Android <5. In those versions, storing a blob will throw. +// +// Various other blob bugs exist in Chrome v37-42 (inclusive). +// Detecting them is expensive and confusing to users, and Chrome 37-42 +// is at very low usage worldwide, so we do a hacky userAgent check instead. +// +// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120 +// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916 +// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836 +// +// Code borrowed from PouchDB. See: +// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js +// +function _checkBlobSupportWithoutCaching(idb) { + return new Promise$1(function (resolve) { + var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE); + var blob = createBlob(['']); + txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key'); + + txn.onabort = function (e) { + // If the transaction aborts now its due to not being able to + // write to the database, likely due to the disk being full + e.preventDefault(); + e.stopPropagation(); + resolve(false); + }; + + txn.oncomplete = function () { + var matchedChrome = navigator.userAgent.match(/Chrome\/(\d+)/); + var matchedEdge = navigator.userAgent.match(/Edge\//); + // MS Edge pretends to be Chrome 42: + // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx + resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43); + }; + })["catch"](function () { + return false; // error, so assume unsupported + }); +} + +function _checkBlobSupport(idb) { + if (typeof supportsBlobs === 'boolean') { + return Promise$1.resolve(supportsBlobs); + } + return _checkBlobSupportWithoutCaching(idb).then(function (value) { + supportsBlobs = value; + return supportsBlobs; + }); +} + +function _deferReadiness(dbInfo) { + var dbContext = dbContexts[dbInfo.name]; + + // Create a deferred object representing the current database operation. + var deferredOperation = {}; + + deferredOperation.promise = new Promise$1(function (resolve) { + deferredOperation.resolve = resolve; + }); + + // Enqueue the deferred operation. + dbContext.deferredOperations.push(deferredOperation); + + // Chain its promise to the database readiness. + if (!dbContext.dbReady) { + dbContext.dbReady = deferredOperation.promise; + } else { + dbContext.dbReady = dbContext.dbReady.then(function () { + return deferredOperation.promise; + }); + } +} + +function _advanceReadiness(dbInfo) { + var dbContext = dbContexts[dbInfo.name]; + + // Dequeue a deferred operation. + var deferredOperation = dbContext.deferredOperations.pop(); + + // Resolve its promise (which is part of the database readiness + // chain of promises). + if (deferredOperation) { + deferredOperation.resolve(); + } +} + +function _rejectReadiness(dbInfo, err) { + var dbContext = dbContexts[dbInfo.name]; + + // Dequeue a deferred operation. + var deferredOperation = dbContext.deferredOperations.pop(); + + // Reject its promise (which is part of the database readiness + // chain of promises). + if (deferredOperation) { + deferredOperation.reject(err); + } +} + +function _getConnection(dbInfo, upgradeNeeded) { + return new Promise$1(function (resolve, reject) { + + if (dbInfo.db) { + if (upgradeNeeded) { + _deferReadiness(dbInfo); + dbInfo.db.close(); + } else { + return resolve(dbInfo.db); + } + } + + var dbArgs = [dbInfo.name]; + + if (upgradeNeeded) { + dbArgs.push(dbInfo.version); + } + + var openreq = idb.open.apply(idb, dbArgs); + + if (upgradeNeeded) { + openreq.onupgradeneeded = function (e) { + var db = openreq.result; + try { + db.createObjectStore(dbInfo.storeName); + if (e.oldVersion <= 1) { + // Added when support for blob shims was added + db.createObjectStore(DETECT_BLOB_SUPPORT_STORE); + } + } catch (ex) { + if (ex.name === 'ConstraintError') { + console.warn('The database "' + dbInfo.name + '"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage "' + dbInfo.storeName + '" already exists.'); + } else { + throw ex; + } + } + }; + } + + openreq.onerror = function (e) { + e.preventDefault(); + reject(openreq.error); + }; + + openreq.onsuccess = function () { + resolve(openreq.result); + _advanceReadiness(dbInfo); + }; + }); +} + +function _getOriginalConnection(dbInfo) { + return _getConnection(dbInfo, false); +} + +function _getUpgradedConnection(dbInfo) { + return _getConnection(dbInfo, true); +} + +function _isUpgradeNeeded(dbInfo, defaultVersion) { + if (!dbInfo.db) { + return true; + } + + var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName); + var isDowngrade = dbInfo.version < dbInfo.db.version; + var isUpgrade = dbInfo.version > dbInfo.db.version; + + if (isDowngrade) { + // If the version is not the default one + // then warn for impossible downgrade. + if (dbInfo.version !== defaultVersion) { + console.warn('The database "' + dbInfo.name + '"' + ' can\'t be downgraded from version ' + dbInfo.db.version + ' to version ' + dbInfo.version + '.'); + } + // Align the versions to prevent errors. + dbInfo.version = dbInfo.db.version; + } + + if (isUpgrade || isNewStore) { + // If the store is new then increment the version (if needed). + // This will trigger an "upgradeneeded" event which is required + // for creating a store. + if (isNewStore) { + var incVersion = dbInfo.db.version + 1; + if (incVersion > dbInfo.version) { + dbInfo.version = incVersion; + } + } + + return true; + } + + return false; +} + +// encode a blob for indexeddb engines that don't support blobs +function _encodeBlob(blob) { + return new Promise$1(function (resolve, reject) { + var reader = new FileReader(); + reader.onerror = reject; + reader.onloadend = function (e) { + var base64 = btoa(e.target.result || ''); + resolve({ + __local_forage_encoded_blob: true, + data: base64, + type: blob.type + }); + }; + reader.readAsBinaryString(blob); + }); +} + +// decode an encoded blob +function _decodeBlob(encodedBlob) { + var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data)); + return createBlob([arrayBuff], { type: encodedBlob.type }); +} + +// is this one of our fancy encoded blobs? +function _isEncodedBlob(value) { + return value && value.__local_forage_encoded_blob; +} + +// Specialize the default `ready()` function by making it dependent +// on the current database operations. Thus, the driver will be actually +// ready when it's been initialized (default) *and* there are no pending +// operations on the database (initiated by some other instances). +function _fullyReady(callback) { + var self = this; + + var promise = self._initReady().then(function () { + var dbContext = dbContexts[self._dbInfo.name]; + + if (dbContext && dbContext.dbReady) { + return dbContext.dbReady; + } + }); + + executeTwoCallbacks(promise, callback, callback); + return promise; +} + +// Try to establish a new db connection to replace the +// current one which is broken (i.e. experiencing +// InvalidStateError while creating a transaction). +function _tryReconnect(dbInfo) { + _deferReadiness(dbInfo); + + var dbContext = dbContexts[dbInfo.name]; + var forages = dbContext.forages; + + for (var i = 0; i < forages.length; i++) { + if (forages[i]._dbInfo.db) { + forages[i]._dbInfo.db.close(); + forages[i]._dbInfo.db = null; + } + } + + return _getConnection(dbInfo, false).then(function (db) { + for (var j = 0; j < forages.length; j++) { + forages[j]._dbInfo.db = db; + } + })["catch"](function (err) { + _rejectReadiness(dbInfo, err); + throw err; + }); +} + +// FF doesn't like Promises (micro-tasks) and IDDB store operations, +// so we have to do it with callbacks +function createTransaction(dbInfo, mode, callback) { + try { + var tx = dbInfo.db.transaction(dbInfo.storeName, mode); + callback(null, tx); + } catch (err) { + if (!dbInfo.db || err.name === 'InvalidStateError') { + return _tryReconnect(dbInfo).then(function () { + + var tx = dbInfo.db.transaction(dbInfo.storeName, mode); + callback(null, tx); + }); + } + + callback(err); + } +} + +// Open the IndexedDB database (automatically creates one if one didn't +// previously exist), using any options set in the config. +function _initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + + if (options) { + for (var i in options) { + dbInfo[i] = options[i]; + } + } + + // Initialize a singleton container for all running localForages. + if (!dbContexts) { + dbContexts = {}; + } + + // Get the current context of the database; + var dbContext = dbContexts[dbInfo.name]; + + // ...or create a new context. + if (!dbContext) { + dbContext = { + // Running localForages sharing a database. + forages: [], + // Shared database. + db: null, + // Database readiness (promise). + dbReady: null, + // Deferred operations on the database. + deferredOperations: [] + }; + // Register the new context in the global container. + dbContexts[dbInfo.name] = dbContext; + } + + // Register itself as a running localForage in the current context. + dbContext.forages.push(self); + + // Replace the default `ready()` function with the specialized one. + if (!self._initReady) { + self._initReady = self.ready; + self.ready = _fullyReady; + } + + // Create an array of initialization states of the related localForages. + var initPromises = []; + + function ignoreErrors() { + // Don't handle errors here, + // just makes sure related localForages aren't pending. + return Promise$1.resolve(); + } + + for (var j = 0; j < dbContext.forages.length; j++) { + var forage = dbContext.forages[j]; + if (forage !== self) { + // Don't wait for itself... + initPromises.push(forage._initReady()["catch"](ignoreErrors)); + } + } + + // Take a snapshot of the related localForages. + var forages = dbContext.forages.slice(0); + + // Initialize the connection process only when + // all the related localForages aren't pending. + return Promise$1.all(initPromises).then(function () { + dbInfo.db = dbContext.db; + // Get the connection or open a new one without upgrade. + return _getOriginalConnection(dbInfo); + }).then(function (db) { + dbInfo.db = db; + if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) { + // Reopen the database for upgrading. + return _getUpgradedConnection(dbInfo); + } + return db; + }).then(function (db) { + dbInfo.db = dbContext.db = db; + self._dbInfo = dbInfo; + // Share the final connection amongst related localForages. + for (var k = 0; k < forages.length; k++) { + var forage = forages[k]; + if (forage !== self) { + // Self is already up-to-date. + forage._dbInfo.db = dbInfo.db; + forage._dbInfo.version = dbInfo.version; + } + } + }); +} + +function getItem(key, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.get(key); + + req.onsuccess = function () { + var value = req.result; + if (value === undefined) { + value = null; + } + if (_isEncodedBlob(value)) { + value = _decodeBlob(value); + } + resolve(value); + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +// Iterate over all items stored in database. +function iterate(iterator, callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.openCursor(); + var iterationNumber = 1; + + req.onsuccess = function () { + var cursor = req.result; + + if (cursor) { + var value = cursor.value; + if (_isEncodedBlob(value)) { + value = _decodeBlob(value); + } + var result = iterator(value, cursor.key, iterationNumber++); + + // when the iterator callback retuns any + // (non-`undefined`) value, then we stop + // the iteration immediately + if (result !== void 0) { + resolve(result); + } else { + cursor["continue"](); + } + } else { + resolve(); + } + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + + return promise; +} + +function setItem(key, value, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = new Promise$1(function (resolve, reject) { + var dbInfo; + self.ready().then(function () { + dbInfo = self._dbInfo; + if (toString.call(value) === '[object Blob]') { + return _checkBlobSupport(dbInfo.db).then(function (blobSupport) { + if (blobSupport) { + return value; + } + return _encodeBlob(value); + }); + } + return value; + }).then(function (value) { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + + // The reason we don't _save_ null is because IE 10 does + // not support saving the `null` type in IndexedDB. How + // ironic, given the bug below! + // See: https://github.com/mozilla/localForage/issues/161 + if (value === null) { + value = undefined; + } + + var req = store.put(value, key); + + transaction.oncomplete = function () { + // Cast to undefined so the value passed to + // callback/promise is the same as what one would get out + // of `getItem()` later. This leads to some weirdness + // (setItem('foo', undefined) will return `null`), but + // it's not my fault localStorage is our baseline and that + // it's weird. + if (value === undefined) { + value = null; + } + + resolve(value); + }; + transaction.onabort = transaction.onerror = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function removeItem(key, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + // We use a Grunt task to make this safe for IE and some + // versions of Android (including those used by Cordova). + // Normally IE won't like `.delete()` and will insist on + // using `['delete']()`, but we have a build step that + // fixes this for us now. + var req = store["delete"](key); + transaction.oncomplete = function () { + resolve(); + }; + + transaction.onerror = function () { + reject(req.error); + }; + + // The request will be also be aborted if we've exceeded our storage + // space. + transaction.onabort = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function clear(callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.clear(); + + transaction.oncomplete = function () { + resolve(); + }; + + transaction.onabort = transaction.onerror = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function length(callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.count(); + + req.onsuccess = function () { + resolve(req.result); + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function key(n, callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + if (n < 0) { + resolve(null); + + return; + } + + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var advanced = false; + var req = store.openCursor(); + + req.onsuccess = function () { + var cursor = req.result; + if (!cursor) { + // this means there weren't enough keys + resolve(null); + + return; + } + + if (n === 0) { + // We have the first key, return it if that's what they + // wanted. + resolve(cursor.key); + } else { + if (!advanced) { + // Otherwise, ask the cursor to skip ahead n + // records. + advanced = true; + cursor.advance(n); + } else { + // When we get here, we've got the nth key. + resolve(cursor.key); + } + } + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function keys(callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.openCursor(); + var keys = []; + + req.onsuccess = function () { + var cursor = req.result; + + if (!cursor) { + resolve(keys); + return; + } + + keys.push(cursor.key); + cursor["continue"](); + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +var asyncStorage = { + _driver: 'asyncStorage', + _initStorage: _initStorage, + _support: isIndexedDBValid(), + iterate: iterate, + getItem: getItem, + setItem: setItem, + removeItem: removeItem, + clear: clear, + length: length, + key: key, + keys: keys +}; + +function isWebSQLValid() { + return typeof openDatabase === 'function'; +} + +// Sadly, the best way to save binary data in WebSQL/localStorage is serializing +// it to Base64, so this is how we store it to prevent very strange errors with less +// verbose ways of binary <-> string data storage. +var BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + +var BLOB_TYPE_PREFIX = '~~local_forage_type~'; +var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/; + +var SERIALIZED_MARKER = '__lfsc__:'; +var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length; + +// OMG the serializations! +var TYPE_ARRAYBUFFER = 'arbf'; +var TYPE_BLOB = 'blob'; +var TYPE_INT8ARRAY = 'si08'; +var TYPE_UINT8ARRAY = 'ui08'; +var TYPE_UINT8CLAMPEDARRAY = 'uic8'; +var TYPE_INT16ARRAY = 'si16'; +var TYPE_INT32ARRAY = 'si32'; +var TYPE_UINT16ARRAY = 'ur16'; +var TYPE_UINT32ARRAY = 'ui32'; +var TYPE_FLOAT32ARRAY = 'fl32'; +var TYPE_FLOAT64ARRAY = 'fl64'; +var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length; + +var toString$1 = Object.prototype.toString; + +function stringToBuffer(serializedString) { + // Fill the string into a ArrayBuffer. + var bufferLength = serializedString.length * 0.75; + var len = serializedString.length; + var i; + var p = 0; + var encoded1, encoded2, encoded3, encoded4; + + if (serializedString[serializedString.length - 1] === '=') { + bufferLength--; + if (serializedString[serializedString.length - 2] === '=') { + bufferLength--; + } + } + + var buffer = new ArrayBuffer(bufferLength); + var bytes = new Uint8Array(buffer); + + for (i = 0; i < len; i += 4) { + encoded1 = BASE_CHARS.indexOf(serializedString[i]); + encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]); + encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]); + encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]); + + /*jslint bitwise: true */ + bytes[p++] = encoded1 << 2 | encoded2 >> 4; + bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; + bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; + } + return buffer; +} + +// Converts a buffer to a string to store, serialized, in the backend +// storage library. +function bufferToString(buffer) { + // base64-arraybuffer + var bytes = new Uint8Array(buffer); + var base64String = ''; + var i; + + for (i = 0; i < bytes.length; i += 3) { + /*jslint bitwise: true */ + base64String += BASE_CHARS[bytes[i] >> 2]; + base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4]; + base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6]; + base64String += BASE_CHARS[bytes[i + 2] & 63]; + } + + if (bytes.length % 3 === 2) { + base64String = base64String.substring(0, base64String.length - 1) + '='; + } else if (bytes.length % 3 === 1) { + base64String = base64String.substring(0, base64String.length - 2) + '=='; + } + + return base64String; +} + +// Serialize a value, afterwards executing a callback (which usually +// instructs the `setItem()` callback/promise to be executed). This is how +// we store binary data with localStorage. +function serialize(value, callback) { + var valueType = ''; + if (value) { + valueType = toString$1.call(value); + } + + // Cannot use `value instanceof ArrayBuffer` or such here, as these + // checks fail when running the tests using casper.js... + // + // TODO: See why those tests fail and use a better solution. + if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) { + // Convert binary arrays to a string and prefix the string with + // a special marker. + var buffer; + var marker = SERIALIZED_MARKER; + + if (value instanceof ArrayBuffer) { + buffer = value; + marker += TYPE_ARRAYBUFFER; + } else { + buffer = value.buffer; + + if (valueType === '[object Int8Array]') { + marker += TYPE_INT8ARRAY; + } else if (valueType === '[object Uint8Array]') { + marker += TYPE_UINT8ARRAY; + } else if (valueType === '[object Uint8ClampedArray]') { + marker += TYPE_UINT8CLAMPEDARRAY; + } else if (valueType === '[object Int16Array]') { + marker += TYPE_INT16ARRAY; + } else if (valueType === '[object Uint16Array]') { + marker += TYPE_UINT16ARRAY; + } else if (valueType === '[object Int32Array]') { + marker += TYPE_INT32ARRAY; + } else if (valueType === '[object Uint32Array]') { + marker += TYPE_UINT32ARRAY; + } else if (valueType === '[object Float32Array]') { + marker += TYPE_FLOAT32ARRAY; + } else if (valueType === '[object Float64Array]') { + marker += TYPE_FLOAT64ARRAY; + } else { + callback(new Error('Failed to get type for BinaryArray')); + } + } + + callback(marker + bufferToString(buffer)); + } else if (valueType === '[object Blob]') { + // Conver the blob to a binaryArray and then to a string. + var fileReader = new FileReader(); + + fileReader.onload = function () { + // Backwards-compatible prefix for the blob type. + var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result); + + callback(SERIALIZED_MARKER + TYPE_BLOB + str); + }; + + fileReader.readAsArrayBuffer(value); + } else { + try { + callback(JSON.stringify(value)); + } catch (e) { + console.error("Couldn't convert value into a JSON string: ", value); + + callback(null, e); + } + } +} + +// Deserialize data we've inserted into a value column/field. We place +// special markers into our strings to mark them as encoded; this isn't +// as nice as a meta field, but it's the only sane thing we can do whilst +// keeping localStorage support intact. +// +// Oftentimes this will just deserialize JSON content, but if we have a +// special marker (SERIALIZED_MARKER, defined above), we will extract +// some kind of arraybuffer/binary data/typed array out of the string. +function deserialize(value) { + // If we haven't marked this string as being specially serialized (i.e. + // something other than serialized JSON), we can just return it and be + // done with it. + if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) { + return JSON.parse(value); + } + + // The following code deals with deserializing some kind of Blob or + // TypedArray. First we separate out the type of data we're dealing + // with from the data itself. + var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH); + var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH); + + var blobType; + // Backwards-compatible blob type serialization strategy. + // DBs created with older versions of localForage will simply not have the blob type. + if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) { + var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX); + blobType = matcher[1]; + serializedString = serializedString.substring(matcher[0].length); + } + var buffer = stringToBuffer(serializedString); + + // Return the right type based on the code/type set during + // serialization. + switch (type) { + case TYPE_ARRAYBUFFER: + return buffer; + case TYPE_BLOB: + return createBlob([buffer], { type: blobType }); + case TYPE_INT8ARRAY: + return new Int8Array(buffer); + case TYPE_UINT8ARRAY: + return new Uint8Array(buffer); + case TYPE_UINT8CLAMPEDARRAY: + return new Uint8ClampedArray(buffer); + case TYPE_INT16ARRAY: + return new Int16Array(buffer); + case TYPE_UINT16ARRAY: + return new Uint16Array(buffer); + case TYPE_INT32ARRAY: + return new Int32Array(buffer); + case TYPE_UINT32ARRAY: + return new Uint32Array(buffer); + case TYPE_FLOAT32ARRAY: + return new Float32Array(buffer); + case TYPE_FLOAT64ARRAY: + return new Float64Array(buffer); + default: + throw new Error('Unkown type: ' + type); + } +} + +var localforageSerializer = { + serialize: serialize, + deserialize: deserialize, + stringToBuffer: stringToBuffer, + bufferToString: bufferToString +}; + +/* + * Includes code from: + * + * base64-arraybuffer + * https://github.com/niklasvh/base64-arraybuffer + * + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + */ +// Open the WebSQL database (automatically creates one if one didn't +// previously exist), using any options set in the config. +function _initStorage$1(options) { + var self = this; + var dbInfo = { + db: null + }; + + if (options) { + for (var i in options) { + dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i]; + } + } + + var dbInfoPromise = new Promise$1(function (resolve, reject) { + // Open the database; the openDatabase API will automatically + // create it for us if it doesn't exist. + try { + dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size); + } catch (e) { + return reject(e); + } + + // Create our key/value table if it doesn't exist. + dbInfo.db.transaction(function (t) { + t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' (id INTEGER PRIMARY KEY, key unique, value)', [], function () { + self._dbInfo = dbInfo; + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }); + + dbInfo.serializer = localforageSerializer; + return dbInfoPromise; +} + +function getItem$1(key, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + t.executeSql('SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) { + var result = results.rows.length ? results.rows.item(0).value : null; + + // Check to see if this is serialized content we need to + // unpack. + if (result) { + result = dbInfo.serializer.deserialize(result); + } + + resolve(result); + }, function (t, error) { + + reject(error); + }); + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function iterate$1(iterator, callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + + dbInfo.db.transaction(function (t) { + t.executeSql('SELECT * FROM ' + dbInfo.storeName, [], function (t, results) { + var rows = results.rows; + var length = rows.length; + + for (var i = 0; i < length; i++) { + var item = rows.item(i); + var result = item.value; + + // Check to see if this is serialized content + // we need to unpack. + if (result) { + result = dbInfo.serializer.deserialize(result); + } + + result = iterator(result, item.key, i + 1); + + // void(0) prevents problems with redefinition + // of `undefined`. + if (result !== void 0) { + resolve(result); + return; + } + } + + resolve(); + }, function (t, error) { + reject(error); + }); + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function _setItem(key, value, callback, retriesLeft) { + var self = this; + + key = normalizeKey(key); + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + // The localStorage API doesn't return undefined values in an + // "expected" way, so undefined is always cast to null in all + // drivers. See: https://github.com/mozilla/localForage/pull/42 + if (value === undefined) { + value = null; + } + + // Save the original value to pass to the callback. + var originalValue = value; + + var dbInfo = self._dbInfo; + dbInfo.serializer.serialize(value, function (value, error) { + if (error) { + reject(error); + } else { + dbInfo.db.transaction(function (t) { + t.executeSql('INSERT OR REPLACE INTO ' + dbInfo.storeName + ' (key, value) VALUES (?, ?)', [key, value], function () { + resolve(originalValue); + }, function (t, error) { + reject(error); + }); + }, function (sqlError) { + // The transaction failed; check + // to see if it's a quota error. + if (sqlError.code === sqlError.QUOTA_ERR) { + // We reject the callback outright for now, but + // it's worth trying to re-run the transaction. + // Even if the user accepts the prompt to use + // more storage on Safari, this error will + // be called. + // + // Try to re-run the transaction. + if (retriesLeft > 0) { + resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1])); + return; + } + reject(sqlError); + } + }); + } + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function setItem$1(key, value, callback) { + return _setItem.apply(this, [key, value, callback, 1]); +} + +function removeItem$1(key, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + t.executeSql('DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +// Deletes every item in the table. +// TODO: Find out if this resets the AUTO_INCREMENT number. +function clear$1(callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + t.executeSql('DELETE FROM ' + dbInfo.storeName, [], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +// Does a simple `COUNT(key)` to get the number of items stored in +// localForage. +function length$1(callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + // Ahhh, SQL makes this one soooooo easy. + t.executeSql('SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) { + var result = results.rows.item(0).c; + + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +// Return the key located at key index X; essentially gets the key from a +// `WHERE id = ?`. This is the most efficient way I can think to implement +// this rarely-used (in my experience) part of the API, but it can seem +// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so +// the ID of each key will change every time it's updated. Perhaps a stored +// procedure for the `setItem()` SQL would solve this problem? +// TODO: Don't change ID on `setItem()`. +function key$1(n, callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + t.executeSql('SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) { + var result = results.rows.length ? results.rows.item(0).key : null; + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +function keys$1(callback) { + var self = this; + + var promise = new Promise$1(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + t.executeSql('SELECT key FROM ' + dbInfo.storeName, [], function (t, results) { + var keys = []; + + for (var i = 0; i < results.rows.length; i++) { + keys.push(results.rows.item(i).key); + } + + resolve(keys); + }, function (t, error) { + reject(error); + }); + }); + })["catch"](reject); + }); + + executeCallback(promise, callback); + return promise; +} + +var webSQLStorage = { + _driver: 'webSQLStorage', + _initStorage: _initStorage$1, + _support: isWebSQLValid(), + iterate: iterate$1, + getItem: getItem$1, + setItem: setItem$1, + removeItem: removeItem$1, + clear: clear$1, + length: length$1, + key: key$1, + keys: keys$1 +}; + +function isLocalStorageValid() { + try { + return typeof localStorage !== 'undefined' && 'setItem' in localStorage && typeof localStorage.setItem === 'function'; + } catch (e) { + return false; + } +} + +// Check if localStorage throws when saving an item +function checkIfLocalStorageThrows() { + var localStorageTestKey = '_localforage_support_test'; + + try { + localStorage.setItem(localStorageTestKey, true); + localStorage.removeItem(localStorageTestKey); + + return false; + } catch (e) { + return true; + } +} + +// Check if localStorage is usable and allows to save an item +// This method checks if localStorage is usable in Safari Private Browsing +// mode, or in any other case where the available quota for localStorage +// is 0 and there wasn't any saved items yet. +function _isLocalStorageUsable() { + return !checkIfLocalStorageThrows() || localStorage.length > 0; +} + +// Config the localStorage backend, using options set in the config. +function _initStorage$2(options) { + var self = this; + var dbInfo = {}; + if (options) { + for (var i in options) { + dbInfo[i] = options[i]; + } + } + + dbInfo.keyPrefix = dbInfo.name + '/'; + + if (dbInfo.storeName !== self._defaultConfig.storeName) { + dbInfo.keyPrefix += dbInfo.storeName + '/'; + } + + if (!_isLocalStorageUsable()) { + return Promise$1.reject(); + } + + self._dbInfo = dbInfo; + dbInfo.serializer = localforageSerializer; + + return Promise$1.resolve(); +} + +// Remove all keys from the datastore, effectively destroying all data in +// the app's key/value store! +function clear$2(callback) { + var self = this; + var promise = self.ready().then(function () { + var keyPrefix = self._dbInfo.keyPrefix; + + for (var i = localStorage.length - 1; i >= 0; i--) { + var key = localStorage.key(i); + + if (key.indexOf(keyPrefix) === 0) { + localStorage.removeItem(key); + } + } + }); + + executeCallback(promise, callback); + return promise; +} + +// Retrieve an item from the store. Unlike the original async_storage +// library in Gaia, we don't modify return values at all. If a key's value +// is `undefined`, we pass that value to the callback function. +function getItem$2(key, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var result = localStorage.getItem(dbInfo.keyPrefix + key); + + // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the key + // is likely undefined and we'll pass it straight to the + // callback. + if (result) { + result = dbInfo.serializer.deserialize(result); + } + + return result; + }); + + executeCallback(promise, callback); + return promise; +} + +// Iterate over all items in the store. +function iterate$2(iterator, callback) { + var self = this; + + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var keyPrefix = dbInfo.keyPrefix; + var keyPrefixLength = keyPrefix.length; + var length = localStorage.length; + + // We use a dedicated iterator instead of the `i` variable below + // so other keys we fetch in localStorage aren't counted in + // the `iterationNumber` argument passed to the `iterate()` + // callback. + // + // See: github.com/mozilla/localForage/pull/435#discussion_r38061530 + var iterationNumber = 1; + + for (var i = 0; i < length; i++) { + var key = localStorage.key(i); + if (key.indexOf(keyPrefix) !== 0) { + continue; + } + var value = localStorage.getItem(key); + + // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the + // key is likely undefined and we'll pass it straight + // to the iterator. + if (value) { + value = dbInfo.serializer.deserialize(value); + } + + value = iterator(value, key.substring(keyPrefixLength), iterationNumber++); + + if (value !== void 0) { + return value; + } + } + }); + + executeCallback(promise, callback); + return promise; +} + +// Same as localStorage's key() method, except takes a callback. +function key$2(n, callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var result; + try { + result = localStorage.key(n); + } catch (error) { + result = null; + } + + // Remove the prefix from the key, if a key is found. + if (result) { + result = result.substring(dbInfo.keyPrefix.length); + } + + return result; + }); + + executeCallback(promise, callback); + return promise; +} + +function keys$2(callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var length = localStorage.length; + var keys = []; + + for (var i = 0; i < length; i++) { + var itemKey = localStorage.key(i); + if (itemKey.indexOf(dbInfo.keyPrefix) === 0) { + keys.push(itemKey.substring(dbInfo.keyPrefix.length)); + } + } + + return keys; + }); + + executeCallback(promise, callback); + return promise; +} + +// Supply the number of keys in the datastore to the callback function. +function length$2(callback) { + var self = this; + var promise = self.keys().then(function (keys) { + return keys.length; + }); + + executeCallback(promise, callback); + return promise; +} + +// Remove an item from the store, nice and simple. +function removeItem$2(key, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + localStorage.removeItem(dbInfo.keyPrefix + key); + }); + + executeCallback(promise, callback); + return promise; +} + +// Set a key's value and run an optional callback once the value is set. +// Unlike Gaia's implementation, the callback function is passed the value, +// in case you want to operate on that value only after you're sure it +// saved, or something like that. +function setItem$2(key, value, callback) { + var self = this; + + key = normalizeKey(key); + + var promise = self.ready().then(function () { + // Convert undefined values to null. + // https://github.com/mozilla/localForage/pull/42 + if (value === undefined) { + value = null; + } + + // Save the original value to pass to the callback. + var originalValue = value; + + return new Promise$1(function (resolve, reject) { + var dbInfo = self._dbInfo; + dbInfo.serializer.serialize(value, function (value, error) { + if (error) { + reject(error); + } else { + try { + localStorage.setItem(dbInfo.keyPrefix + key, value); + resolve(originalValue); + } catch (e) { + // localStorage capacity exceeded. + // TODO: Make this a specific error/event. + if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { + reject(e); + } + reject(e); + } + } + }); + }); + }); + + executeCallback(promise, callback); + return promise; +} + +var localStorageWrapper = { + _driver: 'localStorageWrapper', + _initStorage: _initStorage$2, + _support: isLocalStorageValid(), + iterate: iterate$2, + getItem: getItem$2, + setItem: setItem$2, + removeItem: removeItem$2, + clear: clear$2, + length: length$2, + key: key$2, + keys: keys$2 +}; + +var isArray = Array.isArray || function (arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; +}; + +// Drivers are stored here when `defineDriver()` is called. +// They are shared across all instances of localForage. +var DefinedDrivers = {}; + +var DriverSupport = {}; + +var DefaultDrivers = { + INDEXEDDB: asyncStorage, + WEBSQL: webSQLStorage, + LOCALSTORAGE: localStorageWrapper +}; + +var DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver]; + +var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem']; + +var DefaultConfig = { + description: '', + driver: DefaultDriverOrder.slice(), + name: 'localforage', + // Default DB size is _JUST UNDER_ 5MB, as it's the highest size + // we can use without a prompt. + size: 4980736, + storeName: 'keyvaluepairs', + version: 1.0 +}; + +function callWhenReady(localForageInstance, libraryMethod) { + localForageInstance[libraryMethod] = function () { + var _args = arguments; + return localForageInstance.ready().then(function () { + return localForageInstance[libraryMethod].apply(localForageInstance, _args); + }); + }; +} + +function extend() { + for (var i = 1; i < arguments.length; i++) { + var arg = arguments[i]; + + if (arg) { + for (var _key in arg) { + if (arg.hasOwnProperty(_key)) { + if (isArray(arg[_key])) { + arguments[0][_key] = arg[_key].slice(); + } else { + arguments[0][_key] = arg[_key]; + } + } + } + } + } + + return arguments[0]; +} + +var LocalForage = function () { + function LocalForage(options) { + _classCallCheck(this, LocalForage); + + for (var driverTypeKey in DefaultDrivers) { + if (DefaultDrivers.hasOwnProperty(driverTypeKey)) { + var driver = DefaultDrivers[driverTypeKey]; + var driverName = driver._driver; + this[driverTypeKey] = driverName; + + if (!DefinedDrivers[driverName]) { + // we don't need to wait for the promise, + // since the default drivers can be defined + // in a blocking manner + this.defineDriver(driver); + } + } + } + + this._defaultConfig = extend({}, DefaultConfig); + this._config = extend({}, this._defaultConfig, options); + this._driverSet = null; + this._initDriver = null; + this._ready = false; + this._dbInfo = null; + + this._wrapLibraryMethodsWithReady(); + this.setDriver(this._config.driver)["catch"](function () {}); + } + + // Set any config values for localForage; can be called anytime before + // the first API call (e.g. `getItem`, `setItem`). + // We loop through options so we don't overwrite existing config + // values. + + + LocalForage.prototype.config = function config(options) { + // If the options argument is an object, we use it to set values. + // Otherwise, we return either a specified config value or all + // config values. + if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') { + // If localforage is ready and fully initialized, we can't set + // any new configuration values. Instead, we return an error. + if (this._ready) { + return new Error('Can\'t call config() after localforage ' + 'has been used.'); + } + + for (var i in options) { + if (i === 'storeName') { + options[i] = options[i].replace(/\W/g, '_'); + } + + if (i === 'version' && typeof options[i] !== 'number') { + return new Error('Database version must be a number.'); + } + + this._config[i] = options[i]; + } + + // after all config options are set and + // the driver option is used, try setting it + if ('driver' in options && options.driver) { + return this.setDriver(this._config.driver); + } + + return true; + } else if (typeof options === 'string') { + return this._config[options]; + } else { + return this._config; + } + }; + + // Used to define a custom driver, shared across all instances of + // localForage. + + + LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) { + var promise = new Promise$1(function (resolve, reject) { + try { + var driverName = driverObject._driver; + var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver'); + + // A driver name should be defined and not overlap with the + // library-defined, default drivers. + if (!driverObject._driver) { + reject(complianceError); + return; + } + + var driverMethods = LibraryMethods.concat('_initStorage'); + for (var i = 0, len = driverMethods.length; i < len; i++) { + var customDriverMethod = driverMethods[i]; + if (!customDriverMethod || !driverObject[customDriverMethod] || typeof driverObject[customDriverMethod] !== 'function') { + reject(complianceError); + return; + } + } + + var setDriverSupport = function setDriverSupport(support) { + if (DefinedDrivers[driverName]) { + console.info('Redefining LocalForage driver: ' + driverName); + } + DefinedDrivers[driverName] = driverObject; + DriverSupport[driverName] = support; + // don't use a then, so that we can define + // drivers that have simple _support methods + // in a blocking manner + resolve(); + }; + + if ('_support' in driverObject) { + if (driverObject._support && typeof driverObject._support === 'function') { + driverObject._support().then(setDriverSupport, reject); + } else { + setDriverSupport(!!driverObject._support); + } + } else { + setDriverSupport(true); + } + } catch (e) { + reject(e); + } + }); + + executeTwoCallbacks(promise, callback, errorCallback); + return promise; + }; + + LocalForage.prototype.driver = function driver() { + return this._driver || null; + }; + + LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) { + var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.')); + + executeTwoCallbacks(getDriverPromise, callback, errorCallback); + return getDriverPromise; + }; + + LocalForage.prototype.getSerializer = function getSerializer(callback) { + var serializerPromise = Promise$1.resolve(localforageSerializer); + executeTwoCallbacks(serializerPromise, callback); + return serializerPromise; + }; + + LocalForage.prototype.ready = function ready(callback) { + var self = this; + + var promise = self._driverSet.then(function () { + if (self._ready === null) { + self._ready = self._initDriver(); + } + + return self._ready; + }); + + executeTwoCallbacks(promise, callback, callback); + return promise; + }; + + LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) { + var self = this; + + if (!isArray(drivers)) { + drivers = [drivers]; + } + + var supportedDrivers = this._getSupportedDrivers(drivers); + + function setDriverToConfig() { + self._config.driver = self.driver(); + } + + function extendSelfWithDriver(driver) { + self._extend(driver); + setDriverToConfig(); + + self._ready = self._initStorage(self._config); + return self._ready; + } + + function initDriver(supportedDrivers) { + return function () { + var currentDriverIndex = 0; + + function driverPromiseLoop() { + while (currentDriverIndex < supportedDrivers.length) { + var driverName = supportedDrivers[currentDriverIndex]; + currentDriverIndex++; + + self._dbInfo = null; + self._ready = null; + + return self.getDriver(driverName).then(extendSelfWithDriver)["catch"](driverPromiseLoop); + } + + setDriverToConfig(); + var error = new Error('No available storage method found.'); + self._driverSet = Promise$1.reject(error); + return self._driverSet; + } + + return driverPromiseLoop(); + }; + } + + // There might be a driver initialization in progress + // so wait for it to finish in order to avoid a possible + // race condition to set _dbInfo + var oldDriverSetDone = this._driverSet !== null ? this._driverSet["catch"](function () { + return Promise$1.resolve(); + }) : Promise$1.resolve(); + + this._driverSet = oldDriverSetDone.then(function () { + var driverName = supportedDrivers[0]; + self._dbInfo = null; + self._ready = null; + + return self.getDriver(driverName).then(function (driver) { + self._driver = driver._driver; + setDriverToConfig(); + self._wrapLibraryMethodsWithReady(); + self._initDriver = initDriver(supportedDrivers); + }); + })["catch"](function () { + setDriverToConfig(); + var error = new Error('No available storage method found.'); + self._driverSet = Promise$1.reject(error); + return self._driverSet; + }); + + executeTwoCallbacks(this._driverSet, callback, errorCallback); + return this._driverSet; + }; + + LocalForage.prototype.supports = function supports(driverName) { + return !!DriverSupport[driverName]; + }; + + LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) { + extend(this, libraryMethodsAndProperties); + }; + + LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) { + var supportedDrivers = []; + for (var i = 0, len = drivers.length; i < len; i++) { + var driverName = drivers[i]; + if (this.supports(driverName)) { + supportedDrivers.push(driverName); + } + } + return supportedDrivers; + }; + + LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() { + // Add a stub for each driver API method that delays the call to the + // corresponding driver method until localForage is ready. These stubs + // will be replaced by the driver methods as soon as the driver is + // loaded, so there is no performance impact. + for (var i = 0, len = LibraryMethods.length; i < len; i++) { + callWhenReady(this, LibraryMethods[i]); + } + }; + + LocalForage.prototype.createInstance = function createInstance(options) { + return new LocalForage(options); + }; + + return LocalForage; +}(); + +// The actual localForage object that we expose as a module or via a +// global. It's extended by pulling in one of our other libraries. + + +var localforage_js = new LocalForage(); + +module.exports = localforage_js; + +},{"3":3}]},{},[4])(4) +}); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/lodash/_Symbol.js": +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__("./node_modules/lodash/_root.js"); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), + +/***/ "./node_modules/lodash/_baseGetTag.js": +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__("./node_modules/lodash/_Symbol.js"), + getRawTag = __webpack_require__("./node_modules/lodash/_getRawTag.js"), + objectToString = __webpack_require__("./node_modules/lodash/_objectToString.js"); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + + +/***/ }), + +/***/ "./node_modules/lodash/_freeGlobal.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/lodash/_getRawTag.js": +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__("./node_modules/lodash/_Symbol.js"); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; + + +/***/ }), + +/***/ "./node_modules/lodash/_objectToString.js": +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; + + +/***/ }), + +/***/ "./node_modules/lodash/_root.js": +/***/ (function(module, exports, __webpack_require__) { + +var freeGlobal = __webpack_require__("./node_modules/lodash/_freeGlobal.js"); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), + +/***/ "./node_modules/lodash/debounce.js": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("./node_modules/lodash/isObject.js"), + now = __webpack_require__("./node_modules/lodash/now.js"), + toNumber = __webpack_require__("./node_modules/lodash/toNumber.js"); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} + +module.exports = debounce; + + +/***/ }), + +/***/ "./node_modules/lodash/isObject.js": +/***/ (function(module, exports) { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), + +/***/ "./node_modules/lodash/isObjectLike.js": +/***/ (function(module, exports) { + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + + +/***/ }), + +/***/ "./node_modules/lodash/isSymbol.js": +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__("./node_modules/lodash/_baseGetTag.js"), + isObjectLike = __webpack_require__("./node_modules/lodash/isObjectLike.js"); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + + +/***/ }), + +/***/ "./node_modules/lodash/now.js": +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__("./node_modules/lodash/_root.js"); + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function() { + return root.Date.now(); +}; + +module.exports = now; + + +/***/ }), + +/***/ "./node_modules/lodash/throttle.js": +/***/ (function(module, exports, __webpack_require__) { + +var debounce = __webpack_require__("./node_modules/lodash/debounce.js"), + isObject = __webpack_require__("./node_modules/lodash/isObject.js"); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ +function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + 'leading': leading, + 'maxWait': wait, + 'trailing': trailing + }); +} + +module.exports = throttle; + + +/***/ }), + +/***/ "./node_modules/lodash/toNumber.js": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("./node_modules/lodash/isObject.js"), + isSymbol = __webpack_require__("./node_modules/lodash/isSymbol.js"); + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** Used to match leading and trailing whitespace. */ +var reTrim = /^\s+|\s+$/g; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +module.exports = toNumber; + + +/***/ }), + +/***/ "./node_modules/material-ui-icons/BeachAccess.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; + +var _ref = _react2.default.createElement('path', { d: 'M13.127 14.56l1.43-1.43 6.44 6.443L19.57 21zm4.293-5.73l2.86-2.86c-3.95-3.95-10.35-3.96-14.3-.02 3.93-1.3 8.31-.25 11.44 2.88zM5.95 5.98c-3.94 3.95-3.93 10.35.02 14.3l2.86-2.86C5.7 14.29 4.65 9.91 5.95 5.98zm.02-.02l-.01.01c-.38 3.01 1.17 6.88 4.3 10.02l5.73-5.73c-3.13-3.13-7.01-4.68-10.02-4.3z' }); + +var BeachAccess = function BeachAccess(props) { + return _react2.default.createElement( + SvgIconCustom, + props, + _ref + ); +}; + +BeachAccess = (0, _pure2.default)(BeachAccess); +BeachAccess.muiName = 'SvgIcon'; + +exports.default = BeachAccess; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui-icons/ExpandMore.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; + +var _ref = _react2.default.createElement('path', { d: 'M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z' }); + +var ExpandMore = function ExpandMore(props) { + return _react2.default.createElement( + SvgIconCustom, + props, + _ref + ); +}; + +ExpandMore = (0, _pure2.default)(ExpandMore); +ExpandMore.muiName = 'SvgIcon'; + +exports.default = ExpandMore; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui-icons/Folder.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; + +var _ref = _react2.default.createElement('path', { d: 'M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z' }); + +var Folder = function Folder(props) { + return _react2.default.createElement( + SvgIconCustom, + props, + _ref + ); +}; + +Folder = (0, _pure2.default)(Folder); +Folder.muiName = 'SvgIcon'; + +exports.default = Folder; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui-icons/Image.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; + +var _ref = _react2.default.createElement('path', { d: 'M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z' }); + +var Image = function Image(props) { + return _react2.default.createElement( + SvgIconCustom, + props, + _ref + ); +}; + +Image = (0, _pure2.default)(Image); +Image.muiName = 'SvgIcon'; + +exports.default = Image; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui-icons/Menu.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; + +var _ref = _react2.default.createElement('path', { d: 'M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z' }); + +var Menu = function Menu(props) { + return _react2.default.createElement( + SvgIconCustom, + props, + _ref + ); +}; + +Menu = (0, _pure2.default)(Menu); +Menu.muiName = 'SvgIcon'; + +exports.default = Menu; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui-icons/Work.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; + +var _ref = _react2.default.createElement('path', { d: 'M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z' }); + +var Work = function Work(props) { + return _react2.default.createElement( + SvgIconCustom, + props, + _ref + ); +}; + +Work = (0, _pure2.default)(Work); +Work.muiName = 'SvgIcon'; + +exports.default = Work; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/AppBar/AppBar.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent Paper + +var styles = exports.styles = function styles(theme) { + var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900]; + + return { + root: { + display: 'flex', + flexDirection: 'column', + width: '100%', + boxSizing: 'border-box', // Prevent padding issue with the Modal and fixed positioned AppBar. + zIndex: theme.zIndex.appBar, + flexShrink: 0 + }, + positionFixed: { + position: 'fixed', + top: 0, + left: 'auto', + right: 0 + }, + positionAbsolute: { + position: 'absolute', + top: 0, + left: 'auto', + right: 0 + }, + positionSticky: { + position: 'sticky', + top: 0, + left: 'auto', + right: 0 + }, + positionStatic: { + position: 'static' + }, + colorDefault: { + backgroundColor: backgroundColorDefault, + color: theme.palette.getContrastText(backgroundColorDefault) + }, + colorPrimary: { + backgroundColor: theme.palette.primary.main, + color: theme.palette.primary.contrastText + }, + colorSecondary: { + backgroundColor: theme.palette.secondary.main, + color: theme.palette.secondary.contrastText + } + }; +}; + +function AppBar(props) { + var _classNames; + + var children = props.children, + classes = props.classes, + classNameProp = props.className, + color = props.color, + position = props.position, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'position']); + + + var className = (0, _classnames2.default)(classes.root, classes['position' + (0, _helpers.capitalize)(position)], (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), (0, _defineProperty3.default)(_classNames, 'mui-fixed', position === 'fixed'), _classNames), classNameProp); + + return _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ square: true, component: 'header', elevation: 4, className: className }, other), + children + ); +} + +AppBar.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['inherit', 'primary', 'secondary', 'default']), + /** + * The positioning type. The behavior of the different options is described + * [here](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning). + * Note: `sticky` is not universally supported and will fall back to `static` when unavailable. + */ + position: _propTypes2.default.oneOf(['fixed', 'absolute', 'sticky', 'static']) +} : {}; + +AppBar.defaultProps = { + color: 'primary', + position: 'fixed' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiAppBar' })(AppBar); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/AppBar/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _AppBar = __webpack_require__("./node_modules/material-ui/AppBar/AppBar.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_AppBar).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Avatar/Avatar.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + position: 'relative', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + flexShrink: 0, + width: theme.spacing.unit * 5, + height: theme.spacing.unit * 5, + fontFamily: theme.typography.fontFamily, + fontSize: theme.typography.pxToRem(20), + borderRadius: '50%', + overflow: 'hidden', + userSelect: 'none' + }, + colorDefault: { + color: theme.palette.background.default, + backgroundColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600] + }, + img: { + width: '100%', + height: '100%', + textAlign: 'center', + // Handle non-square image. The property isn't supported by IE11. + objectFit: 'cover' + } + }; +}; + +function Avatar(props) { + var alt = props.alt, + childrenProp = props.children, + childrenClassNameProp = props.childrenClassName, + classes = props.classes, + classNameProp = props.className, + Component = props.component, + imgProps = props.imgProps, + sizes = props.sizes, + src = props.src, + srcSet = props.srcSet, + other = (0, _objectWithoutProperties3.default)(props, ['alt', 'children', 'childrenClassName', 'classes', 'className', 'component', 'imgProps', 'sizes', 'src', 'srcSet']); + + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.colorDefault, childrenProp && !src && !srcSet), classNameProp); + var children = null; + + if (childrenProp) { + if (childrenClassNameProp && typeof childrenProp !== 'string' && _react2.default.isValidElement(childrenProp)) { + var childrenClassName = (0, _classnames2.default)(childrenClassNameProp, childrenProp.props.className); + children = _react2.default.cloneElement(childrenProp, { className: childrenClassName }); + } else { + children = childrenProp; + } + } else if (src || srcSet) { + children = _react2.default.createElement('img', (0, _extends3.default)({ + alt: alt, + src: src, + srcSet: srcSet, + sizes: sizes, + className: classes.img + }, imgProps)); + } + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ className: className }, other), + children + ); +} + +Avatar.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Used in combination with `src` or `srcSet` to + * provide an alt attribute for the rendered `img` element. + */ + alt: _propTypes2.default.string, + /** + * Used to render icon or text elements inside the Avatar. + * `src` and `alt` props will not be used and no `img` will + * be rendered by default. + * + * This can be an element, or just a string. + */ + children: _propTypes2.default.node, + /** + * @ignore + * The className of the child element. + * Used by Chip and ListItemIcon to style the Avatar icon. + */ + childrenClassName: _propTypes2.default.string, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Properties applied to the `img` element when the component + * is used to display an image. + */ + imgProps: _propTypes2.default.object, + /** + * The `sizes` attribute for the `img` element. + */ + sizes: _propTypes2.default.string, + /** + * The `src` attribute for the `img` element. + */ + src: _propTypes2.default.string, + /** + * The `srcSet` attribute for the `img` element. + */ + srcSet: _propTypes2.default.string +} : {}; + +Avatar.defaultProps = { + component: 'div' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiAvatar' })(Avatar); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Avatar/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Avatar = __webpack_require__("./node_modules/material-ui/Avatar/Avatar.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Avatar).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Badge/Badge.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var RADIUS = 12; + +var styles = exports.styles = function styles(theme) { + return { + root: { + position: 'relative', + display: 'inline-flex', + // For correct alignment with the text. + verticalAlign: 'middle' + }, + badge: { + display: 'flex', + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'center', + alignContent: 'center', + alignItems: 'center', + position: 'absolute', + top: -RADIUS, + right: -RADIUS, + fontFamily: theme.typography.fontFamily, + fontWeight: theme.typography.fontWeight, + fontSize: theme.typography.pxToRem(RADIUS), + width: RADIUS * 2, + height: RADIUS * 2, + borderRadius: '50%', + backgroundColor: theme.palette.color, + color: theme.palette.textColor, + zIndex: 1 // Render the badge on top of potential ripples. + }, + colorPrimary: { + backgroundColor: theme.palette.primary.main, + color: theme.palette.primary.contrastText + }, + colorSecondary: { + backgroundColor: theme.palette.secondary.main, + color: theme.palette.secondary.contrastText + }, + colorError: { + backgroundColor: theme.palette.error.main, + color: theme.palette.error.contrastText + } + }; +}; + +function Badge(props) { + var badgeContent = props.badgeContent, + children = props.children, + classes = props.classes, + classNameProp = props.className, + color = props.color, + ComponentProp = props.component, + other = (0, _objectWithoutProperties3.default)(props, ['badgeContent', 'children', 'classes', 'className', 'color', 'component']); + + + var badgeClassName = (0, _classnames2.default)(classes.badge, (0, _defineProperty3.default)({}, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default')); + + return _react2.default.createElement( + ComponentProp, + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, classNameProp) }, other), + children, + _react2.default.createElement( + 'span', + { className: badgeClassName }, + badgeContent + ) + ); +} + +Badge.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content rendered within the badge. + */ + badgeContent: _propTypes2.default.node.isRequired, + /** + * The badge will be added relative to this node. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['default', 'primary', 'secondary', 'error']), + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) +} : {}; + +Badge.defaultProps = { + color: 'default', + component: 'span' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBadge' })(Badge); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Badge/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Badge = __webpack_require__("./node_modules/material-ui/Badge/Badge.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Badge).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/BottomNavigation/BottomNavigation.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + justifyContent: 'center', + height: 56, + backgroundColor: theme.palette.background.paper + } + }; +}; + +function BottomNavigation(props) { + var childrenProp = props.children, + classes = props.classes, + classNameProp = props.className, + onChange = props.onChange, + showLabels = props.showLabels, + value = props.value, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'onChange', 'showLabels', 'value']); + + + var className = (0, _classnames2.default)(classes.root, classNameProp); + + var children = _react2.default.Children.map(childrenProp, function (child, childIndex) { + if (!_react2.default.isValidElement(child)) { + return null; + } + + var childValue = child.props.value || childIndex; + return _react2.default.cloneElement(child, { + selected: childValue === value, + showLabel: child.props.showLabel !== undefined ? child.props.showLabel : showLabels, + value: childValue, + onChange: onChange + }); + }); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + children + ); +} + +BottomNavigation.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Callback fired when the value changes. + * + * @param {object} event The event source of the callback + * @param {any} value We default to the index of the child + */ + onChange: _propTypes2.default.func, + /** + * If `true`, all `BottomNavigationAction`s will show their labels. + * By default, only the selected `BottomNavigationAction` will show its label. + */ + showLabels: _propTypes2.default.bool, + /** + * The value of the currently selected `BottomNavigationAction`. + */ + value: _propTypes2.default.any +} : {}; + +BottomNavigation.defaultProps = { + showLabels: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBottomNavigation' })(BottomNavigation); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/BottomNavigation/BottomNavigationAction.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + transition: theme.transitions.create(['color', 'padding-top'], { + duration: theme.transitions.duration.short + }), + paddingTop: theme.spacing.unit, + paddingBottom: 10, + paddingLeft: 12, + paddingRight: 12, + minWidth: 80, + maxWidth: 168, + color: theme.palette.text.secondary, + flex: '1' + }, + selected: { + paddingTop: 6, + color: theme.palette.primary.main + }, + selectedIconOnly: { + paddingTop: theme.spacing.unit * 2 + }, + wrapper: { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + width: '100%', + flexDirection: 'column' + }, + label: { + fontFamily: theme.typography.fontFamily, + fontSize: theme.typography.pxToRem(theme.typography.fontSize - 2), + opacity: 1, + transition: 'font-size 0.2s, opacity 0.2s', + transitionDelay: '0.1s' + }, + selectedLabel: { + fontSize: theme.typography.pxToRem(theme.typography.fontSize) + }, + hiddenLabel: { + opacity: 0, + transitionDelay: '0s' + } + }; +}; // @inheritedComponent ButtonBase + +var BottomNavigationAction = function (_React$Component) { + (0, _inherits3.default)(BottomNavigationAction, _React$Component); + + function BottomNavigationAction() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, BottomNavigationAction); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = BottomNavigationAction.__proto__ || (0, _getPrototypeOf2.default)(BottomNavigationAction)).call.apply(_ref, [this].concat(args))), _this), _this.handleChange = function (event) { + var _this$props = _this.props, + onChange = _this$props.onChange, + value = _this$props.value, + onClick = _this$props.onClick; + + + if (onChange) { + onChange(event, value); + } + + if (onClick) { + onClick(event); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(BottomNavigationAction, [{ + key: 'render', + value: function render() { + var _classNames, _classNames2; + + var _props = this.props, + classes = _props.classes, + classNameProp = _props.className, + icon = _props.icon, + label = _props.label, + onChange = _props.onChange, + onClick = _props.onClick, + selected = _props.selected, + showLabelProp = _props.showLabel, + value = _props.value, + other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'icon', 'label', 'onChange', 'onClick', 'selected', 'showLabel', 'value']); + + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.selected, selected), (0, _defineProperty3.default)(_classNames, classes.selectedIconOnly, !showLabelProp && !selected), _classNames), classNameProp); + + var labelClassName = (0, _classnames2.default)(classes.label, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.selectedLabel, selected), (0, _defineProperty3.default)(_classNames2, classes.hiddenLabel, !showLabelProp && !selected), _classNames2)); + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends3.default)({ className: className, focusRipple: true, onClick: this.handleChange }, other), + _react2.default.createElement( + 'span', + { className: classes.wrapper }, + icon, + _react2.default.createElement( + 'span', + { className: labelClassName }, + label + ) + ) + ); + } + }]); + return BottomNavigationAction; +}(_react2.default.Component); + +BottomNavigationAction.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The icon element. + */ + icon: _propTypes2.default.node, + /** + * The label element. + */ + label: _propTypes2.default.node, + /** + * @ignore + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + onClick: _propTypes2.default.func, + /** + * @ignore + */ + selected: _propTypes2.default.bool, + /** + * If `true`, the BottomNavigationAction will show its label. + */ + showLabel: _propTypes2.default.bool, + /** + * You can provide your own value. Otherwise, we fallback to the child position index. + */ + value: _propTypes2.default.any +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBottomNavigationAction' })(BottomNavigationAction); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/BottomNavigation/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _BottomNavigation = __webpack_require__("./node_modules/material-ui/BottomNavigation/BottomNavigation.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_BottomNavigation).default; + } +}); + +var _BottomNavigationAction = __webpack_require__("./node_modules/material-ui/BottomNavigation/BottomNavigationAction.js"); + +Object.defineProperty(exports, 'BottomNavigationAction', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_BottomNavigationAction).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Button/Button.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent ButtonBase + +var styles = exports.styles = function styles(theme) { + return { + root: (0, _extends3.default)({}, theme.typography.button, { + lineHeight: '1.4em', // Improve readability for multiline button. + boxSizing: 'border-box', + minWidth: theme.spacing.unit * 11, + minHeight: 36, + padding: theme.spacing.unit + 'px ' + theme.spacing.unit * 2 + 'px', + borderRadius: 2, + color: theme.palette.text.primary, + transition: theme.transitions.create(['background-color', 'box-shadow'], { + duration: theme.transitions.duration.short + }), + '&:hover': { + textDecoration: 'none', + // Reset on mouse devices + backgroundColor: (0, _colorManipulator.fade)(theme.palette.text.primary, 0.12), + '@media (hover: none)': { + backgroundColor: 'transparent' + }, + '&$disabled': { + backgroundColor: 'transparent' + } + } + }), + label: { + width: '100%', + display: 'inherit', + alignItems: 'inherit', + justifyContent: 'inherit' + }, + flatPrimary: { + color: theme.palette.primary.main, + '&:hover': { + backgroundColor: (0, _colorManipulator.fade)(theme.palette.primary.main, 0.12), + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: 'transparent' + } + } + }, + flatSecondary: { + color: theme.palette.secondary.main, + '&:hover': { + backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.main, 0.12), + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: 'transparent' + } + } + }, + colorInherit: { + color: 'inherit' + }, + raised: { + color: theme.palette.getContrastText(theme.palette.grey[300]), + backgroundColor: theme.palette.grey[300], + boxShadow: theme.shadows[2], + '&$keyboardFocused': { + boxShadow: theme.shadows[6] + }, + '&:active': { + boxShadow: theme.shadows[8] + }, + '&$disabled': { + boxShadow: theme.shadows[0], + backgroundColor: theme.palette.action.disabledBackground + }, + '&:hover': { + backgroundColor: theme.palette.grey.A100, + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: theme.palette.grey[300] + }, + '&$disabled': { + backgroundColor: theme.palette.action.disabledBackground + } + } + }, + keyboardFocused: {}, + raisedPrimary: { + color: theme.palette.primary.contrastText, + backgroundColor: theme.palette.primary.main, + '&:hover': { + backgroundColor: theme.palette.primary.dark, + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: theme.palette.primary.main + } + } + }, + raisedSecondary: { + color: theme.palette.secondary.contrastText, + backgroundColor: theme.palette.secondary.main, + '&:hover': { + backgroundColor: theme.palette.secondary.dark, + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: theme.palette.secondary.main + } + } + }, + disabled: { + color: theme.palette.action.disabled + }, + fab: { + borderRadius: '50%', + padding: 0, + minWidth: 0, + width: 56, + fontSize: 24, + height: 56, + boxShadow: theme.shadows[6], + '&:active': { + boxShadow: theme.shadows[12] + } + }, + mini: { + width: 40, + height: 40 + }, + sizeSmall: { + padding: theme.spacing.unit - 1 + 'px ' + theme.spacing.unit + 'px', + minWidth: theme.spacing.unit * 8, + minHeight: 32, + fontSize: theme.typography.pxToRem(theme.typography.fontSize - 1) + }, + sizeLarge: { + padding: theme.spacing.unit + 'px ' + theme.spacing.unit * 3 + 'px', + minWidth: theme.spacing.unit * 14, + minHeight: 40, + fontSize: theme.typography.pxToRem(theme.typography.fontSize + 1) + }, + fullWidth: { + width: '100%' + } + }; +}; + +function Button(props) { + var _classNames; + + var childrenProp = props.children, + classes = props.classes, + classNameProp = props.className, + color = props.color, + disabled = props.disabled, + disableFocusRipple = props.disableFocusRipple, + fullWidth = props.fullWidth, + mini = props.mini, + size = props.size, + variant = props.variant, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'disabled', 'disableFocusRipple', 'fullWidth', 'mini', 'size', 'variant']); + + + var fab = variant === 'fab'; + var raised = variant === 'raised'; + var flat = !raised && !fab; + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.raised, raised || fab), (0, _defineProperty3.default)(_classNames, classes.fab, fab), (0, _defineProperty3.default)(_classNames, classes.mini, fab && mini), (0, _defineProperty3.default)(_classNames, classes.colorInherit, color === 'inherit'), (0, _defineProperty3.default)(_classNames, classes.flatPrimary, flat && color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.flatSecondary, flat && color === 'secondary'), (0, _defineProperty3.default)(_classNames, classes.raisedPrimary, !flat && color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.raisedSecondary, !flat && color === 'secondary'), (0, _defineProperty3.default)(_classNames, classes['size' + (0, _helpers.capitalize)(size)], size !== 'medium'), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), _classNames), classNameProp); + + var children = childrenProp; + + if (fab) { + children = _react2.default.Children.map(children, function (child) { + if ((0, _reactHelpers.isMuiElement)(child, ['Icon', 'SvgIcon'])) { + return _react2.default.cloneElement(child, { fontSize: true }); + } + return child; + }); + } + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends3.default)({ + className: className, + disabled: disabled, + focusRipple: !disableFocusRipple, + keyboardFocusedClassName: classes.keyboardFocused + }, other), + _react2.default.createElement( + 'span', + { className: classes.label }, + children + ) + ); +} + +Button.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the button. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['default', 'inherit', 'primary', 'secondary']), + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + * The default value is a `button`. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the button will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the keyboard focus ripple will be disabled. + * `disableRipple` must also be true. + */ + disableFocusRipple: _propTypes2.default.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: _propTypes2.default.bool, + /** + * If `true`, the button will take up the full width of its container. + */ + fullWidth: _propTypes2.default.bool, + /** + * The URL to link to when the button is clicked. + * If defined, an `a` element will be used as the root node. + */ + href: _propTypes2.default.string, + /** + * If `true`, and `fab` is `true`, will use mini floating action button styling. + */ + mini: _propTypes2.default.bool, + /** + * The size of the button. + * `small` is equivalent to the dense button styling. + */ + size: _propTypes2.default.oneOf(['small', 'medium', 'large']), + /** + * @ignore + */ + type: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + variant: _propTypes2.default.oneOf(['flat', 'raised', 'fab']) +} : {}; + +Button.defaultProps = { + color: 'default', + disabled: false, + disableFocusRipple: false, + disableRipple: false, + fullWidth: false, + mini: false, + size: 'medium', + type: 'button', + variant: 'flat' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiButton' })(Button); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Button/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Button = __webpack_require__("./node_modules/material-ui/Button/Button.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Button).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/ButtonBase/ButtonBase.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _keycode = __webpack_require__("./node_modules/keycode/index.js"); + +var _keycode2 = _interopRequireDefault(_keycode); + +var _ownerWindow = __webpack_require__("./node_modules/dom-helpers/ownerWindow.js"); + +var _ownerWindow2 = _interopRequireDefault(_ownerWindow); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _keyboardFocus = __webpack_require__("./node_modules/material-ui/utils/keyboardFocus.js"); + +var _TouchRipple = __webpack_require__("./node_modules/material-ui/ButtonBase/TouchRipple.js"); + +var _TouchRipple2 = _interopRequireDefault(_TouchRipple); + +var _createRippleHandler = __webpack_require__("./node_modules/material-ui/ButtonBase/createRippleHandler.js"); + +var _createRippleHandler2 = _interopRequireDefault(_createRippleHandler); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + position: 'relative', + // Remove grey highlight + WebkitTapHighlightColor: 'transparent', + backgroundColor: 'transparent', // Reset default value + outline: 'none', + border: 0, + margin: 0, // Remove the margin in Safari + borderRadius: 0, + padding: 0, // Remove the padding in Firefox + cursor: 'pointer', + userSelect: 'none', + verticalAlign: 'middle', + '-moz-appearance': 'none', // Reset + '-webkit-appearance': 'none', // Reset + textDecoration: 'none', + // So we take precedent over the style of a native element. + color: 'inherit', + '&::-moz-focus-inner': { + borderStyle: 'none' // Remove Firefox dotted outline. + } + }, + disabled: { + pointerEvents: 'none', // Disable link interactions + cursor: 'default' + } +}; + +// Don't automatically add the role="button" property on these components. +// It's invalid HTML syntax. +var INVALID_COMPONENT_ROLE = ['a']; + +/** + * `ButtonBase` contains as few styles as possible. + * It aims to be a simple building block for creating a button. + * It contains a load of style reset and some focus/ripple logic. + */ + +var ButtonBase = function (_React$Component) { + (0, _inherits3.default)(ButtonBase, _React$Component); + + function ButtonBase() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, ButtonBase); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ButtonBase.__proto__ || (0, _getPrototypeOf2.default)(ButtonBase)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + keyboardFocused: false + }, _this.onKeyboardFocusHandler = function (event) { + _this.keyDown = false; + _this.setState({ keyboardFocused: true }); + + if (_this.props.onKeyboardFocus) { + _this.props.onKeyboardFocus(event); + } + }, _this.onRippleRef = function (node) { + _this.ripple = node; + }, _this.ripple = null, _this.keyDown = false, _this.button = null, _this.keyboardFocusTimeout = null, _this.keyboardFocusCheckTime = 50, _this.keyboardFocusMaxCheckTimes = 5, _this.handleKeyDown = function (event) { + var _this$props = _this.props, + component = _this$props.component, + focusRipple = _this$props.focusRipple, + onKeyDown = _this$props.onKeyDown, + onClick = _this$props.onClick; + + var key = (0, _keycode2.default)(event); + + // Check if key is already down to avoid repeats being counted as multiple activations + if (focusRipple && !_this.keyDown && _this.state.keyboardFocused && _this.ripple && key === 'space') { + _this.keyDown = true; + event.persist(); + _this.ripple.stop(event, function () { + _this.ripple.start(event); + }); + } + + if (onKeyDown) { + onKeyDown(event); + } + + // Keyboard accessibility for non interactive elements + if (event.target === _this.button && onClick && component && component !== 'a' && component !== 'button' && (key === 'space' || key === 'enter')) { + event.preventDefault(); + onClick(event); + } + }, _this.handleKeyUp = function (event) { + if (_this.props.focusRipple && (0, _keycode2.default)(event) === 'space' && _this.ripple && _this.state.keyboardFocused) { + _this.keyDown = false; + event.persist(); + _this.ripple.stop(event, function () { + return _this.ripple.pulsate(event); + }); + } + if (_this.props.onKeyUp) { + _this.props.onKeyUp(event); + } + }, _this.handleMouseDown = (0, _createRippleHandler2.default)(_this, 'MouseDown', 'start', function () { + clearTimeout(_this.keyboardFocusTimeout); + (0, _keyboardFocus.focusKeyPressed)(false); + if (_this.state.keyboardFocused) { + _this.setState({ keyboardFocused: false }); + } + }), _this.handleMouseUp = (0, _createRippleHandler2.default)(_this, 'MouseUp', 'stop'), _this.handleMouseLeave = (0, _createRippleHandler2.default)(_this, 'MouseLeave', 'stop', function (event) { + if (_this.state.keyboardFocused) { + event.preventDefault(); + } + }), _this.handleTouchStart = (0, _createRippleHandler2.default)(_this, 'TouchStart', 'start'), _this.handleTouchEnd = (0, _createRippleHandler2.default)(_this, 'TouchEnd', 'stop'), _this.handleTouchMove = (0, _createRippleHandler2.default)(_this, 'TouchEnd', 'stop'), _this.handleBlur = (0, _createRippleHandler2.default)(_this, 'Blur', 'stop', function () { + clearTimeout(_this.keyboardFocusTimeout); + (0, _keyboardFocus.focusKeyPressed)(false); + _this.setState({ keyboardFocused: false }); + }), _this.handleFocus = function (event) { + if (_this.props.disabled) { + return; + } + + // Fix for https://github.com/facebook/react/issues/7769 + if (!_this.button) { + _this.button = event.currentTarget; + } + + event.persist(); + (0, _keyboardFocus.detectKeyboardFocus)(_this, _this.button, function () { + _this.onKeyboardFocusHandler(event); + }); + + if (_this.props.onFocus) { + _this.props.onFocus(event); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(ButtonBase, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.button = (0, _reactDom.findDOMNode)(this); + (0, _keyboardFocus.listenForFocusKeys)((0, _ownerWindow2.default)(this.button)); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + // The blur won't fire when the disabled state is set on a focused input. + // We need to book keep the focused state manually. + if (!this.props.disabled && nextProps.disabled && this.state.keyboardFocused) { + this.setState({ + keyboardFocused: false + }); + } + } + }, { + key: 'componentWillUpdate', + value: function componentWillUpdate(nextProps, nextState) { + if (this.props.focusRipple && nextState.keyboardFocused && !this.state.keyboardFocused && !this.props.disableRipple) { + this.ripple.pulsate(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.button = null; + clearTimeout(this.keyboardFocusTimeout); + } // Used to help track keyboard activation keyDown + + }, { + key: 'render', + value: function render() { + var _classNames; + + var _props = this.props, + buttonRef = _props.buttonRef, + centerRipple = _props.centerRipple, + children = _props.children, + classes = _props.classes, + classNameProp = _props.className, + component = _props.component, + disabled = _props.disabled, + disableRipple = _props.disableRipple, + focusRipple = _props.focusRipple, + keyboardFocusedClassName = _props.keyboardFocusedClassName, + onBlur = _props.onBlur, + onFocus = _props.onFocus, + onKeyboardFocus = _props.onKeyboardFocus, + onKeyDown = _props.onKeyDown, + onKeyUp = _props.onKeyUp, + onMouseDown = _props.onMouseDown, + onMouseLeave = _props.onMouseLeave, + onMouseUp = _props.onMouseUp, + onTouchEnd = _props.onTouchEnd, + onTouchMove = _props.onTouchMove, + onTouchStart = _props.onTouchStart, + tabIndex = _props.tabIndex, + type = _props.type, + other = (0, _objectWithoutProperties3.default)(_props, ['buttonRef', 'centerRipple', 'children', 'classes', 'className', 'component', 'disabled', 'disableRipple', 'focusRipple', 'keyboardFocusedClassName', 'onBlur', 'onFocus', 'onKeyboardFocus', 'onKeyDown', 'onKeyUp', 'onMouseDown', 'onMouseLeave', 'onMouseUp', 'onTouchEnd', 'onTouchMove', 'onTouchStart', 'tabIndex', 'type']); + + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, keyboardFocusedClassName || '', this.state.keyboardFocused), _classNames), classNameProp); + + var buttonProps = {}; + + var ComponentProp = component; + + if (!ComponentProp) { + if (other.href) { + ComponentProp = 'a'; + } else { + ComponentProp = 'button'; + } + } + + if (ComponentProp === 'button') { + buttonProps.type = type || 'button'; + buttonProps.disabled = disabled; + } else if (INVALID_COMPONENT_ROLE.indexOf(ComponentProp) === -1) { + buttonProps.role = 'button'; + } + + return _react2.default.createElement( + ComponentProp, + (0, _extends3.default)({ + onBlur: this.handleBlur, + onFocus: this.handleFocus, + onKeyDown: this.handleKeyDown, + onKeyUp: this.handleKeyUp, + onMouseDown: this.handleMouseDown, + onMouseLeave: this.handleMouseLeave, + onMouseUp: this.handleMouseUp, + onTouchEnd: this.handleTouchEnd, + onTouchMove: this.handleTouchMove, + onTouchStart: this.handleTouchStart, + tabIndex: disabled ? -1 : tabIndex, + className: className, + ref: buttonRef + }, buttonProps, other), + children, + !disableRipple && !disabled ? _react2.default.createElement(_TouchRipple2.default, { innerRef: this.onRippleRef, center: centerRipple }) : null + ); + } + }]); + return ButtonBase; +}(_react2.default.Component); + +ButtonBase.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Use that property to pass a ref callback to the native button component. + */ + buttonRef: _propTypes2.default.func, + /** + * If `true`, the ripples will be centered. + * They won't start at the cursor interaction position. + */ + centerRipple: _propTypes2.default.bool, + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + * The default value is a `button`. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the base button will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: _propTypes2.default.bool, + /** + * If `true`, the base button will have a keyboard focus ripple. + * `disableRipple` must also be `false`. + */ + focusRipple: _propTypes2.default.bool, + /** + * The CSS class applied while the component is keyboard focused. + */ + keyboardFocusedClassName: _propTypes2.default.string, + /** + * @ignore + */ + onBlur: _propTypes2.default.func, + /** + * @ignore + */ + onClick: _propTypes2.default.func, + /** + * @ignore + */ + onFocus: _propTypes2.default.func, + /** + * Callback fired when the component is focused with a keyboard. + * We trigger a `onFocus` callback too. + */ + onKeyboardFocus: _propTypes2.default.func, + /** + * @ignore + */ + onKeyDown: _propTypes2.default.func, + /** + * @ignore + */ + onKeyUp: _propTypes2.default.func, + /** + * @ignore + */ + onMouseDown: _propTypes2.default.func, + /** + * @ignore + */ + onMouseLeave: _propTypes2.default.func, + /** + * @ignore + */ + onMouseUp: _propTypes2.default.func, + /** + * @ignore + */ + onTouchEnd: _propTypes2.default.func, + /** + * @ignore + */ + onTouchMove: _propTypes2.default.func, + /** + * @ignore + */ + onTouchStart: _propTypes2.default.func, + /** + * @ignore + */ + role: _propTypes2.default.string, + /** + * @ignore + */ + tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), + /** + * @ignore + */ + type: _propTypes2.default.string +} : {}; + +ButtonBase.defaultProps = { + centerRipple: false, + disableRipple: false, + focusRipple: false, + tabIndex: 0, + type: 'button' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiButtonBase' })(ButtonBase); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/ButtonBase/Ripple.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var Ripple = function (_React$Component) { + (0, _inherits3.default)(Ripple, _React$Component); + + function Ripple() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Ripple); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Ripple.__proto__ || (0, _getPrototypeOf2.default)(Ripple)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + rippleVisible: false, + rippleLeaving: false + }, _this.handleEnter = function () { + _this.setState({ + rippleVisible: true + }); + }, _this.handleExit = function () { + _this.setState({ + rippleLeaving: true + }); + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Ripple, [{ + key: 'render', + value: function render() { + var _classNames, _classNames2; + + var _props = this.props, + classes = _props.classes, + classNameProp = _props.className, + pulsate = _props.pulsate, + rippleX = _props.rippleX, + rippleY = _props.rippleY, + rippleSize = _props.rippleSize, + other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'pulsate', 'rippleX', 'rippleY', 'rippleSize']); + var _state = this.state, + rippleVisible = _state.rippleVisible, + rippleLeaving = _state.rippleLeaving; + + + var className = (0, _classnames2.default)(classes.wrapper, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.wrapperLeaving, rippleLeaving), (0, _defineProperty3.default)(_classNames, classes.wrapperPulsating, pulsate), _classNames), classNameProp); + + var rippleClassName = (0, _classnames2.default)(classes.ripple, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.rippleVisible, rippleVisible), (0, _defineProperty3.default)(_classNames2, classes.rippleFast, pulsate), _classNames2)); + + var rippleStyles = { + width: rippleSize, + height: rippleSize, + top: -(rippleSize / 2) + rippleY, + left: -(rippleSize / 2) + rippleX + }; + + return _react2.default.createElement( + _Transition2.default, + (0, _extends3.default)({ onEnter: this.handleEnter, onExit: this.handleExit }, other), + _react2.default.createElement( + 'span', + { className: className }, + _react2.default.createElement('span', { className: rippleClassName, style: rippleStyles }) + ) + ); + } + }]); + return Ripple; +}(_react2.default.Component); + +Ripple.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element. + */ + pulsate: _propTypes2.default.bool, + /** + * Diameter of the ripple. + */ + rippleSize: _propTypes2.default.number, + /** + * Horizontal position of the ripple center. + */ + rippleX: _propTypes2.default.number, + /** + * Vertical position of the ripple center. + */ + rippleY: _propTypes2.default.number +} : {}; + +Ripple.defaultProps = { + pulsate: false +}; + +exports.default = Ripple; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/ButtonBase/TouchRipple.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = exports.DELAY_RIPPLE = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); + +var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _TransitionGroup = __webpack_require__("./node_modules/react-transition-group/TransitionGroup.js"); + +var _TransitionGroup2 = _interopRequireDefault(_TransitionGroup); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Ripple = __webpack_require__("./node_modules/material-ui/ButtonBase/Ripple.js"); + +var _Ripple2 = _interopRequireDefault(_Ripple); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var DURATION = 550; +var DELAY_RIPPLE = exports.DELAY_RIPPLE = 80; + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'block', + position: 'absolute', + overflow: 'hidden', + borderRadius: 'inherit', + width: '100%', + height: '100%', + left: 0, + top: 0, + pointerEvents: 'none', + zIndex: 0 + }, + wrapper: { + opacity: 1 + }, + wrapperLeaving: { + opacity: 0, + animation: 'mui-ripple-exit ' + DURATION + 'ms ' + theme.transitions.easing.easeInOut + }, + wrapperPulsating: { + position: 'absolute', + left: 0, + top: 0, + display: 'block', + width: '100%', + height: '100%', + animation: 'mui-ripple-pulsate 2500ms ' + theme.transitions.easing.easeInOut + ' 200ms infinite' + }, + '@keyframes mui-ripple-enter': { + '0%': { + transform: 'scale(0)' + }, + '100%': { + transform: 'scale(1)' + } + }, + '@keyframes mui-ripple-exit': { + '0%': { + opacity: 1 + }, + '100%': { + opacity: 0 + } + }, + '@keyframes mui-ripple-pulsate': { + '0%': { + transform: 'scale(1)' + }, + '50%': { + transform: 'scale(0.92)' + }, + '100%': { + transform: 'scale(1)' + } + }, + ripple: { + width: 50, + height: 50, + left: 0, + top: 0, + opacity: 0, + position: 'absolute', + borderRadius: '50%', + background: 'currentColor' + }, + rippleVisible: { + opacity: 0.3, + transform: 'scale(1)', + animation: 'mui-ripple-enter ' + DURATION + 'ms ' + theme.transitions.easing.easeInOut + }, + rippleFast: { + animationDuration: '200ms' + } + }; +}; + +/** + * @ignore - internal component. + */ + +var TouchRipple = function (_React$Component) { + (0, _inherits3.default)(TouchRipple, _React$Component); + + function TouchRipple() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, TouchRipple); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TouchRipple.__proto__ || (0, _getPrototypeOf2.default)(TouchRipple)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + nextKey: 0, + ripples: [] + }, _this.ignoringMouseDown = false, _this.startTimer = null, _this.startTimerCommit = null, _this.pulsate = function () { + _this.start({}, { pulsate: true }); + }, _this.start = function () { + var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var cb = arguments[2]; + var _options$pulsate = options.pulsate, + pulsate = _options$pulsate === undefined ? false : _options$pulsate, + _options$center = options.center, + center = _options$center === undefined ? _this.props.center || options.pulsate : _options$center, + _options$fakeElement = options.fakeElement, + fakeElement = _options$fakeElement === undefined ? false : _options$fakeElement; + + + if (event.type === 'mousedown' && _this.ignoringMouseDown) { + _this.ignoringMouseDown = false; + return; + } + + if (event.type === 'touchstart') { + _this.ignoringMouseDown = true; + } + + var element = fakeElement ? null : _reactDom2.default.findDOMNode(_this); + var rect = element ? element.getBoundingClientRect() : { + width: 0, + height: 0, + left: 0, + top: 0 + }; + + // Get the size of the ripple + var rippleX = void 0; + var rippleY = void 0; + var rippleSize = void 0; + + if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) { + rippleX = Math.round(rect.width / 2); + rippleY = Math.round(rect.height / 2); + } else { + var clientX = event.clientX ? event.clientX : event.touches[0].clientX; + var clientY = event.clientY ? event.clientY : event.touches[0].clientY; + rippleX = Math.round(clientX - rect.left); + rippleY = Math.round(clientY - rect.top); + } + + if (center) { + rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); + + // For some reason the animation is broken on Mobile Chrome if the size if even. + if (rippleSize % 2 === 0) { + rippleSize += 1; + } + } else { + var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2; + var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2; + rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2)); + } + + // Touche devices + if (event.touches) { + // Prepare the ripple effect. + _this.startTimerCommit = function () { + _this.startCommit({ pulsate: pulsate, rippleX: rippleX, rippleY: rippleY, rippleSize: rippleSize, cb: cb }); + }; + // Deplay the execution of the ripple effect. + _this.startTimer = setTimeout(function () { + _this.startTimerCommit(); + _this.startTimerCommit = null; + }, DELAY_RIPPLE); // We have to make a tradeoff with this value. + } else { + _this.startCommit({ pulsate: pulsate, rippleX: rippleX, rippleY: rippleY, rippleSize: rippleSize, cb: cb }); + } + }, _this.startCommit = function (params) { + var pulsate = params.pulsate, + rippleX = params.rippleX, + rippleY = params.rippleY, + rippleSize = params.rippleSize, + cb = params.cb; + + var ripples = _this.state.ripples; + + // Add a ripple to the ripples array. + ripples = [].concat((0, _toConsumableArray3.default)(ripples), [_react2.default.createElement(_Ripple2.default, { + key: _this.state.nextKey, + classes: _this.props.classes, + timeout: { + exit: DURATION, + enter: DURATION + }, + pulsate: pulsate, + rippleX: rippleX, + rippleY: rippleY, + rippleSize: rippleSize + })]); + + _this.setState({ + nextKey: _this.state.nextKey + 1, + ripples: ripples + }, cb); + }, _this.stop = function (event, cb) { + clearTimeout(_this.startTimer); + var ripples = _this.state.ripples; + + // The touch interaction occures to quickly. + // We still want to show ripple effect. + + if (event.type === 'touchend' && _this.startTimerCommit) { + event.persist(); + _this.startTimerCommit(); + _this.startTimerCommit = null; + _this.startTimer = setTimeout(function () { + _this.stop(event, cb); + }, 0); + return; + } + + _this.startTimerCommit = null; + + if (ripples && ripples.length) { + _this.setState({ + ripples: ripples.slice(1) + }, cb); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(TouchRipple, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearTimeout(this.startTimer); + } + + // Used to filter out mouse emulated events on mobile. + + // We use a timer in order to only show the ripples for touch "click" like events. + // We don't want to display the ripple for touch scroll events. + + // This is the hook called once the previous timeout is ready. + + }, { + key: 'render', + value: function render() { + var _props = this.props, + center = _props.center, + classes = _props.classes, + className = _props.className, + other = (0, _objectWithoutProperties3.default)(_props, ['center', 'classes', 'className']); + + + return _react2.default.createElement( + _TransitionGroup2.default, + (0, _extends3.default)({ + component: 'span', + enter: true, + exit: true, + className: (0, _classnames2.default)(classes.root, className) + }, other), + this.state.ripples + ); + } + }]); + return TouchRipple; +}(_react2.default.Component); + +TouchRipple.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the ripple starts at the center of the component + * rather than at the point of interaction. + */ + center: _propTypes2.default.bool, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +TouchRipple.defaultProps = { + center: false +}; + +exports.default = (0, _withStyles2.default)(styles, { flip: false, name: 'MuiTouchRipple' })(TouchRipple); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/ButtonBase/createRippleHandler.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +function createRippleHandler(instance, eventName, action, cb) { + return function handleEvent(event) { + if (cb) { + cb.call(instance, event); + } + + if (event.defaultPrevented) { + return false; + } + + if (instance.ripple) { + instance.ripple[action](event); + } + + if (instance.props && typeof instance.props['on' + eventName] === 'function') { + instance.props['on' + eventName](event); + } + + return true; + }; +} + +exports.default = createRippleHandler; + +/***/ }), + +/***/ "./node_modules/material-ui/ButtonBase/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/ButtonBase.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ButtonBase).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Card/Card.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function Card(props) { + var raised = props.raised, + other = (0, _objectWithoutProperties3.default)(props, ['raised']); + + + return _react2.default.createElement(_Paper2.default, (0, _extends3.default)({ elevation: raised ? 8 : 2 }, other)); +} // @inheritedComponent Paper + +Card.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the card will use raised styling. + */ + raised: _propTypes2.default.bool +} : {}; + +Card.defaultProps = { + raised: false +}; + +exports.default = Card; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Card/CardActions.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + height: 52, + display: 'flex', + alignItems: 'center', + padding: '2px 4px', + boxSizing: 'border-box' + }, + action: { + margin: '0 4px' + } +}; + +function CardActions(props) { + var disableActionSpacing = props.disableActionSpacing, + children = props.children, + classes = props.classes, + className = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['disableActionSpacing', 'children', 'classes', 'className']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + disableActionSpacing ? children : (0, _reactHelpers.cloneChildrenWithClassName)(children, classes.action) + ); +} + +CardActions.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the card actions do not have additional margin. + */ + disableActionSpacing: _propTypes2.default.bool +} : {}; + +CardActions.defaultProps = { + disableActionSpacing: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardActions' })(CardActions); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Card/CardContent.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + padding: theme.spacing.unit * 2, + '&:last-child': { + paddingBottom: theme.spacing.unit * 3 + } + } + }; +}; + +function CardContent(props) { + var classes = props.classes, + className = props.className, + Component = props.component, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component']); + + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other)); +} + +CardContent.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) +} : {}; + +CardContent.defaultProps = { + component: 'div' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardContent' })(CardContent); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Card/CardHeader.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + alignItems: 'center', + padding: theme.spacing.unit * 2 + }, + avatar: { + flex: '0 0 auto', + marginRight: theme.spacing.unit * 2 + }, + action: { + flex: '0 0 auto', + alignSelf: 'flex-start', + marginTop: theme.spacing.unit * -1, + marginRight: theme.spacing.unit * -2 + }, + content: { + flex: '1 1 auto' + }, + title: {}, + subheader: {} + }; +}; + +function CardHeader(props) { + var action = props.action, + avatar = props.avatar, + classes = props.classes, + classNameProp = props.className, + Component = props.component, + subheader = props.subheader, + title = props.title, + other = (0, _objectWithoutProperties3.default)(props, ['action', 'avatar', 'classes', 'className', 'component', 'subheader', 'title']); + + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, classNameProp) }, other), + avatar && _react2.default.createElement( + 'div', + { className: classes.avatar }, + avatar + ), + _react2.default.createElement( + 'div', + { className: classes.content }, + _react2.default.createElement( + _Typography2.default, + { + variant: avatar ? 'body2' : 'headline', + component: 'span', + className: classes.title + }, + title + ), + subheader && _react2.default.createElement( + _Typography2.default, + { + variant: avatar ? 'body2' : 'body1', + component: 'span', + color: 'textSecondary', + className: classes.subheader + }, + subheader + ) + ), + action && _react2.default.createElement( + 'div', + { className: classes.action }, + action + ) + ); +} + +CardHeader.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The action to display in the card header. + */ + action: _propTypes2.default.node, + /** + * The Avatar for the Card Header. + */ + avatar: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * The content of the component. + */ + subheader: _propTypes2.default.node, + /** + * The content of the Card Title. + */ + title: _propTypes2.default.node +} : {}; + +CardHeader.defaultProps = { + component: 'div' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardHeader' })(CardHeader); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Card/CardMedia.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + backgroundSize: 'cover', + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center' + }, + rootMedia: { + width: '100%' + } +}; + +var MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img']; + +function CardMedia(props) { + var _classNames; + + var classes = props.classes, + className = props.className, + Component = props.component, + image = props.image, + src = props.src, + style = props.style, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'image', 'src', 'style']); + + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(Boolean(image || src), 'Material-UI: either `image` or `src` property must be specified.') : void 0; + + var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1; + var composedStyle = !isMediaComponent && image ? (0, _extends3.default)({ backgroundImage: 'url(' + image + ')' }, style) : style; + var composedClassName = (0, _classnames2.default)((_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.root, !isMediaComponent), (0, _defineProperty3.default)(_classNames, classes.rootMedia, isMediaComponent), _classNames), className); + + return _react2.default.createElement(Component, (0, _extends3.default)({ + className: composedClassName, + style: composedStyle, + src: isMediaComponent ? image || src : undefined + }, other)); +} + +CardMedia.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Component for rendering image. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Image to be displayed as a background image. + * Either `image` or `src` prop must be specified. + * Note that caller must specify height otherwise the image will not be visible. + */ + image: _propTypes2.default.string, + /** + * An alias for `image` property. + * Available only with media components. + * Media components: `video`, `audio`, `picture`, `iframe`, `img`. + */ + src: _propTypes2.default.string, + /** + * @ignore + */ + style: _propTypes2.default.object +} : {}; + +CardMedia.defaultProps = { + component: 'div' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardMedia' })(CardMedia); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Card/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Card = __webpack_require__("./node_modules/material-ui/Card/Card.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Card).default; + } +}); + +var _CardContent = __webpack_require__("./node_modules/material-ui/Card/CardContent.js"); + +Object.defineProperty(exports, 'CardContent', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_CardContent).default; + } +}); + +var _CardActions = __webpack_require__("./node_modules/material-ui/Card/CardActions.js"); + +Object.defineProperty(exports, 'CardActions', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_CardActions).default; + } +}); + +var _CardMedia = __webpack_require__("./node_modules/material-ui/Card/CardMedia.js"); + +Object.defineProperty(exports, 'CardMedia', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_CardMedia).default; + } +}); + +var _CardHeader = __webpack_require__("./node_modules/material-ui/Card/CardHeader.js"); + +Object.defineProperty(exports, 'CardHeader', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_CardHeader).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Checkbox/Checkbox.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _SwitchBase = __webpack_require__("./node_modules/material-ui/internal/SwitchBase.js"); + +var _SwitchBase2 = _interopRequireDefault(_SwitchBase); + +var _IndeterminateCheckBox = __webpack_require__("./node_modules/material-ui/internal/svg-icons/IndeterminateCheckBox.js"); + +var _IndeterminateCheckBox2 = _interopRequireDefault(_IndeterminateCheckBox); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + default: { + color: theme.palette.text.secondary + }, + checked: {}, + checkedPrimary: { + color: theme.palette.primary.main + }, + checkedSecondary: { + color: theme.palette.secondary.main + }, + disabled: { + color: theme.palette.action.disabled + } + }; +}; + +function Checkbox(props) { + var _classNames; + + var checkedIcon = props.checkedIcon, + classes = props.classes, + color = props.color, + icon = props.icon, + indeterminate = props.indeterminate, + indeterminateIcon = props.indeterminateIcon, + other = (0, _objectWithoutProperties3.default)(props, ['checkedIcon', 'classes', 'color', 'icon', 'indeterminate', 'indeterminateIcon']); + + var checkedClass = (0, _classnames2.default)(classes.checked, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checkedPrimary, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.checkedSecondary, color === 'secondary'), _classNames)); + + return _react2.default.createElement(_SwitchBase2.default, (0, _extends3.default)({ + checkedIcon: indeterminate ? indeterminateIcon : checkedIcon, + classes: { + default: classes.default, + checked: checkedClass, + disabled: classes.disabled + }, + icon: indeterminate ? indeterminateIcon : icon + }, other)); +} + +Checkbox.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the component is checked. + */ + checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), + /** + * The icon to display when the component is checked. + */ + checkedIcon: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['primary', 'secondary']), + /** + * @ignore + */ + defaultChecked: _propTypes2.default.bool, + /** + * If `true`, the switch will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: _propTypes2.default.bool, + /** + * The icon to display when the component is unchecked. + */ + icon: _propTypes2.default.node, + /** + * The id of the `input` element. + */ + id: _propTypes2.default.string, + /** + * If `true`, the component appears indeterminate. + */ + indeterminate: _propTypes2.default.bool, + /** + * The icon to display when the component is indeterminate. + */ + indeterminateIcon: _propTypes2.default.node, + /** + * Properties applied to the `input` element. + */ + inputProps: _propTypes2.default.object, + /** + * Use that property to pass a ref callback to the native input component. + */ + inputRef: _propTypes2.default.func, + /* + * @ignore + */ + name: _propTypes2.default.string, + /** + * Callback fired when the state is changed. + * + * @param {object} event The event source of the callback + * @param {boolean} checked The `checked` value of the switch + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), + /** + * The input component property `type`. + */ + type: _propTypes2.default.string, + /** + * The value of the component. + */ + value: _propTypes2.default.string +} : {}; + +Checkbox.defaultProps = { + color: 'secondary', + indeterminate: false, + indeterminateIcon: _react2.default.createElement(_IndeterminateCheckBox2.default, null) +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCheckbox' })(Checkbox); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Checkbox/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Checkbox = __webpack_require__("./node_modules/material-ui/Checkbox/Checkbox.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Checkbox).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Chip/Chip.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _keycode = __webpack_require__("./node_modules/keycode/index.js"); + +var _keycode2 = _interopRequireDefault(_keycode); + +var _Cancel = __webpack_require__("./node_modules/material-ui/internal/svg-icons/Cancel.js"); + +var _Cancel2 = _interopRequireDefault(_Cancel); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); + +__webpack_require__("./node_modules/material-ui/Avatar/Avatar.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// So we don't have any override priority issue. + +var styles = exports.styles = function styles(theme) { + var height = 32; + var backgroundColor = theme.palette.type === 'light' ? theme.palette.grey[300] : theme.palette.grey[700]; + var deleteIconColor = (0, _colorManipulator.fade)(theme.palette.text.primary, 0.26); + + return { + root: { + fontFamily: theme.typography.fontFamily, + fontSize: theme.typography.pxToRem(13), + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + height: height, + color: theme.palette.getContrastText(backgroundColor), + backgroundColor: backgroundColor, + borderRadius: height / 2, + whiteSpace: 'nowrap', + transition: theme.transitions.create(), + // label will inherit this from root, then `clickable` class overrides this for both + cursor: 'default', + outline: 'none', // No outline on focused element in Chrome (as triggered by tabIndex prop) + border: 'none', // Remove `button` border + padding: 0 // Remove `button` padding + }, + clickable: { + // Remove grey highlight + WebkitTapHighlightColor: 'transparent', + cursor: 'pointer', + '&:hover, &:focus': { + backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.08) + }, + '&:active': { + boxShadow: theme.shadows[1], + backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.12) + } + }, + deletable: { + '&:focus': { + backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.08) + } + }, + avatar: { + marginRight: -4, + width: height, + height: height, + color: theme.palette.type === 'light' ? theme.palette.grey[700] : theme.palette.grey[300], + fontSize: theme.typography.pxToRem(16) + }, + avatarChildren: { + width: 19, + height: 19 + }, + label: { + display: 'flex', + alignItems: 'center', + paddingLeft: 12, + paddingRight: 12, + userSelect: 'none', + whiteSpace: 'nowrap', + cursor: 'inherit' + }, + deleteIcon: { + // Remove grey highlight + WebkitTapHighlightColor: 'transparent', + color: deleteIconColor, + cursor: 'pointer', + height: 'auto', + margin: '0 4px 0 -8px', + '&:hover': { + color: (0, _colorManipulator.fade)(deleteIconColor, 0.4) + } + } + }; +}; + +/** + * Chips represent complex entities in small blocks, such as a contact. + */ + +var Chip = function (_React$Component) { + (0, _inherits3.default)(Chip, _React$Component); + + function Chip() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Chip); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Chip.__proto__ || (0, _getPrototypeOf2.default)(Chip)).call.apply(_ref, [this].concat(args))), _this), _this.chipRef = null, _this.handleDeleteIconClick = function (event) { + // Stop the event from bubbling up to the `Chip` + event.stopPropagation(); + var onDelete = _this.props.onDelete; + + if (onDelete) { + onDelete(event); + } + }, _this.handleKeyDown = function (event) { + var _this$props = _this.props, + onClick = _this$props.onClick, + onDelete = _this$props.onDelete, + onKeyDown = _this$props.onKeyDown; + + var key = (0, _keycode2.default)(event); + + if (onClick && (key === 'space' || key === 'enter')) { + event.preventDefault(); + onClick(event); + } else if (onDelete && key === 'backspace') { + event.preventDefault(); + onDelete(event); + } else if (key === 'esc') { + event.preventDefault(); + if (_this.chipRef) { + _this.chipRef.blur(); + } + } + + if (onKeyDown) { + onKeyDown(event); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Chip, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + avatarProp = _props.avatar, + classes = _props.classes, + classNameProp = _props.className, + Component = _props.component, + deleteIconProp = _props.deleteIcon, + label = _props.label, + onClick = _props.onClick, + onDelete = _props.onDelete, + onKeyDown = _props.onKeyDown, + tabIndexProp = _props.tabIndex, + other = (0, _objectWithoutProperties3.default)(_props, ['avatar', 'classes', 'className', 'component', 'deleteIcon', 'label', 'onClick', 'onDelete', 'onKeyDown', 'tabIndex']); + + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.clickable, onClick), (0, _defineProperty3.default)({}, classes.deletable, onDelete), classNameProp); + + var deleteIcon = null; + if (onDelete) { + deleteIcon = deleteIconProp && _react2.default.isValidElement(deleteIconProp) ? _react2.default.cloneElement(deleteIconProp, { + className: (0, _classnames2.default)(deleteIconProp.props.className, classes.deleteIcon), + onClick: this.handleDeleteIconClick + }) : _react2.default.createElement(_Cancel2.default, { className: classes.deleteIcon, onClick: this.handleDeleteIconClick }); + } + + var avatar = null; + if (avatarProp && _react2.default.isValidElement(avatarProp)) { + avatar = _react2.default.cloneElement(avatarProp, { + className: (0, _classnames2.default)(classes.avatar, avatarProp.props.className), + childrenClassName: (0, _classnames2.default)(classes.avatarChildren, avatarProp.props.childrenClassName) + }); + } + + var tabIndex = tabIndexProp; + + if (!tabIndex) { + tabIndex = onClick || onDelete ? 0 : -1; + } + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ + role: 'button', + className: className, + tabIndex: tabIndex, + onClick: onClick, + onKeyDown: this.handleKeyDown, + ref: function ref(node) { + _this2.chipRef = node; + } + }, other), + avatar, + _react2.default.createElement( + 'span', + { className: classes.label }, + label + ), + deleteIcon + ); + } + }]); + return Chip; +}(_react2.default.Component); + +Chip.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Avatar element. + */ + avatar: _propTypes2.default.element, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Override the default delete icon element. Shown only if `onDelete` is set. + */ + deleteIcon: _propTypes2.default.element, + /** + * The content of the label. + */ + label: _propTypes2.default.node, + /** + * @ignore + */ + onClick: _propTypes2.default.func, + /** + * Callback function fired when the delete icon is clicked. + * If set, the delete icon will be shown. + */ + onDelete: _propTypes2.default.func, + /** + * @ignore + */ + onKeyDown: _propTypes2.default.func, + /** + * @ignore + */ + tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]) +} : {}; + +Chip.defaultProps = { + component: 'div' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiChip' })(Chip); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Chip/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Chip = __webpack_require__("./node_modules/material-ui/Chip/Chip.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Chip).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Dialog/Dialog.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _Modal = __webpack_require__("./node_modules/material-ui/Modal/index.js"); + +var _Modal2 = _interopRequireDefault(_Modal); + +var _Fade = __webpack_require__("./node_modules/material-ui/transitions/Fade.js"); + +var _Fade2 = _interopRequireDefault(_Fade); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + justifyContent: 'center', + alignItems: 'center' + }, + paper: { + display: 'flex', + margin: theme.spacing.unit * 4, + flexDirection: 'column', + flex: '0 1 auto', + position: 'relative', + maxHeight: '90vh', + overflowY: 'auto', // Fix IE11 issue, to remove at some point. + '&:focus': { + outline: 'none' + } + }, + paperWidthXs: { + maxWidth: Math.max(theme.breakpoints.values.xs, 360) + }, + paperWidthSm: { + maxWidth: theme.breakpoints.values.sm + }, + paperWidthMd: { + maxWidth: theme.breakpoints.values.md + }, + fullWidth: { + width: '100%' + }, + fullScreen: { + margin: 0, + width: '100%', + maxWidth: '100%', + height: '100%', + maxHeight: '100%', + borderRadius: 0 + } + }; +}; + +/** + * Dialogs are overlaid modal paper based components with a backdrop. + */ +// @inheritedComponent Modal + +function Dialog(props) { + var _classNames; + + var children = props.children, + classes = props.classes, + className = props.className, + fullScreen = props.fullScreen, + fullWidth = props.fullWidth, + disableBackdropClick = props.disableBackdropClick, + disableEscapeKeyDown = props.disableEscapeKeyDown, + maxWidth = props.maxWidth, + onBackdropClick = props.onBackdropClick, + onClose = props.onClose, + onEnter = props.onEnter, + onEntered = props.onEntered, + onEntering = props.onEntering, + onEscapeKeyDown = props.onEscapeKeyDown, + onExit = props.onExit, + onExited = props.onExited, + onExiting = props.onExiting, + open = props.open, + PaperProps = props.PaperProps, + TransitionProp = props.transition, + transitionDuration = props.transitionDuration, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'fullScreen', 'fullWidth', 'disableBackdropClick', 'disableEscapeKeyDown', 'maxWidth', 'onBackdropClick', 'onClose', 'onEnter', 'onEntered', 'onEntering', 'onEscapeKeyDown', 'onExit', 'onExited', 'onExiting', 'open', 'PaperProps', 'transition', 'transitionDuration']); + + + return _react2.default.createElement( + _Modal2.default, + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, className), + BackdropProps: { + transitionDuration: transitionDuration + }, + disableBackdropClick: disableBackdropClick, + disableEscapeKeyDown: disableEscapeKeyDown, + onBackdropClick: onBackdropClick, + onEscapeKeyDown: onEscapeKeyDown, + onClose: onClose, + open: open, + role: 'dialog' + }, other), + _react2.default.createElement( + TransitionProp, + { + appear: true, + 'in': open, + timeout: transitionDuration, + onEnter: onEnter, + onEntering: onEntering, + onEntered: onEntered, + onExit: onExit, + onExiting: onExiting, + onExited: onExited + }, + _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ + elevation: 24, + className: (0, _classnames2.default)(classes.paper, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['paperWidth' + (maxWidth ? (0, _helpers.capitalize)(maxWidth) : '')], maxWidth), (0, _defineProperty3.default)(_classNames, classes.fullScreen, fullScreen), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), _classNames)) + }, PaperProps), + children + ) + ) + ); +} + +Dialog.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Dialog children, usually the included sub-components. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, clicking the backdrop will not fire the `onClose` callback. + */ + disableBackdropClick: _propTypes2.default.bool, + /** + * If `true`, hitting escape will not fire the `onClose` callback. + */ + disableEscapeKeyDown: _propTypes2.default.bool, + /** + * If `true`, it will be full-screen + */ + fullScreen: _propTypes2.default.bool, + /** + * If specified, stretches dialog to max width. + */ + fullWidth: _propTypes2.default.bool, + /** + * Determine the max width of the dialog. + * The dialog width grows with the size of the screen, this property is useful + * on the desktop where you might need some coherent different width size across your + * application. Set to `false` to disable `maxWidth`. + */ + maxWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', false]), + /** + * Callback fired when the backdrop is clicked. + */ + onBackdropClick: _propTypes2.default.func, + /** + * Callback fired when the component requests to be closed. + * + * @param {object} event The event source of the callback + */ + onClose: _propTypes2.default.func, + /** + * Callback fired before the dialog enters. + */ + onEnter: _propTypes2.default.func, + /** + * Callback fired when the dialog has entered. + */ + onEntered: _propTypes2.default.func, + /** + * Callback fired when the dialog is entering. + */ + onEntering: _propTypes2.default.func, + /** + * Callback fired when the escape key is pressed, + * `disableKeyboard` is false and the modal is in focus. + */ + onEscapeKeyDown: _propTypes2.default.func, + /** + * Callback fired before the dialog exits. + */ + onExit: _propTypes2.default.func, + /** + * Callback fired when the dialog has exited. + */ + onExited: _propTypes2.default.func, + /** + * Callback fired when the dialog is exiting. + */ + onExiting: _propTypes2.default.func, + /** + * If `true`, the Dialog is open. + */ + open: _propTypes2.default.bool.isRequired, + /** + * Properties applied to the `Paper` element. + */ + PaperProps: _propTypes2.default.object, + /** + * Transition component. + */ + transition: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + */ + transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) +} : {}; + +Dialog.defaultProps = { + fullScreen: false, + fullWidth: false, + disableBackdropClick: false, + disableEscapeKeyDown: false, + maxWidth: 'sm', + transition: _Fade2.default, + transitionDuration: { enter: _transitions.duration.enteringScreen, exit: _transitions.duration.leavingScreen } +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialog' })(Dialog); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Dialog/DialogActions.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +__webpack_require__("./node_modules/material-ui/Button/index.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// So we don't have any override priority issue. + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + justifyContent: 'flex-end', + alignItems: 'center', + margin: theme.spacing.unit + 'px ' + theme.spacing.unit / 2 + 'px', + flex: '0 0 auto' + }, + action: { + margin: '0 ' + theme.spacing.unit / 2 + 'px' + }, + button: { + minWidth: 64 + } + }; +}; + +function DialogActions(props) { + var children = props.children, + classes = props.classes, + className = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + _react2.default.Children.map(children, function (child) { + if (!_react2.default.isValidElement(child)) { + return null; + } + + return _react2.default.createElement( + 'div', + { className: classes.action }, + _react2.default.cloneElement(child, { + className: (0, _classnames2.default)(classes.button, child.props.className) + }) + ); + }) + ); +} + +DialogActions.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogActions' })(DialogActions); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Dialog/DialogContent.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + var spacing = theme.spacing.unit * 3; + return { + root: { + flex: '1 1 auto', + overflowY: 'auto', + padding: '0 ' + spacing + 'px ' + spacing + 'px ' + spacing + 'px', + '&:first-child': { + paddingTop: spacing + } + } + }; +}; + +function DialogContent(props) { + var classes = props.classes, + children = props.children, + className = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'children', 'className']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + children + ); +} + +DialogContent.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogContent' })(DialogContent); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Dialog/DialogContentText.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: (0, _extends3.default)({}, theme.typography.subheading, { + color: theme.palette.text.secondary, + margin: 0 + }) + }; +}; + +function DialogContentText(props) { + var children = props.children, + classes = props.classes, + className = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); + + + return _react2.default.createElement( + 'p', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + children + ); +} + +DialogContentText.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogContentText' })(DialogContentText); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Dialog/DialogTitle.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + margin: 0, + padding: theme.spacing.unit * 3 + 'px ' + theme.spacing.unit * 3 + 'px 20px ' + theme.spacing.unit * 3 + 'px', + flex: '0 0 auto' + } + }; +}; + +function DialogTitle(props) { + var children = props.children, + classes = props.classes, + className = props.className, + disableTypography = props.disableTypography, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'disableTypography']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + disableTypography ? children : _react2.default.createElement( + _Typography2.default, + { variant: 'title' }, + children + ) + ); +} + +DialogTitle.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the children won't be wrapped by a typography component. + * For instance, this can be useful to render an h4 instead of the default h2. + */ + disableTypography: _propTypes2.default.bool +} : {}; + +DialogTitle.defaultProps = { + disableTypography: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogTitle' })(DialogTitle); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Dialog/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Dialog = __webpack_require__("./node_modules/material-ui/Dialog/Dialog.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Dialog).default; + } +}); + +var _DialogActions = __webpack_require__("./node_modules/material-ui/Dialog/DialogActions.js"); + +Object.defineProperty(exports, 'DialogActions', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_DialogActions).default; + } +}); + +var _DialogTitle = __webpack_require__("./node_modules/material-ui/Dialog/DialogTitle.js"); + +Object.defineProperty(exports, 'DialogTitle', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_DialogTitle).default; + } +}); + +var _DialogContent = __webpack_require__("./node_modules/material-ui/Dialog/DialogContent.js"); + +Object.defineProperty(exports, 'DialogContent', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_DialogContent).default; + } +}); + +var _DialogContentText = __webpack_require__("./node_modules/material-ui/Dialog/DialogContentText.js"); + +Object.defineProperty(exports, 'DialogContentText', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_DialogContentText).default; + } +}); + +var _withMobileDialog = __webpack_require__("./node_modules/material-ui/Dialog/withMobileDialog.js"); + +Object.defineProperty(exports, 'withMobileDialog', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_withMobileDialog).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Dialog/withMobileDialog.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _withWidth = __webpack_require__("./node_modules/material-ui/utils/withWidth.js"); + +var _withWidth2 = _interopRequireDefault(_withWidth); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Dialog will responsively be full screen *at or below* the given breakpoint + * (defaults to 'sm' for mobile devices). + * Notice that this Higher-order Component is incompatible with server side rendering. + */ +var withMobileDialog = function withMobileDialog() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return function (Component) { + var _options$breakpoint = options.breakpoint, + breakpoint = _options$breakpoint === undefined ? 'sm' : _options$breakpoint; + + + function WithMobileDialog(props) { + return _react2.default.createElement(Component, (0, _extends3.default)({ fullScreen: (0, _withWidth.isWidthDown)(breakpoint, props.width) }, props)); + } + + WithMobileDialog.propTypes = process.env.NODE_ENV !== "production" ? { + width: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']).isRequired + } : {}; + + return (0, _withWidth2.default)()(WithMobileDialog); + }; +}; + +exports.default = withMobileDialog; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Divider/Divider.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + height: 1, + margin: 0, // Reset browser default style. + border: 'none', + flexShrink: 0 + }, + inset: { + marginLeft: 72 + }, + default: { + backgroundColor: theme.palette.divider + }, + light: { + backgroundColor: (0, _colorManipulator.fade)(theme.palette.divider, 0.08) + }, + absolute: { + position: 'absolute', + bottom: 0, + left: 0, + width: '100%' + } + }; +}; + +function Divider(props) { + var _classNames; + + var absolute = props.absolute, + classes = props.classes, + classNameProp = props.className, + Component = props.component, + inset = props.inset, + light = props.light, + other = (0, _objectWithoutProperties3.default)(props, ['absolute', 'classes', 'className', 'component', 'inset', 'light']); + + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.absolute, absolute), (0, _defineProperty3.default)(_classNames, classes.inset, inset), _classNames), light ? classes.light : classes.default, classNameProp); + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); +} + +Divider.propTypes = process.env.NODE_ENV !== "production" ? { + absolute: _propTypes2.default.bool, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the divider will be indented. + */ + inset: _propTypes2.default.bool, + /** + * If `true`, the divider will have a lighter color. + */ + light: _propTypes2.default.bool +} : {}; + +Divider.defaultProps = { + absolute: false, + component: 'hr', + inset: false, + light: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDivider' })(Divider); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Divider/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Divider = __webpack_require__("./node_modules/material-ui/Divider/Divider.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Divider).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Drawer/Drawer.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _Modal = __webpack_require__("./node_modules/material-ui/Modal/index.js"); + +var _Modal2 = _interopRequireDefault(_Modal); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Slide = __webpack_require__("./node_modules/material-ui/transitions/Slide.js"); + +var _Slide2 = _interopRequireDefault(_Slide); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getSlideDirection(anchor) { + if (anchor === 'left') { + return 'right'; + } else if (anchor === 'right') { + return 'left'; + } else if (anchor === 'top') { + return 'down'; + } + + // (anchor === 'bottom') + return 'up'; +} // @inheritedComponent Modal + +var styles = exports.styles = function styles(theme) { + return { + docked: { + flex: '0 0 auto' + }, + paper: { + overflowY: 'auto', + display: 'flex', + flexDirection: 'column', + height: '100vh', + flex: '1 0 auto', + zIndex: theme.zIndex.drawer, + WebkitOverflowScrolling: 'touch', // Add iOS momentum scrolling. + // temporary style + position: 'fixed', + top: 0, + // We disable the focus ring for mouse, touch and keyboard users. + // At some point, it would be better to keep it for keyboard users. + // :focus-ring CSS pseudo-class will help. + '&:focus': { + outline: 'none' + } + }, + paperAnchorLeft: { + left: 0, + right: 'auto' + }, + paperAnchorRight: { + left: 'auto', + right: 0 + }, + paperAnchorTop: { + top: 0, + left: 0, + bottom: 'auto', + right: 0, + height: 'auto', + maxHeight: '100vh' + }, + paperAnchorBottom: { + top: 'auto', + left: 0, + bottom: 0, + right: 0, + height: 'auto', + maxHeight: '100vh' + }, + paperAnchorDockedLeft: { + borderRight: '1px solid ' + theme.palette.divider + }, + paperAnchorDockedTop: { + borderBottom: '1px solid ' + theme.palette.divider + }, + paperAnchorDockedRight: { + borderLeft: '1px solid ' + theme.palette.divider + }, + paperAnchorDockedBottom: { + borderTop: '1px solid ' + theme.palette.divider + }, + modal: {} // Just here so people can override the style. + }; +}; + +var Drawer = function (_React$Component) { + (0, _inherits3.default)(Drawer, _React$Component); + + function Drawer() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Drawer); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Drawer.__proto__ || (0, _getPrototypeOf2.default)(Drawer)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + // Let's assume that the Drawer will always be rendered on user space. + // We use that state is order to skip the appear transition during the + // initial mount of the component. + firstMount: true + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Drawer, [{ + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps() { + this.setState({ + firstMount: false + }); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + anchorProp = _props.anchor, + children = _props.children, + classes = _props.classes, + className = _props.className, + elevation = _props.elevation, + ModalProps = _props.ModalProps, + onClose = _props.onClose, + open = _props.open, + PaperProps = _props.PaperProps, + SlideProps = _props.SlideProps, + theme = _props.theme, + transitionDuration = _props.transitionDuration, + variant = _props.variant, + other = (0, _objectWithoutProperties3.default)(_props, ['anchor', 'children', 'classes', 'className', 'elevation', 'ModalProps', 'onClose', 'open', 'PaperProps', 'SlideProps', 'theme', 'transitionDuration', 'variant']); + + + var anchor = anchorProp; + if (theme.direction === 'rtl' && ['left', 'right'].includes(anchor)) { + anchor = anchor === 'left' ? 'right' : 'left'; + } + + var drawer = _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ + elevation: variant === 'temporary' ? elevation : 0, + square: true, + className: (0, _classnames2.default)(classes.paper, classes['paperAnchor' + (0, _helpers.capitalize)(anchor)], (0, _defineProperty3.default)({}, classes['paperAnchorDocked' + (0, _helpers.capitalize)(anchor)], variant !== 'temporary')) + }, PaperProps), + children + ); + + if (variant === 'permanent') { + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.docked, className) }, other), + drawer + ); + } + + var slidingDrawer = _react2.default.createElement( + _Slide2.default, + (0, _extends3.default)({ + 'in': open, + direction: getSlideDirection(anchor), + timeout: transitionDuration, + appear: !this.state.firstMount + }, SlideProps), + drawer + ); + + if (variant === 'persistent') { + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.docked, className) }, other), + slidingDrawer + ); + } + + // variant === temporary + return _react2.default.createElement( + _Modal2.default, + (0, _extends3.default)({ + BackdropProps: { + transitionDuration: transitionDuration + }, + className: (0, _classnames2.default)(classes.modal, className), + open: open, + onClose: onClose + }, other, ModalProps), + slidingDrawer + ); + } + }]); + return Drawer; +}(_react2.default.Component); + +Drawer.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Side from which the drawer will appear. + */ + anchor: _propTypes2.default.oneOf(['left', 'top', 'right', 'bottom']), + /** + * The contents of the drawer. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The elevation of the drawer. + */ + elevation: _propTypes2.default.number, + /** + * Properties applied to the `Modal` element. + */ + ModalProps: _propTypes2.default.object, + /** + * Callback fired when the component requests to be closed. + * + * @param {object} event The event source of the callback + */ + onClose: _propTypes2.default.func, + /** + * If `true`, the drawer is open. + */ + open: _propTypes2.default.bool, + /** + * Properties applied to the `Paper` element. + */ + PaperProps: _propTypes2.default.object, + /** + * Properties applied to the `Slide` element. + */ + SlideProps: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + */ + transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]), + /** + * The type of drawer. + */ + variant: _propTypes2.default.oneOf(['permanent', 'persistent', 'temporary']) +} : {}; + +Drawer.defaultProps = { + anchor: 'left', + elevation: 16, + open: false, + transitionDuration: { enter: _transitions.duration.enteringScreen, exit: _transitions.duration.leavingScreen }, + variant: 'temporary' // Mobile first. +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDrawer', flip: false, withTheme: true })(Drawer); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Drawer/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Drawer = __webpack_require__("./node_modules/material-ui/Drawer/Drawer.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Drawer).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanel.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _Collapse = __webpack_require__("./node_modules/material-ui/transitions/Collapse.js"); + +var _Collapse2 = _interopRequireDefault(_Collapse); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + var transition = { + duration: theme.transitions.duration.shortest + }; + + return { + root: { + position: 'relative', + transition: theme.transitions.create(['margin'], transition), + '&:before': { + position: 'absolute', + left: 0, + top: -1, + right: 0, + height: 1, + content: '""', + opacity: 1, + backgroundColor: theme.palette.divider, + transition: theme.transitions.create(['opacity', 'background-color'], transition) + }, + '&:first-child': { + borderTopLeftRadius: 2, + borderTopRightRadius: 2, + '&:before': { + display: 'none' + } + }, + '&:last-child': { + borderBottomLeftRadius: 2, + borderBottomRightRadius: 2 + }, + '&$expanded + &': { + '&:before': { + display: 'none' + } + } + }, + expanded: { + margin: theme.spacing.unit * 2 + 'px 0', + '&:first-child': { + marginTop: 0 + }, + '&:last-child': { + marginBottom: 0 + }, + '&:before': { + opacity: 0 + } + }, + disabled: { + backgroundColor: theme.palette.action.disabledBackground + } + }; +}; // @inheritedComponent Paper + +var ExpansionPanel = function (_React$Component) { + (0, _inherits3.default)(ExpansionPanel, _React$Component); + + function ExpansionPanel() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, ExpansionPanel); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ExpansionPanel.__proto__ || (0, _getPrototypeOf2.default)(ExpansionPanel)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + expanded: false + }, _this.isControlled = null, _this.handleChange = function (event) { + var onChange = _this.props.onChange; + + var expanded = !_this.state.expanded; + + if (onChange) { + onChange(event, expanded); + } + + if (!_this.isControlled) { + _this.setState({ expanded: expanded }); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(ExpansionPanel, [{ + key: 'componentWillMount', + value: function componentWillMount() { + var _props = this.props, + expanded = _props.expanded, + defaultExpanded = _props.defaultExpanded; + + this.isControlled = expanded != null; + this.setState({ + expanded: this.isControlled ? expanded : defaultExpanded + }); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + if (this.isControlled) { + this.setState({ + expanded: nextProps.expanded + }); + } + } + }, { + key: 'render', + value: function render() { + var _classNames, + _this2 = this; + + var _props2 = this.props, + childrenProp = _props2.children, + classes = _props2.classes, + classNameProp = _props2.className, + CollapsePropsProp = _props2.CollapseProps, + defaultExpanded = _props2.defaultExpanded, + disabled = _props2.disabled, + expandedProp = _props2.expanded, + onChange = _props2.onChange, + other = (0, _objectWithoutProperties3.default)(_props2, ['children', 'classes', 'className', 'CollapseProps', 'defaultExpanded', 'disabled', 'expanded', 'onChange']); + var expanded = this.state.expanded; + + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.expanded, expanded), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), _classNames), classNameProp); + + var summary = null; + + var children = _react2.default.Children.map(childrenProp, function (child) { + if (!_react2.default.isValidElement(child)) { + return null; + } + + if ((0, _reactHelpers.isMuiElement)(child, ['ExpansionPanelSummary'])) { + summary = _react2.default.cloneElement(child, { + disabled: disabled, + expanded: expanded, + onChange: _this2.handleChange + }); + return null; + } + + return child; + }); + + var CollapseProps = !expanded ? { + 'aria-hidden': 'true' + } : null; + + return _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ className: className, elevation: 1, square: true }, other), + summary, + _react2.default.createElement( + _Collapse2.default, + (0, _extends3.default)({ 'in': expanded, timeout: 'auto' }, CollapseProps, CollapsePropsProp), + children + ) + ); + } + }]); + return ExpansionPanel; +}(_react2.default.Component); + +ExpansionPanel.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the expansion panel. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Properties applied to the `Collapse` element. + */ + CollapseProps: _propTypes2.default.object, + /** + * If `true`, expands the panel by default. + */ + defaultExpanded: _propTypes2.default.bool, + /** + * If `true`, the panel will be displayed in a disabled state. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, expands the panel, otherwise collapse it. + * Setting this prop enables control over the panel. + */ + expanded: _propTypes2.default.bool, + /** + * Callback fired when the expand/collapse state is changed. + * + * @param {object} event The event source of the callback + * @param {boolean} expanded The `expanded` state of the panel + */ + onChange: _propTypes2.default.func +} : {}; + +ExpansionPanel.defaultProps = { + defaultExpanded: false, + disabled: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanel' })(ExpansionPanel); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanelActions.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + justifyContent: 'flex-end', + alignItems: 'center', + padding: theme.spacing.unit * 2 + 'px ' + theme.spacing.unit + 'px' + }, + action: { + marginLeft: theme.spacing.unit + } + }; +}; + +function ExpansionPanelActions(props) { + var children = props.children, + classes = props.classes, + className = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + (0, _reactHelpers.cloneChildrenWithClassName)(children, classes.action) + ); +} + +ExpansionPanelActions.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanelActions' })(ExpansionPanelActions); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanelDetails.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + flexGrow: 1, + padding: theme.spacing.unit + 'px ' + theme.spacing.unit * 3 + 'px ' + theme.spacing.unit * 3 + 'px' + } + }; +}; + +function ExpansionPanelDetails(props) { + var classes = props.classes, + children = props.children, + className = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'children', 'className']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + children + ); +} + +ExpansionPanelDetails.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the expansion panel details. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanelDetails' })(ExpansionPanelDetails); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanelSummary.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); + +var _IconButton2 = _interopRequireDefault(_IconButton); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent ButtonBase + +var styles = exports.styles = function styles(theme) { + var transition = { + duration: theme.transitions.duration.shortest + }; + return { + root: { + display: 'flex', + minHeight: theme.spacing.unit * 6, + transition: theme.transitions.create(['min-height', 'background-color'], transition), + padding: '0 ' + theme.spacing.unit * 3 + 'px 0 ' + theme.spacing.unit * 3 + 'px', + '&:hover:not($disabled)': { + cursor: 'pointer' + } + }, + expanded: { + minHeight: 64 + }, + focused: { + backgroundColor: theme.palette.grey[300] + }, + disabled: { + opacity: 0.38 + }, + content: { + display: 'flex', + flexGrow: 1, + transition: theme.transitions.create(['margin'], transition), + margin: '12px 0', + '& > :last-child': { + paddingRight: theme.spacing.unit * 4 + } + }, + contentExpanded: { + margin: '20px 0' + }, + expandIcon: { + position: 'absolute', + top: '50%', + right: theme.spacing.unit, + transform: 'translateY(-50%) rotate(0deg)', + transition: theme.transitions.create('transform', transition) + }, + expandIconExpanded: { + transform: 'translateY(-50%) rotate(180deg)' + } + }; +}; + +var ExpansionPanelSummary = function (_React$Component) { + (0, _inherits3.default)(ExpansionPanelSummary, _React$Component); + + function ExpansionPanelSummary() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, ExpansionPanelSummary); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ExpansionPanelSummary.__proto__ || (0, _getPrototypeOf2.default)(ExpansionPanelSummary)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + focused: false + }, _this.handleFocus = function () { + _this.setState({ + focused: true + }); + }, _this.handleBlur = function () { + _this.setState({ + focused: false + }); + }, _this.handleChange = function (event) { + var _this$props = _this.props, + onChange = _this$props.onChange, + onClick = _this$props.onClick; + + if (onChange) { + onChange(event); + } + if (onClick) { + onClick(event); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(ExpansionPanelSummary, [{ + key: 'render', + value: function render() { + var _classNames; + + var _props = this.props, + children = _props.children, + classes = _props.classes, + className = _props.className, + disabled = _props.disabled, + expanded = _props.expanded, + expandIcon = _props.expandIcon, + onChange = _props.onChange, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'disabled', 'expanded', 'expandIcon', 'onChange']); + var focused = this.state.focused; + + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends3.default)({ + focusRipple: false, + disableRipple: true, + disabled: disabled, + component: 'div', + 'aria-expanded': expanded, + className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.expanded, expanded), (0, _defineProperty3.default)(_classNames, classes.focused, focused), _classNames), className) + }, other, { + onKeyboardFocus: this.handleFocus, + onBlur: this.handleBlur, + onClick: this.handleChange + }), + _react2.default.createElement( + 'div', + { className: (0, _classnames2.default)(classes.content, (0, _defineProperty3.default)({}, classes.contentExpanded, expanded)) }, + children + ), + expandIcon && _react2.default.createElement( + _IconButton2.default, + { + disabled: disabled, + className: (0, _classnames2.default)(classes.expandIcon, (0, _defineProperty3.default)({}, classes.expandIconExpanded, expanded)), + component: 'div', + tabIndex: '-1', + 'aria-hidden': 'true' + }, + expandIcon + ) + ); + } + }]); + return ExpansionPanelSummary; +}(_react2.default.Component); + +ExpansionPanelSummary.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the expansion panel summary. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + * If `true`, the summary will be displayed in a disabled state. + */ + disabled: _propTypes2.default.bool, + /** + * @ignore + * If `true`, expands the summary, otherwise collapse it. + */ + expanded: _propTypes2.default.bool, + /** + * The icon to display as the expand indicator. + */ + expandIcon: _propTypes2.default.node, + /** + * @ignore + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + onClick: _propTypes2.default.func +} : {}; + +ExpansionPanelSummary.defaultProps = { + disabled: false +}; + +ExpansionPanelSummary.muiName = 'ExpansionPanelSummary'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanelSummary' })(ExpansionPanelSummary); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/ExpansionPanel/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _ExpansionPanel = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanel.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ExpansionPanel).default; + } +}); + +var _ExpansionPanelActions = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanelActions.js"); + +Object.defineProperty(exports, 'ExpansionPanelActions', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ExpansionPanelActions).default; + } +}); + +var _ExpansionPanelDetails = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanelDetails.js"); + +Object.defineProperty(exports, 'ExpansionPanelDetails', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ExpansionPanelDetails).default; + } +}); + +var _ExpansionPanelSummary = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanelSummary.js"); + +Object.defineProperty(exports, 'ExpansionPanelSummary', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ExpansionPanelSummary).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Form/FormControl.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Input = __webpack_require__("./node_modules/material-ui/Input/Input.js"); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'inline-flex', + flexDirection: 'column', + position: 'relative', + // Reset fieldset default style + minWidth: 0, + padding: 0, + margin: 0, + border: 0 + }, + marginNormal: { + marginTop: theme.spacing.unit * 2, + marginBottom: theme.spacing.unit + }, + marginDense: { + marginTop: theme.spacing.unit, + marginBottom: theme.spacing.unit / 2 + }, + fullWidth: { + width: '100%' + } + }; +}; + +/** + * Provides context such as dirty/focused/error/required for form inputs. + * Relying on the context provides high flexibilty and ensures that the state always stay + * consitent across the children of the `FormControl`. + * This context is used by the following components: + * - FormLabel + * - FormHelperText + * - Input + * - InputLabel + */ + +var FormControl = function (_React$Component) { + (0, _inherits3.default)(FormControl, _React$Component); + + function FormControl(props, context) { + (0, _classCallCheck3.default)(this, FormControl); + + // We need to iterate through the children and find the Input in order + // to fully support server side rendering. + var _this = (0, _possibleConstructorReturn3.default)(this, (FormControl.__proto__ || (0, _getPrototypeOf2.default)(FormControl)).call(this, props, context)); + + _this.state = { + adornedStart: false, + dirty: false, + focused: false + }; + + _this.handleFocus = function (event) { + if (_this.props.onFocus) { + _this.props.onFocus(event); + } + _this.setState(function (state) { + return !state.focused ? { focused: true } : null; + }); + }; + + _this.handleBlur = function (event) { + // The event might be undefined. + // For instance, a child component might call this hook + // when an input is disabled but still having the focus. + if (_this.props.onBlur && event) { + _this.props.onBlur(event); + } + _this.setState(function (state) { + return state.focused ? { focused: false } : null; + }); + }; + + _this.handleDirty = function () { + if (!_this.state.dirty) { + _this.setState({ dirty: true }); + } + }; + + _this.handleClean = function () { + if (_this.state.dirty) { + _this.setState({ dirty: false }); + } + }; + + var children = _this.props.children; + + if (children) { + _react2.default.Children.forEach(children, function (child) { + if ((0, _reactHelpers.isMuiElement)(child, ['Input', 'Select']) && (0, _Input.isDirty)(child.props, true)) { + _this.state.dirty = true; + } + if ((0, _reactHelpers.isMuiElement)(child, ['Input']) && (0, _Input.isAdornedStart)(child.props)) { + _this.state.adornedStart = true; + } + }); + } + return _this; + } + + (0, _createClass3.default)(FormControl, [{ + key: 'getChildContext', + value: function getChildContext() { + var _props = this.props, + disabled = _props.disabled, + error = _props.error, + required = _props.required, + margin = _props.margin; + var _state = this.state, + adornedStart = _state.adornedStart, + dirty = _state.dirty, + focused = _state.focused; + + + return { + muiFormControl: { + adornedStart: adornedStart, + dirty: dirty, + disabled: disabled, + error: error, + focused: focused, + margin: margin, + required: required, + onDirty: this.handleDirty, + onClean: this.handleClean, + onFocus: this.handleFocus, + onBlur: this.handleBlur + } + }; + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _props2 = this.props, + classes = _props2.classes, + className = _props2.className, + Component = _props2.component, + disabled = _props2.disabled, + error = _props2.error, + fullWidth = _props2.fullWidth, + margin = _props2.margin, + required = _props2.required, + other = (0, _objectWithoutProperties3.default)(_props2, ['classes', 'className', 'component', 'disabled', 'error', 'fullWidth', 'margin', 'required']); + + + return _react2.default.createElement(Component, (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['margin' + (0, _helpers.capitalize)(margin)], margin !== 'none'), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), _classNames), className) + }, other, { + onFocus: this.handleFocus, + onBlur: this.handleBlur + })); + } + }]); + return FormControl; +}(_react2.default.Component); + +FormControl.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The contents of the form control. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the label, input and helper text should be displayed in a disabled state. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the label should be displayed in an error state. + */ + error: _propTypes2.default.bool, + /** + * If `true`, the component will take up the full width of its container. + */ + fullWidth: _propTypes2.default.bool, + /** + * If `dense` or `normal`, will adjust vertical spacing of this and contained components. + */ + margin: _propTypes2.default.oneOf(['none', 'dense', 'normal']), + /** + * @ignore + */ + onBlur: _propTypes2.default.func, + /** + * @ignore + */ + onFocus: _propTypes2.default.func, + /** + * If `true`, the label will indicate that the input is required. + */ + required: _propTypes2.default.bool +} : {}; + +FormControl.defaultProps = { + component: 'div', + disabled: false, + error: false, + fullWidth: false, + margin: 'none', + required: false +}; + +FormControl.childContextTypes = { + muiFormControl: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormControl' })(FormControl); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Form/FormControlLabel.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'inline-flex', + alignItems: 'center', + cursor: 'pointer', + // For correct alignment with the text. + verticalAlign: 'middle', + // Remove grey highlight + WebkitTapHighlightColor: 'transparent', + marginLeft: -14, + marginRight: theme.spacing.unit * 2 // used for row presentation of radio/checkbox + }, + disabled: { + color: theme.palette.text.disabled, + cursor: 'default' + }, + label: {} + }; +}; + +/** + * Drop in replacement of the `Radio`, `Switch` and `Checkbox` component. + * Use this component if you want to display an extra label. + */ +/* eslint-disable jsx-a11y/label-has-for */ + +function FormControlLabel(props, context) { + var checked = props.checked, + classes = props.classes, + classNameProp = props.className, + control = props.control, + disabledProp = props.disabled, + inputRef = props.inputRef, + label = props.label, + name = props.name, + onChange = props.onChange, + value = props.value, + other = (0, _objectWithoutProperties3.default)(props, ['checked', 'classes', 'className', 'control', 'disabled', 'inputRef', 'label', 'name', 'onChange', 'value']); + var muiFormControl = context.muiFormControl; + + var disabled = disabledProp; + + if (typeof control.props.disabled !== 'undefined') { + if (typeof disabled === 'undefined') { + disabled = control.props.disabled; + } + } + + if (muiFormControl) { + if (typeof disabled === 'undefined') { + disabled = muiFormControl.disabled; + } + } + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.disabled, disabled), classNameProp); + + return _react2.default.createElement( + 'label', + (0, _extends3.default)({ className: className }, other), + _react2.default.cloneElement(control, { + disabled: disabled, + checked: typeof control.props.checked === 'undefined' ? checked : control.props.checked, + name: control.props.name || name, + onChange: control.props.onChange || onChange, + value: control.props.value || value, + inputRef: control.props.inputRef || inputRef + }), + _react2.default.createElement( + _Typography2.default, + { component: 'span', className: classes.label }, + label + ) + ); +} + +FormControlLabel.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the component appears selected. + */ + checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * A control element. For instance, it can be be a `Radio`, a `Switch` or a `Checkbox`. + */ + control: _propTypes2.default.element, + /** + * If `true`, the control will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * Use that property to pass a ref callback to the native input component. + */ + inputRef: _propTypes2.default.func, + /** + * The text to be used in an enclosing label element. + */ + label: _propTypes2.default.node, + /* + * @ignore + */ + name: _propTypes2.default.string, + /** + * Callback fired when the state is changed. + * + * @param {object} event The event source of the callback + * @param {boolean} checked The `checked` value of the switch + */ + onChange: _propTypes2.default.func, + /** + * The value of the component. + */ + value: _propTypes2.default.string +} : {}; + +FormControlLabel.contextTypes = { + muiFormControl: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormControlLabel' })(FormControlLabel); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Form/FormGroup.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + display: 'flex', + flexDirection: 'column', + flexWrap: 'wrap' + }, + row: { + flexDirection: 'row' + } +}; + +/** + * `FormGroup` wraps controls such as `Checkbox` and `Switch`. + * It provides compact row layout. + * For the `Radio`, you should be using the `RadioGroup` component instead of this one. + */ +function FormGroup(props) { + var classes = props.classes, + className = props.className, + children = props.children, + row = props.row, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'children', 'row']); + + var rootClassName = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.row, row), className); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: rootClassName }, other), + children + ); +} + +FormGroup.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Display group of elements in a compact row. + */ + row: _propTypes2.default.bool +} : {}; + +FormGroup.defaultProps = { + row: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormGroup' })(FormGroup); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Form/FormHelperText.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + color: theme.palette.text.secondary, + fontFamily: theme.typography.fontFamily, + fontSize: theme.typography.pxToRem(12), + textAlign: 'left', + marginTop: theme.spacing.unit, + lineHeight: '1em', + minHeight: '1em', + margin: 0 + }, + dense: { + marginTop: theme.spacing.unit / 2 + }, + error: { + color: theme.palette.error.main + }, + disabled: { + color: theme.palette.text.disabled + } + }; +}; + +function FormHelperText(props, context) { + var _classNames; + + var classes = props.classes, + classNameProp = props.className, + disabledProp = props.disabled, + errorProp = props.error, + marginProp = props.margin, + Component = props.component, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'disabled', 'error', 'margin', 'component']); + var muiFormControl = context.muiFormControl; + + + var disabled = disabledProp; + var error = errorProp; + var margin = marginProp; + + if (muiFormControl) { + if (typeof disabled === 'undefined') { + disabled = muiFormControl.disabled; + } + + if (typeof error === 'undefined') { + error = muiFormControl.error; + } + + if (typeof margin === 'undefined') { + margin = muiFormControl.margin; + } + } + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.error, error), (0, _defineProperty3.default)(_classNames, classes.dense, margin === 'dense'), _classNames), classNameProp); + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); +} + +FormHelperText.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the helper text should be displayed in a disabled state. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, helper text should be displayed in an error state. + */ + error: _propTypes2.default.bool, + /** + * If `dense`, will adjust vertical spacing. This is normally obtained via context from + * FormControl. + */ + margin: _propTypes2.default.oneOf(['dense']) +} : {}; + +FormHelperText.defaultProps = { + component: 'p' +}; + +FormHelperText.contextTypes = { + muiFormControl: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormHelperText' })(FormHelperText); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Form/FormLabel.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + fontFamily: theme.typography.fontFamily, + color: theme.palette.text.secondary, + fontSize: theme.typography.pxToRem(16), + lineHeight: 1, + padding: 0 + }, + focused: { + color: theme.palette.primary[theme.palette.type === 'light' ? 'dark' : 'light'] + }, + error: { + color: theme.palette.error.main + }, + disabled: { + color: theme.palette.text.disabled + } + }; +}; + +function FormLabel(props, context) { + var _classNames; + + var children = props.children, + classes = props.classes, + classNameProp = props.className, + Component = props.component, + disabledProp = props.disabled, + errorProp = props.error, + focusedProp = props.focused, + requiredProp = props.required, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'component', 'disabled', 'error', 'focused', 'required']); + var muiFormControl = context.muiFormControl; + + + var required = requiredProp; + var focused = focusedProp; + var disabled = disabledProp; + var error = errorProp; + + if (muiFormControl) { + if (typeof required === 'undefined') { + required = muiFormControl.required; + } + if (typeof focused === 'undefined') { + focused = muiFormControl.focused; + } + if (typeof disabled === 'undefined') { + disabled = muiFormControl.disabled; + } + if (typeof error === 'undefined') { + error = muiFormControl.error; + } + } + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.focused, focused), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.error, error), _classNames), classNameProp); + + var asteriskClassName = (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.error, error)); + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ className: className }, other), + children, + required && _react2.default.createElement( + 'span', + { className: asteriskClassName }, + '\u2009*' + ) + ); +} + +FormLabel.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the label should be displayed in a disabled state. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the label should be displayed in an error state. + */ + error: _propTypes2.default.bool, + /** + * If `true`, the input of this label is focused (used by `FormGroup` components). + */ + focused: _propTypes2.default.bool, + /** + * If `true`, the label will indicate that the input is required. + */ + required: _propTypes2.default.bool +} : {}; + +FormLabel.defaultProps = { + component: 'label' +}; + +FormLabel.contextTypes = { + muiFormControl: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormLabel' })(FormLabel); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Form/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _FormGroup = __webpack_require__("./node_modules/material-ui/Form/FormGroup.js"); + +Object.defineProperty(exports, 'FormGroup', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_FormGroup).default; + } +}); + +var _FormLabel = __webpack_require__("./node_modules/material-ui/Form/FormLabel.js"); + +Object.defineProperty(exports, 'FormLabel', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_FormLabel).default; + } +}); + +var _FormControl = __webpack_require__("./node_modules/material-ui/Form/FormControl.js"); + +Object.defineProperty(exports, 'FormControl', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_FormControl).default; + } +}); + +var _FormHelperText = __webpack_require__("./node_modules/material-ui/Form/FormHelperText.js"); + +Object.defineProperty(exports, 'FormHelperText', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_FormHelperText).default; + } +}); + +var _FormControlLabel = __webpack_require__("./node_modules/material-ui/Form/FormControlLabel.js"); + +Object.defineProperty(exports, 'FormControlLabel', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_FormControlLabel).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Grid/Grid.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); + +var _requirePropFactory = __webpack_require__("./node_modules/material-ui/utils/requirePropFactory.js"); + +var _requirePropFactory2 = _interopRequireDefault(_requirePropFactory); + +var _Hidden = __webpack_require__("./node_modules/material-ui/Hidden/index.js"); + +var _Hidden2 = _interopRequireDefault(_Hidden); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GUTTERS = [0, 8, 16, 24, 40]; // A grid component using the following libs as inspiration. +// +// For the implementation: +// - http://v4-alpha.getbootstrap.com/layout/flexbox-grid/ +// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css +// - https://github.com/roylee0704/react-flexbox-grid +// - https://material.angularjs.org/latest/layout/introduction +// +// Follow this flexbox Guide to better understand the underlying model: +// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/ + +var GRID_SIZES = [true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + +function generateGrid(globalStyles, theme, breakpoint) { + // For the auto layouting + var styles = (0, _defineProperty3.default)({}, 'grid-' + breakpoint, { + flexBasis: 0, + flexGrow: 1, + maxWidth: '100%' + }); + + GRID_SIZES.forEach(function (size) { + if (typeof size === 'boolean') { + // Skip the first one as handle above. + return; + } + + // Only keep 6 significant numbers. + var width = Math.round(size / 12 * 10e6) / 10e4 + '%'; + + /* eslint-disable max-len */ + // Close to the bootstrap implementation: + // https://github.com/twbs/bootstrap/blob/b0508a975d711d6b24c01f57dd5445c22699fac4/scss/mixins/_grid.scss#L69 + /* eslint-enable max-len */ + styles['grid-' + breakpoint + '-' + size] = { + flexBasis: width, + maxWidth: width + }; + }); + + // No need for a media query for the first size. + if (breakpoint === 'xs') { + (0, _extends3.default)(globalStyles, styles); + } else { + globalStyles[theme.breakpoints.up(breakpoint)] = styles; + } +} + +function generateGutter(theme, breakpoint) { + var styles = {}; + + GUTTERS.forEach(function (spacing, index) { + if (index === 0) { + // Skip the default style. + return; + } + + styles['spacing-' + breakpoint + '-' + spacing] = { + margin: -spacing / 2, + width: 'calc(100% + ' + spacing + 'px)', + '& > $typeItem': { + padding: spacing / 2 + } + }; + }); + + return styles; +} + +// Default CSS values +// flex: '0 1 auto', +// flexDirection: 'row', +// alignItems: 'flex-start', +// flexWrap: 'nowrap', +// justifyContent: 'flex-start', +var styles = exports.styles = function styles(theme) { + return (0, _extends3.default)({ + typeContainer: { + boxSizing: 'border-box', + display: 'flex', + flexWrap: 'wrap', + width: '100%' + }, + typeItem: { + boxSizing: 'border-box', + flex: '0 0 auto', + margin: '0' // For instance, it's useful when used with a `figure` element. + }, + zeroMinWidth: { + minWidth: 0 + }, + 'direction-xs-column': { + flexDirection: 'column' + }, + 'direction-xs-column-reverse': { + flexDirection: 'column-reverse' + }, + 'direction-xs-row-reverse': { + flexDirection: 'row-reverse' + }, + 'wrap-xs-nowrap': { + flexWrap: 'nowrap' + }, + 'wrap-xs-wrap-reverse': { + flexWrap: 'wrap-reverse' + }, + 'align-items-xs-center': { + alignItems: 'center' + }, + 'align-items-xs-flex-start': { + alignItems: 'flex-start' + }, + 'align-items-xs-flex-end': { + alignItems: 'flex-end' + }, + 'align-items-xs-baseline': { + alignItems: 'baseline' + }, + 'align-content-xs-center': { + alignContent: 'center' + }, + 'align-content-xs-flex-start': { + alignContent: 'flex-start' + }, + 'align-content-xs-flex-end': { + alignContent: 'flex-end' + }, + 'align-content-xs-space-between': { + alignContent: 'space-between' + }, + 'align-content-xs-space-around': { + alignContent: 'space-around' + }, + 'justify-xs-center': { + justifyContent: 'center' + }, + 'justify-xs-flex-end': { + justifyContent: 'flex-end' + }, + 'justify-xs-space-between': { + justifyContent: 'space-between' + }, + 'justify-xs-space-around': { + justifyContent: 'space-around' + } + }, generateGutter(theme, 'xs'), _createBreakpoints.keys.reduce(function (accumulator, key) { + // Use side effect over immutability for better performance. + generateGrid(accumulator, theme, key); + return accumulator; + }, {})); +}; + +function Grid(props) { + var _classNames; + + var alignContent = props.alignContent, + alignItems = props.alignItems, + classes = props.classes, + classNameProp = props.className, + Component = props.component, + container = props.container, + direction = props.direction, + hidden = props.hidden, + item = props.item, + justify = props.justify, + lg = props.lg, + md = props.md, + zeroMinWidth = props.zeroMinWidth, + sm = props.sm, + spacing = props.spacing, + wrap = props.wrap, + xl = props.xl, + xs = props.xs, + other = (0, _objectWithoutProperties3.default)(props, ['alignContent', 'alignItems', 'classes', 'className', 'component', 'container', 'direction', 'hidden', 'item', 'justify', 'lg', 'md', 'zeroMinWidth', 'sm', 'spacing', 'wrap', 'xl', 'xs']); + + + var className = (0, _classnames2.default)((_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.typeContainer, container), (0, _defineProperty3.default)(_classNames, classes.typeItem, item), (0, _defineProperty3.default)(_classNames, classes.zeroMinWidth, zeroMinWidth), (0, _defineProperty3.default)(_classNames, classes['spacing-xs-' + String(spacing)], container && spacing !== 0), (0, _defineProperty3.default)(_classNames, classes['direction-xs-' + String(direction)], direction !== Grid.defaultProps.direction), (0, _defineProperty3.default)(_classNames, classes['wrap-xs-' + String(wrap)], wrap !== Grid.defaultProps.wrap), (0, _defineProperty3.default)(_classNames, classes['align-items-xs-' + String(alignItems)], alignItems !== Grid.defaultProps.alignItems), (0, _defineProperty3.default)(_classNames, classes['align-content-xs-' + String(alignContent)], alignContent !== Grid.defaultProps.alignContent), (0, _defineProperty3.default)(_classNames, classes['justify-xs-' + String(justify)], justify !== Grid.defaultProps.justify), (0, _defineProperty3.default)(_classNames, classes['grid-xs'], xs === true), (0, _defineProperty3.default)(_classNames, classes['grid-xs-' + String(xs)], xs && xs !== true), (0, _defineProperty3.default)(_classNames, classes['grid-sm'], sm === true), (0, _defineProperty3.default)(_classNames, classes['grid-sm-' + String(sm)], sm && sm !== true), (0, _defineProperty3.default)(_classNames, classes['grid-md'], md === true), (0, _defineProperty3.default)(_classNames, classes['grid-md-' + String(md)], md && md !== true), (0, _defineProperty3.default)(_classNames, classes['grid-lg'], lg === true), (0, _defineProperty3.default)(_classNames, classes['grid-lg-' + String(lg)], lg && lg !== true), (0, _defineProperty3.default)(_classNames, classes['grid-xl'], xl === true), (0, _defineProperty3.default)(_classNames, classes['grid-xl-' + String(xl)], xl && xl !== true), _classNames), classNameProp); + var gridProps = (0, _extends3.default)({ className: className }, other); + + if (hidden) { + return _react2.default.createElement( + _Hidden2.default, + hidden, + _react2.default.createElement(Component, gridProps) + ); + } + + return _react2.default.createElement(Component, gridProps); +} + +Grid.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Defines the `align-content` style property. + * It's applied for all screen sizes. + */ + alignContent: _propTypes2.default.oneOf(['stretch', 'center', 'flex-start', 'flex-end', 'space-between', 'space-around']), + /** + * Defines the `align-items` style property. + * It's applied for all screen sizes. + */ + alignItems: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']), + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the component will have the flex *container* behavior. + * You should be wrapping *items* with a *container*. + */ + container: _propTypes2.default.bool, + /** + * Defines the `flex-direction` style property. + * It is applied for all screen sizes. + */ + direction: _propTypes2.default.oneOf(['row', 'row-reverse', 'column', 'column-reverse']), + /** + * If provided, will wrap with [Hidden](/api/hidden) component and given properties. + */ + hidden: _propTypes2.default.object, + /** + * If `true`, the component will have the flex *item* behavior. + * You should be wrapping *items* with a *container*. + */ + item: _propTypes2.default.bool, + /** + * Defines the `justify-content` style property. + * It is applied for all screen sizes. + */ + justify: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around']), + /** + * Defines the number of grids the component is going to use. + * It's applied for the `lg` breakpoint and wider screens if not overridden. + */ + lg: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), + /** + * Defines the number of grids the component is going to use. + * It's applied for the `md` breakpoint and wider screens if not overridden. + */ + md: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), + /** + * Defines the number of grids the component is going to use. + * It's applied for the `sm` breakpoint and wider screens if not overridden. + */ + sm: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), + /** + * Defines the space between the type `item` component. + * It can only be used on a type `container` component. + */ + spacing: _propTypes2.default.oneOf(GUTTERS), + /** + * Defines the `flex-wrap` style property. + * It's applied for all screen sizes. + */ + wrap: _propTypes2.default.oneOf(['nowrap', 'wrap', 'wrap-reverse']), + /** + * Defines the number of grids the component is going to use. + * It's applied for the `xl` breakpoint and wider screens. + */ + xl: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), + /** + * Defines the number of grids the component is going to use. + * It's applied for all the screen sizes with the lowest priority. + */ + xs: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), + /** + * If `true`, it sets `min-width: 0` on the item. + * Refer to the limitations section of the documentation to better understand the use case. + */ + zeroMinWidth: _propTypes2.default.bool +} : {}; + +Grid.defaultProps = { + alignContent: 'stretch', + alignItems: 'stretch', + component: 'div', + container: false, + direction: 'row', + item: false, + justify: 'flex-start', + zeroMinWidth: false, + spacing: 16, + wrap: 'wrap' +}; + +// Add a wrapper component to generate some helper messages in the development +// environment. +/* eslint-disable react/no-multi-comp */ +// eslint-disable-next-line import/no-mutable-exports +var GridWrapper = Grid; + +if (process.env.NODE_ENV !== 'production') { + GridWrapper = function GridWrapper(props) { + return _react2.default.createElement(Grid, props); + }; + + var requireProp = (0, _requirePropFactory2.default)('Grid'); + GridWrapper.propTypes = { + alignContent: requireProp('container'), + alignItems: requireProp('container'), + direction: requireProp('container'), + justify: requireProp('container'), + lg: requireProp('item'), + md: requireProp('item'), + sm: requireProp('item'), + spacing: requireProp('container'), + wrap: requireProp('container'), + xs: requireProp('item'), + zeroMinWidth: requireProp('zeroMinWidth') + }; +} + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGrid' })(GridWrapper); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Grid/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Grid = __webpack_require__("./node_modules/material-ui/Grid/Grid.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Grid).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/GridList/GridList.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + display: 'flex', + flexWrap: 'wrap', + overflowY: 'auto', + listStyle: 'none', + padding: 0, + WebkitOverflowScrolling: 'touch' // Add iOS momentum scrolling. + } +}; + +function GridList(props) { + var cellHeight = props.cellHeight, + children = props.children, + classes = props.classes, + classNameProp = props.className, + cols = props.cols, + Component = props.component, + spacing = props.spacing, + style = props.style, + other = (0, _objectWithoutProperties3.default)(props, ['cellHeight', 'children', 'classes', 'className', 'cols', 'component', 'spacing', 'style']); + + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, classNameProp), + style: (0, _extends3.default)({ margin: -spacing / 2 }, style) + }, other), + _react2.default.Children.map(children, function (currentChild) { + var childCols = currentChild.props.cols || 1; + var childRows = currentChild.props.rows || 1; + + return _react2.default.cloneElement(currentChild, { + style: (0, _extends3.default)({ + width: 100 / cols * childCols + '%', + height: cellHeight === 'auto' ? 'auto' : cellHeight * childRows + spacing, + padding: spacing / 2 + }, currentChild.props.style) + }); + }) + ); +} + +GridList.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Number of px for one cell height. + * You can set `'auto'` if you want to let the children determine the height. + */ + cellHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['auto'])]), + /** + * Grid Tiles that will be in Grid List. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Number of columns. + */ + cols: _propTypes2.default.number, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Number of px for the spacing between tiles. + */ + spacing: _propTypes2.default.number, + /** + * @ignore + */ + style: _propTypes2.default.object +} : {}; + +GridList.defaultProps = { + cellHeight: 180, + cols: 2, + component: 'ul', + spacing: 4 +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGridList' })(GridList); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/GridList/GridListTile.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); + +var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + boxSizing: 'border-box', + flexShrink: 0 + }, + tile: { + position: 'relative', + display: 'block', // In case it's not renderd with a div. + height: '100%', + overflow: 'hidden' + }, + imgFullHeight: { + height: '100%', + transform: 'translateX(-50%)', + position: 'relative', + left: '50%' + }, + imgFullWidth: { + width: '100%', + position: 'relative', + transform: 'translateY(-50%)', + top: '50%' + } +}; + +var GridListTile = function (_React$Component) { + (0, _inherits3.default)(GridListTile, _React$Component); + + function GridListTile() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, GridListTile); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = GridListTile.__proto__ || (0, _getPrototypeOf2.default)(GridListTile)).call.apply(_ref, [this].concat(args))), _this), _this.imgElement = null, _this.handleResize = (0, _debounce2.default)(function () { + _this.fit(); + }, 166), _this.fit = function () { + var imgElement = _this.imgElement; + + if (!imgElement) { + return; + } + + if (!imgElement.complete) { + return; + } + + if (imgElement.width / imgElement.height > imgElement.parentNode.offsetWidth / imgElement.parentNode.offsetHeight) { + var _imgElement$classList, _imgElement$classList2; + + (_imgElement$classList = imgElement.classList).remove.apply(_imgElement$classList, (0, _toConsumableArray3.default)(_this.props.classes.imgFullWidth.split(' '))); + (_imgElement$classList2 = imgElement.classList).add.apply(_imgElement$classList2, (0, _toConsumableArray3.default)(_this.props.classes.imgFullHeight.split(' '))); + } else { + var _imgElement$classList3, _imgElement$classList4; + + (_imgElement$classList3 = imgElement.classList).remove.apply(_imgElement$classList3, (0, _toConsumableArray3.default)(_this.props.classes.imgFullHeight.split(' '))); + (_imgElement$classList4 = imgElement.classList).add.apply(_imgElement$classList4, (0, _toConsumableArray3.default)(_this.props.classes.imgFullWidth.split(' '))); + } + + imgElement.removeEventListener('load', _this.fit); + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(GridListTile, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.ensureImageCover(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.ensureImageCover(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.handleResize.cancel(); + } + }, { + key: 'ensureImageCover', + value: function ensureImageCover() { + if (!this.imgElement) { + return; + } + + if (this.imgElement.complete) { + this.fit(); + } else { + this.imgElement.addEventListener('load', this.fit); + } + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + children = _props.children, + classes = _props.classes, + className = _props.className, + cols = _props.cols, + Component = _props.component, + rows = _props.rows, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'cols', 'component', 'rows']); + + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), + _react2.default.createElement( + 'div', + { className: classes.tile }, + _react2.default.Children.map(children, function (child) { + if (child && child.type === 'img') { + return _react2.default.cloneElement(child, { + key: 'img', + ref: function ref(node) { + _this2.imgElement = node; + } + }); + } + + return child; + }) + ) + ); + } + }]); + return GridListTile; +}(_react2.default.Component); + +GridListTile.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Theoretically you can pass any node as children, but the main use case is to pass an img, + * in which case GridListTile takes care of making the image "cover" available space + * (similar to `background-size: cover` or to `object-fit: cover`). + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Width of the tile in number of grid cells. + */ + cols: _propTypes2.default.number, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Height of the tile in number of grid cells. + */ + rows: _propTypes2.default.number +} : {}; + +GridListTile.defaultProps = { + cols: 1, + component: 'li', + rows: 1 +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGridListTile' })(GridListTile); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/GridList/GridListTileBar.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + position: 'absolute', + left: 0, + right: 0, + height: 48, + background: 'rgba(0, 0, 0, 0.4)', + display: 'flex', + alignItems: 'center', + fontFamily: theme.typography.fontFamily + }, + rootBottom: { + bottom: 0 + }, + rootTop: { + top: 0 + }, + rootWithSubtitle: { + height: 68 + }, + titleWrap: { + flexGrow: 1, + marginLeft: theme.mixins.gutters({}).paddingLeft, + marginRight: theme.mixins.gutters({}).paddingRight, + color: theme.palette.common.white, + overflow: 'hidden' + }, + titleWrapActionLeft: { + marginLeft: 0 + }, + titleWrapActionRight: { + marginRight: 0 + }, + title: { + fontSize: theme.typography.pxToRem(16), + lineHeight: '24px', + textOverflow: 'ellipsis', + overflow: 'hidden', + whiteSpace: 'nowrap' + }, + subtitle: { + fontSize: theme.typography.pxToRem(12), + lineHeight: 1, + textOverflow: 'ellipsis', + overflow: 'hidden', + whiteSpace: 'nowrap' + }, + actionIconPositionLeft: { + order: -1 + }, + childImg: { + height: '100%', + transform: 'translateX(-50%)', + position: 'relative', + left: '50%' + } + }; +}; + +function GridListTileBar(props) { + var _classNames, _classNames2; + + var actionIcon = props.actionIcon, + actionPosition = props.actionPosition, + classes = props.classes, + classNameProp = props.className, + subtitle = props.subtitle, + title = props.title, + titlePosition = props.titlePosition, + other = (0, _objectWithoutProperties3.default)(props, ['actionIcon', 'actionPosition', 'classes', 'className', 'subtitle', 'title', 'titlePosition']); + + + var actionPos = actionIcon && actionPosition; + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.rootBottom, titlePosition === 'bottom'), (0, _defineProperty3.default)(_classNames, classes.rootTop, titlePosition === 'top'), (0, _defineProperty3.default)(_classNames, classes.rootWithSubtitle, subtitle), _classNames), classNameProp); + + // Remove the margin between the title / subtitle wrapper, and the Action Icon + var titleWrapClassName = (0, _classnames2.default)(classes.titleWrap, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.titleWrapActionLeft, actionPos === 'left'), (0, _defineProperty3.default)(_classNames2, classes.titleWrapActionRight, actionPos === 'right'), _classNames2)); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + _react2.default.createElement( + 'div', + { className: titleWrapClassName }, + _react2.default.createElement( + 'div', + { className: classes.title }, + title + ), + subtitle ? _react2.default.createElement( + 'div', + { className: classes.subtitle }, + subtitle + ) : null + ), + actionIcon ? _react2.default.createElement( + 'div', + { className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.actionIconPositionLeft, actionPos === 'left')) }, + actionIcon + ) : null + ); +} + +GridListTileBar.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * An IconButton element to be used as secondary action target + * (primary action target is the tile itself). + */ + actionIcon: _propTypes2.default.node, + /** + * Position of secondary action IconButton. + */ + actionPosition: _propTypes2.default.oneOf(['left', 'right']), + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * String or element serving as subtitle (support text). + */ + subtitle: _propTypes2.default.node, + /** + * Title to be displayed on tile. + */ + title: _propTypes2.default.node, + /** + * Position of the title bar. + */ + titlePosition: _propTypes2.default.oneOf(['top', 'bottom']) +} : {}; + +GridListTileBar.defaultProps = { + actionPosition: 'right', + titlePosition: 'bottom' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGridListTileBar' })(GridListTileBar); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/GridList/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _GridList = __webpack_require__("./node_modules/material-ui/GridList/GridList.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_GridList).default; + } +}); + +var _GridListTile = __webpack_require__("./node_modules/material-ui/GridList/GridListTile.js"); + +Object.defineProperty(exports, 'GridListTile', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_GridListTile).default; + } +}); + +var _GridListTileBar = __webpack_require__("./node_modules/material-ui/GridList/GridListTileBar.js"); + +Object.defineProperty(exports, 'GridListTileBar', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_GridListTileBar).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Hidden/Hidden.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _HiddenJs = __webpack_require__("./node_modules/material-ui/Hidden/HiddenJs.js"); + +var _HiddenJs2 = _interopRequireDefault(_HiddenJs); + +var _HiddenCss = __webpack_require__("./node_modules/material-ui/Hidden/HiddenCss.js"); + +var _HiddenCss2 = _interopRequireDefault(_HiddenCss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Responsively hides children based on the selected implementation. + */ +function Hidden(props) { + var implementation = props.implementation, + other = (0, _objectWithoutProperties3.default)(props, ['implementation']); + + + if (implementation === 'js') { + return _react2.default.createElement(_HiddenJs2.default, other); + } + + return _react2.default.createElement(_HiddenCss2.default, other); +} + +Hidden.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Specify which implementation to use. 'js' is the default, 'css' works better for server + * side rendering. + */ + implementation: _propTypes2.default.oneOf(['js', 'css']), + /** + * You can use this property when choosing the `js` implementation with server side rendering. + * + * As `window.innerWidth` is unavailable on the server, + * we default to rendering an empty componenent during the first mount. + * In some situation you might want to use an heristic to approximate + * the screen width of the client browser screen width. + * + * For instance, you could be using the user-agent or the client-hints. + * http://caniuse.com/#search=client%20hint + */ + initialWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), + /** + * If true, screens this size and down will be hidden. + */ + lgDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + lgUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + mdDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + mdUp: _propTypes2.default.bool, + /** + * Hide the given breakpoint(s). + */ + only: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]), + /** + * If true, screens this size and down will be hidden. + */ + smDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + smUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + xlDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + xlUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + xsDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + xsUp: _propTypes2.default.bool +} : {}; + +Hidden.defaultProps = { + implementation: 'js', + lgDown: false, + lgUp: false, + mdDown: false, + mdUp: false, + smDown: false, + smUp: false, + xlDown: false, + xlUp: false, + xsDown: false, + xsUp: false +}; + +exports.default = Hidden; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Hidden/HiddenCss.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = function styles(theme) { + var hidden = { + display: 'none' + }; + + return _createBreakpoints.keys.reduce(function (acc, key) { + acc['only' + (0, _helpers.capitalize)(key)] = (0, _defineProperty3.default)({}, theme.breakpoints.only(key), hidden); + acc[key + 'Up'] = (0, _defineProperty3.default)({}, theme.breakpoints.up(key), hidden); + acc[key + 'Down'] = (0, _defineProperty3.default)({}, theme.breakpoints.down(key), hidden); + + return acc; + }, {}); +}; + +/** + * @ignore - internal component. + */ +function HiddenCss(props) { + var children = props.children, + classes = props.classes, + className = props.className, + lgDown = props.lgDown, + lgUp = props.lgUp, + mdDown = props.mdDown, + mdUp = props.mdUp, + only = props.only, + smDown = props.smDown, + smUp = props.smUp, + xlDown = props.xlDown, + xlUp = props.xlUp, + xsDown = props.xsDown, + xsUp = props.xsUp, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'lgDown', 'lgUp', 'mdDown', 'mdUp', 'only', 'smDown', 'smUp', 'xlDown', 'xlUp', 'xsDown', 'xsUp']); + + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)((0, _keys2.default)(other).length === 0 || (0, _keys2.default)(other).length === 1 && other.hasOwnProperty('ref'), 'Material-UI: unsupported properties received ' + (0, _keys2.default)(other).join(', ') + ' by ``.') : void 0; + + var classNames = []; + + if (className) { + classNames.push(className); + } + + for (var i = 0; i < _createBreakpoints.keys.length; i += 1) { + var breakpoint = _createBreakpoints.keys[i]; + var breakpointUp = props[breakpoint + 'Up']; + var breakpointDown = props[breakpoint + 'Down']; + + if (breakpointUp) { + classNames.push(classes[breakpoint + 'Up']); + } + if (breakpointDown) { + classNames.push(classes[breakpoint + 'Down']); + } + } + + if (only) { + var onlyBreakpoints = Array.isArray(only) ? only : [only]; + onlyBreakpoints.forEach(function (breakpoint) { + classNames.push(classes['only' + (0, _helpers.capitalize)(breakpoint)]); + }); + } + + return _react2.default.createElement( + 'div', + { className: classNames.join(' ') }, + children + ); +} + +HiddenCss.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Specify which implementation to use. 'js' is the default, 'css' works better for server + * side rendering. + */ + implementation: _propTypes2.default.oneOf(['js', 'css']), + /** + * If true, screens this size and down will be hidden. + */ + lgDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + lgUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + mdDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + mdUp: _propTypes2.default.bool, + /** + * Hide the given breakpoint(s). + */ + only: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]), + /** + * If true, screens this size and down will be hidden. + */ + smDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + smUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + xlDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + xlUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + xsDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + xsUp: _propTypes2.default.bool +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiHiddenCss' })(HiddenCss); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Hidden/HiddenJs.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); + +var _withWidth = __webpack_require__("./node_modules/material-ui/utils/withWidth.js"); + +var _withWidth2 = _interopRequireDefault(_withWidth); + +var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); + +var _exactProp2 = _interopRequireDefault(_exactProp); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +function HiddenJs(props) { + var children = props.children, + only = props.only, + width = props.width; + + + var visible = true; + + // `only` check is faster to get out sooner if used. + if (only) { + if (Array.isArray(only)) { + for (var i = 0; i < only.length; i += 1) { + var breakpoint = only[i]; + if (width === breakpoint) { + visible = false; + break; + } + } + } else if (only && width === only) { + visible = false; + } + } + + // Allow `only` to be combined with other props. If already hidden, no need to check others. + if (visible) { + // determine visibility based on the smallest size up + for (var _i = 0; _i < _createBreakpoints.keys.length; _i += 1) { + var _breakpoint = _createBreakpoints.keys[_i]; + var breakpointUp = props[_breakpoint + 'Up']; + var breakpointDown = props[_breakpoint + 'Down']; + if (breakpointUp && (0, _withWidth.isWidthUp)(_breakpoint, width) || breakpointDown && (0, _withWidth.isWidthDown)(_breakpoint, width)) { + visible = false; + break; + } + } + } + + if (!visible) { + return null; + } + + return children; +} + +HiddenJs.propTypes = { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Specify which implementation to use. 'js' is the default, 'css' works better for server + * side rendering. + */ + implementation: _propTypes2.default.oneOf(['js', 'css']), + /** + * You can use this property when choosing the `js` implementation with server side rendering. + * + * As `window.innerWidth` is unavailable on the server, + * we default to rendering an empty componenent during the first mount. + * In some situation you might want to use an heristic to approximate + * the screen width of the client browser screen width. + * + * For instance, you could be using the user-agent or the client-hints. + * http://caniuse.com/#search=client%20hint + */ + initialWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), + /** + * If true, screens this size and down will be hidden. + */ + lgDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + lgUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + mdDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + mdUp: _propTypes2.default.bool, + /** + * Hide the given breakpoint(s). + */ + only: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]), + /** + * If true, screens this size and down will be hidden. + */ + smDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + smUp: _propTypes2.default.bool, + /** + * @ignore + * width prop provided by withWidth decorator. + */ + width: _propTypes2.default.string.isRequired, + /** + * If true, screens this size and down will be hidden. + */ + xlDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + xlUp: _propTypes2.default.bool, + /** + * If true, screens this size and down will be hidden. + */ + xsDown: _propTypes2.default.bool, + /** + * If true, screens this size and up will be hidden. + */ + xsUp: _propTypes2.default.bool +}; + +HiddenJs.propTypes = (0, _exactProp2.default)(HiddenJs.propTypes, 'HiddenJs'); + +exports.default = (0, _withWidth2.default)()(HiddenJs); + +/***/ }), + +/***/ "./node_modules/material-ui/Hidden/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Hidden = __webpack_require__("./node_modules/material-ui/Hidden/Hidden.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Hidden).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Icon/Icon.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + userSelect: 'none' + }, + colorPrimary: { + color: theme.palette.primary.main + }, + colorSecondary: { + color: theme.palette.secondary.main + }, + colorAction: { + color: theme.palette.action.active + }, + colorDisabled: { + color: theme.palette.action.disabled + }, + colorError: { + color: theme.palette.error.main + }, + fontSize: { + width: '1em', + height: '1em' + } + }; +}; + +function Icon(props) { + var _classNames; + + var children = props.children, + classes = props.classes, + classNameProp = props.className, + color = props.color, + fontSize = props.fontSize, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'fontSize']); + + + var className = (0, _classnames2.default)('material-icons', classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), (0, _defineProperty3.default)(_classNames, classes.fontSize, fontSize), _classNames), classNameProp); + + return _react2.default.createElement( + 'span', + (0, _extends3.default)({ className: className, 'aria-hidden': 'true' }, other), + children + ); +} + +Icon.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The name of the icon font ligature. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['inherit', 'secondary', 'action', 'disabled', 'error', 'primary']), + /** + * If `true`, the icon size will be determined by the font-size. + */ + fontSize: _propTypes2.default.bool +} : {}; + +Icon.defaultProps = { + color: 'inherit', + fontSize: false +}; + +Icon.muiName = 'Icon'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiIcon' })(Icon); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Icon/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Icon = __webpack_require__("./node_modules/material-ui/Icon/Icon.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Icon).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/IconButton/IconButton.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +__webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Ensure CSS specificity + +// @inheritedComponent ButtonBase + +var styles = exports.styles = function styles(theme) { + return { + root: { + textAlign: 'center', + flex: '0 0 auto', + fontSize: theme.typography.pxToRem(24), + width: theme.spacing.unit * 6, + height: theme.spacing.unit * 6, + padding: 0, + borderRadius: '50%', + color: theme.palette.action.active, + transition: theme.transitions.create('background-color', { + duration: theme.transitions.duration.shortest + }) + }, + colorInherit: { + color: 'inherit' + }, + colorPrimary: { + color: theme.palette.primary.main + }, + colorSecondary: { + color: theme.palette.secondary.main + }, + disabled: { + color: theme.palette.action.disabled + }, + label: { + width: '100%', + display: 'flex', + alignItems: 'inherit', + justifyContent: 'inherit' + } + }; +}; + +/** + * Refer to the [Icons](/style/icons) section of the documentation + * regarding the available icon options. + */ +function IconButton(props) { + var _classNames; + + var children = props.children, + classes = props.classes, + className = props.className, + color = props.color, + disabled = props.disabled, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'disabled']); + + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default'), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), _classNames), className), + centerRipple: true, + focusRipple: true, + disabled: disabled + }, other), + _react2.default.createElement( + 'span', + { className: classes.label }, + _react2.default.Children.map(children, function (child) { + if ((0, _reactHelpers.isMuiElement)(child, ['Icon', 'SvgIcon'])) { + return _react2.default.cloneElement(child, { fontSize: true }); + } + return child; + }) + ) + ); +} + +IconButton.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The icon element. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['default', 'inherit', 'primary', 'secondary']), + /** + * If `true`, the button will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the ripple will be disabled. + */ + disableRipple: _propTypes2.default.bool +} : {}; + +IconButton.defaultProps = { + color: 'default', + disabled: false, + disableRipple: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiIconButton' })(IconButton); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/IconButton/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/IconButton.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_IconButton).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Input/Input.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +exports.hasValue = hasValue; +exports.isDirty = isDirty; +exports.isAdornedStart = isAdornedStart; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Textarea = __webpack_require__("./node_modules/material-ui/Input/Textarea.js"); + +var _Textarea2 = _interopRequireDefault(_Textarea); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Supports determination of isControlled(). +// Controlled input accepts its current value as a prop. +// +// @see https://facebook.github.io/react/docs/forms.html#controlled-components +// @param value +// @returns {boolean} true if string (including '') or number (including zero) +function hasValue(value) { + return value != null && !(Array.isArray(value) && value.length === 0); +} + +// Determine if field is dirty (a.k.a. filled). +// +// Response determines if label is presented above field or as placeholder. +// +// @param obj +// @param SSR +// @returns {boolean} False when not present or empty string. +// True when any number or string with length. +function isDirty(obj) { + var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''); +} + +// Determine if an Input is adorned on start. +// It's corresponding to the left with LTR. +// +// @param obj +// @returns {boolean} False when no adornments. +// True when adorned at the start. +function isAdornedStart(obj) { + return obj.startAdornment; +} + +var styles = exports.styles = function styles(theme) { + var light = theme.palette.type === 'light'; + var placeholder = { + color: 'currentColor', + opacity: light ? 0.42 : 0.5, + transition: theme.transitions.create('opacity', { + duration: theme.transitions.duration.shorter + }) + }; + var placeholderHidden = { + opacity: 0 + }; + var placeholderVisible = { + opacity: light ? 0.42 : 0.5 + }; + var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)'; + + return { + root: { + // Mimics the default input display property used by browsers for an input. + display: 'inline-flex', + position: 'relative', + fontFamily: theme.typography.fontFamily, + color: light ? 'rgba(0, 0, 0, 0.87)' : theme.palette.common.white, + fontSize: theme.typography.pxToRem(16) + }, + formControl: { + 'label + &': { + marginTop: theme.spacing.unit * 2 + } + }, + inkbar: { + '&:after': { + backgroundColor: theme.palette.primary[light ? 'dark' : 'light'], + left: 0, + bottom: 0, + // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 + content: '""', + height: 2, + position: 'absolute', + right: 0, + transform: 'scaleX(0)', + transition: theme.transitions.create('transform', { + duration: theme.transitions.duration.shorter, + easing: theme.transitions.easing.easeOut + }), + pointerEvents: 'none' // Transparent to the hover style. + }, + '&$focused:after': { + transform: 'scaleX(1)' + } + }, + error: { + '&:after': { + backgroundColor: theme.palette.error.main, + transform: 'scaleX(1)' // error is always underlined in red + } + }, + focused: {}, + disabled: { + color: theme.palette.text.disabled + }, + underline: { + '&:before': { + backgroundColor: bottomLineColor, + left: 0, + bottom: 0, + // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 + content: '""', + height: 1, + position: 'absolute', + right: 0, + transition: theme.transitions.create('background-color', { + duration: theme.transitions.duration.shorter + }), + pointerEvents: 'none' // Transparent to the hover style. + }, + '&:hover:not($disabled):before': { + backgroundColor: theme.palette.text.primary, + height: 2 + }, + '&$disabled:before': { + background: 'transparent', + backgroundImage: 'linear-gradient(to right, ' + bottomLineColor + ' 33%, transparent 0%)', + backgroundPosition: 'left top', + backgroundRepeat: 'repeat-x', + backgroundSize: '5px 1px' + } + }, + multiline: { + padding: theme.spacing.unit - 2 + 'px 0 ' + (theme.spacing.unit - 1) + 'px' + }, + fullWidth: { + width: '100%' + }, + input: { + font: 'inherit', + color: 'currentColor', + padding: theme.spacing.unit - 2 + 'px 0 ' + (theme.spacing.unit - 1) + 'px', + border: 0, + boxSizing: 'content-box', + verticalAlign: 'middle', + background: 'none', + margin: 0, // Reset for Safari + // Remove grey highlight + WebkitTapHighlightColor: 'transparent', + display: 'block', + // Make the flex item shrink with Firefox + minWidth: 0, + width: '100%', + '&::-webkit-input-placeholder': placeholder, + '&::-moz-placeholder': placeholder, // Firefox 19+ + '&:-ms-input-placeholder': placeholder, // IE 11 + '&::-ms-input-placeholder': placeholder, // Edge + '&:focus': { + outline: 0 + }, + // Reset Firefox invalid required input style + '&:invalid': { + boxShadow: 'none' + }, + '&::-webkit-search-decoration': { + // Remove the padding when type=search. + '-webkit-appearance': 'none' + }, + // Show and hide the placeholder logic + 'label[data-shrink=false] + $formControl &': { + '&::-webkit-input-placeholder': placeholderHidden, + '&::-moz-placeholder': placeholderHidden, // Firefox 19+ + '&:-ms-input-placeholder': placeholderHidden, // IE 11 + '&::-ms-input-placeholder': placeholderHidden, // Edge + '&:focus::-webkit-input-placeholder': placeholderVisible, + '&:focus::-moz-placeholder': placeholderVisible, // Firefox 19+ + '&:focus:-ms-input-placeholder': placeholderVisible, // IE 11 + '&:focus::-ms-input-placeholder': placeholderVisible // Edge + } + }, + inputDense: { + paddingTop: theme.spacing.unit / 2 - 1 + }, + inputDisabled: { + opacity: 1 // Reset iOS opacity + }, + inputType: { + // type="date" or type="time", etc. have specific styles we need to reset. + height: '1.1875em' // Reset (19px), match the native input line-height + }, + inputMultiline: { + resize: 'none', + padding: 0 + }, + inputSearch: { + // Improve type search style. + '-moz-appearance': 'textfield', + '-webkit-appearance': 'textfield' + } + }; +}; + +function formControlState(props, context) { + var disabled = props.disabled; + var error = props.error; + var margin = props.margin; + + if (context && context.muiFormControl) { + if (typeof disabled === 'undefined') { + disabled = context.muiFormControl.disabled; + } + + if (typeof error === 'undefined') { + error = context.muiFormControl.error; + } + + if (typeof margin === 'undefined') { + margin = context.muiFormControl.margin; + } + } + + return { + disabled: disabled, + error: error, + margin: margin + }; +} + +var Input = function (_React$Component) { + (0, _inherits3.default)(Input, _React$Component); + + function Input() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Input); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Input.__proto__ || (0, _getPrototypeOf2.default)(Input)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + focused: false + }, _this.input = null, _this.handleFocus = function (event) { + // Fix an bug with IE11 where the focus/blur events are triggered + // while the input is disabled. + if (formControlState(_this.props, _this.context).disabled) { + event.stopPropagation(); + return; + } + + _this.setState({ focused: true }); + if (_this.props.onFocus) { + _this.props.onFocus(event); + } + }, _this.handleBlur = function (event) { + _this.setState({ focused: false }); + if (_this.props.onBlur) { + _this.props.onBlur(event); + } + }, _this.handleChange = function (event) { + if (!_this.isControlled) { + _this.checkDirty(_this.input); + } + + // Perform in the willUpdate + if (_this.props.onChange) { + _this.props.onChange(event); + } + }, _this.handleRefInput = function (node) { + _this.input = node; + + if (_this.props.inputRef) { + _this.props.inputRef(node); + } else if (_this.props.inputProps && _this.props.inputProps.ref) { + _this.props.inputProps.ref(node); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Input, [{ + key: 'getChildContext', + value: function getChildContext() { + // We are consuming the parent muiFormControl context. + // We don't want a child to consume it a second time. + return { + muiFormControl: null + }; + } + }, { + key: 'componentWillMount', + value: function componentWillMount() { + this.isControlled = this.props.value != null; + + if (this.isControlled) { + this.checkDirty(this.props); + } + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + if (!this.isControlled) { + this.checkDirty(this.input); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps, nextContext) { + // The blur won't fire when the disabled state is set on a focused input. + // We need to book keep the focused state manually. + if (!formControlState(this.props, this.context).disabled && formControlState(nextProps, nextContext).disabled) { + this.setState({ + focused: false + }); + } + } + }, { + key: 'componentWillUpdate', + value: function componentWillUpdate(nextProps, nextState, nextContext) { + if (this.isControlled) { + this.checkDirty(nextProps); + } // else performed in the onChange + + // Book keep the focused state. + if (!formControlState(this.props, this.context).disabled && formControlState(nextProps, nextContext).disabled) { + var muiFormControl = this.context.muiFormControl; + + if (muiFormControl && muiFormControl.onBlur) { + muiFormControl.onBlur(); + } + } + } + + // Holds the input reference + + }, { + key: 'checkDirty', + value: function checkDirty(obj) { + var muiFormControl = this.context.muiFormControl; + + + if (isDirty(obj)) { + if (muiFormControl && muiFormControl.onDirty) { + muiFormControl.onDirty(); + } + if (this.props.onDirty) { + this.props.onDirty(); + } + return; + } + + if (muiFormControl && muiFormControl.onClean) { + muiFormControl.onClean(); + } + if (this.props.onClean) { + this.props.onClean(); + } + } + }, { + key: 'render', + value: function render() { + var _classNames, _classNames2; + + var _props = this.props, + autoComplete = _props.autoComplete, + autoFocus = _props.autoFocus, + classes = _props.classes, + classNameProp = _props.className, + defaultValue = _props.defaultValue, + disabledProp = _props.disabled, + disableUnderline = _props.disableUnderline, + endAdornment = _props.endAdornment, + errorProp = _props.error, + fullWidth = _props.fullWidth, + id = _props.id, + inputComponent = _props.inputComponent, + _props$inputProps = _props.inputProps; + _props$inputProps = _props$inputProps === undefined ? {} : _props$inputProps; + var inputPropsClassName = _props$inputProps.className, + inputPropsProp = (0, _objectWithoutProperties3.default)(_props$inputProps, ['className']), + inputRef = _props.inputRef, + marginProp = _props.margin, + multiline = _props.multiline, + name = _props.name, + onBlur = _props.onBlur, + onChange = _props.onChange, + onClean = _props.onClean, + onDirty = _props.onDirty, + onFocus = _props.onFocus, + onKeyDown = _props.onKeyDown, + onKeyUp = _props.onKeyUp, + placeholder = _props.placeholder, + readOnly = _props.readOnly, + rows = _props.rows, + rowsMax = _props.rowsMax, + startAdornment = _props.startAdornment, + type = _props.type, + value = _props.value, + other = (0, _objectWithoutProperties3.default)(_props, ['autoComplete', 'autoFocus', 'classes', 'className', 'defaultValue', 'disabled', 'disableUnderline', 'endAdornment', 'error', 'fullWidth', 'id', 'inputComponent', 'inputProps', 'inputRef', 'margin', 'multiline', 'name', 'onBlur', 'onChange', 'onClean', 'onDirty', 'onFocus', 'onKeyDown', 'onKeyUp', 'placeholder', 'readOnly', 'rows', 'rowsMax', 'startAdornment', 'type', 'value']); + var muiFormControl = this.context.muiFormControl; + + var _formControlState = formControlState(this.props, this.context), + disabled = _formControlState.disabled, + error = _formControlState.error, + margin = _formControlState.margin; + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.error, error), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), (0, _defineProperty3.default)(_classNames, classes.focused, this.state.focused), (0, _defineProperty3.default)(_classNames, classes.formControl, muiFormControl), (0, _defineProperty3.default)(_classNames, classes.inkbar, !disableUnderline), (0, _defineProperty3.default)(_classNames, classes.multiline, multiline), (0, _defineProperty3.default)(_classNames, classes.underline, !disableUnderline), _classNames), classNameProp); + + var inputClassName = (0, _classnames2.default)(classes.input, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.inputDisabled, disabled), (0, _defineProperty3.default)(_classNames2, classes.inputType, type !== 'text'), (0, _defineProperty3.default)(_classNames2, classes.inputMultiline, multiline), (0, _defineProperty3.default)(_classNames2, classes.inputSearch, type === 'search'), (0, _defineProperty3.default)(_classNames2, classes.inputDense, margin === 'dense'), _classNames2), inputPropsClassName); + + var required = muiFormControl && muiFormControl.required === true; + + var InputComponent = 'input'; + var inputProps = (0, _extends3.default)({}, inputPropsProp, { + ref: this.handleRefInput + }); + + if (inputComponent) { + InputComponent = inputComponent; + inputProps = (0, _extends3.default)({ + // Rename ref to inputRef as we don't know the + // provided `inputComponent` structure. + inputRef: this.handleRefInput + }, inputProps, { + ref: null + }); + } else if (multiline) { + if (rows && !rowsMax) { + InputComponent = 'textarea'; + } else { + inputProps = (0, _extends3.default)({ + rowsMax: rowsMax, + textareaRef: this.handleRefInput + }, inputProps, { + ref: null + }); + InputComponent = _Textarea2.default; + } + } + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ onBlur: this.handleBlur, onFocus: this.handleFocus, className: className }, other), + startAdornment, + _react2.default.createElement(InputComponent, (0, _extends3.default)({ + autoComplete: autoComplete, + autoFocus: autoFocus, + className: inputClassName, + onChange: this.handleChange, + onKeyUp: onKeyUp, + onKeyDown: onKeyDown, + disabled: disabled, + required: required ? true : undefined, + value: value, + id: id, + name: name, + defaultValue: defaultValue, + placeholder: placeholder, + type: type, + readOnly: readOnly, + rows: rows, + 'aria-required': required, + 'aria-invalid': error + }, inputProps)), + endAdornment + ); + } + }]); + return Input; +}(_react2.default.Component); + +Input.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * This property helps users to fill forms faster, especially on mobile devices. + * The name can be confusing, as it's more like an autofill. + * You can learn more about it here: + * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill + */ + autoComplete: _propTypes2.default.string, + /** + * If `true`, the input will be focused during the first mount. + */ + autoFocus: _propTypes2.default.bool, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * The CSS class name of the wrapper element. + */ + className: _propTypes2.default.string, + /** + * The default input value, useful when not controlling the component. + */ + defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * If `true`, the input will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the input will not have an underline. + */ + disableUnderline: _propTypes2.default.bool, + /** + * End `InputAdornment` for this component. + */ + endAdornment: _propTypes2.default.node, + /** + * If `true`, the input will indicate an error. This is normally obtained via context from + * FormControl. + */ + error: _propTypes2.default.bool, + /** + * If `true`, the input will take up the full width of its container. + */ + fullWidth: _propTypes2.default.bool, + /** + * The id of the `input` element. + */ + id: _propTypes2.default.string, + /** + * The component used for the native input. + * Either a string to use a DOM element or a component. + */ + inputComponent: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Properties applied to the `input` element. + */ + inputProps: _propTypes2.default.object, + /** + * Use that property to pass a ref callback to the native input component. + */ + inputRef: _propTypes2.default.func, + /** + * If `dense`, will adjust vertical spacing. This is normally obtained via context from + * FormControl. + */ + margin: _propTypes2.default.oneOf(['dense', 'none']), + /** + * If `true`, a textarea element will be rendered. + */ + multiline: _propTypes2.default.bool, + /** + * Name attribute of the `input` element. + */ + name: _propTypes2.default.string, + /** + * @ignore + */ + onBlur: _propTypes2.default.func, + /** + * Callback fired when the value is changed. + * + * @param {object} event The event source of the callback + */ + onChange: _propTypes2.default.func, + /** + * TODO + */ + onClean: _propTypes2.default.func, + /** + * TODO + */ + onDirty: _propTypes2.default.func, + /** + * @ignore + */ + onFocus: _propTypes2.default.func, + /** + * @ignore + */ + onKeyDown: _propTypes2.default.func, + /** + * @ignore + */ + onKeyUp: _propTypes2.default.func, + /** + * The short hint displayed in the input before the user enters a value. + */ + placeholder: _propTypes2.default.string, + /** + * @ignore + */ + readOnly: _propTypes2.default.bool, + /** + * Number of rows to display when multiline option is set to true. + */ + rows: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * Maximum number of rows to display when multiline option is set to true. + */ + rowsMax: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * Start `InputAdornment` for this component. + */ + startAdornment: _propTypes2.default.node, + /** + * Type of the input element. It should be a valid HTML5 input type. + */ + type: _propTypes2.default.string, + /** + * The input value, required for a controlled component. + */ + value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) +} : {}; + +Input.muiName = 'Input'; + +Input.defaultProps = { + disableUnderline: false, + fullWidth: false, + multiline: false, + type: 'text' +}; + +Input.contextTypes = { + muiFormControl: _propTypes2.default.object +}; + +Input.childContextTypes = { + muiFormControl: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiInput' })(Input); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Input/InputAdornment.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + maxHeight: '2em', + alignItems: 'center' + }, + positionStart: { + marginRight: theme.spacing.unit + }, + positionEnd: { + marginLeft: theme.spacing.unit + } + }; +}; + +function InputAdornment(props) { + var _classNames; + + var children = props.children, + Component = props.component, + classes = props.classes, + className = props.className, + disableTypography = props.disableTypography, + position = props.position, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'component', 'classes', 'className', 'disableTypography', 'position']); + + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.positionStart, position === 'start'), (0, _defineProperty3.default)(_classNames, classes.positionEnd, position === 'end'), _classNames), className) + }, other), + typeof children === 'string' && !disableTypography ? _react2.default.createElement( + _Typography2.default, + { color: 'textSecondary' }, + children + ) : children + ); +} + +InputAdornment.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally an `IconButton` or string. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If children is a string then disable wrapping in a Typography component. + */ + disableTypography: _propTypes2.default.bool, + /** + * The position this adornment should appear relative to the `Input`. + */ + position: _propTypes2.default.oneOf(['start', 'end']) +} : {}; + +InputAdornment.defaultProps = { + component: 'div', + disableTypography: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiInputAdornment' })(InputAdornment); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Input/InputLabel.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Form = __webpack_require__("./node_modules/material-ui/Form/index.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + transformOrigin: 'top left' + }, + formControl: { + position: 'absolute', + left: 0, + top: 0, + // slight alteration to spec spacing to match visual spec result + transform: 'translate(0, ' + theme.spacing.unit * 3 + 'px) scale(1)' + }, + labelDense: { + // Compensation for the `Input.inputDense` style. + transform: 'translate(0, ' + (theme.spacing.unit * 2.5 + 1) + 'px) scale(1)' + }, + shrink: { + transform: 'translate(0, 1.5px) scale(0.75)', + transformOrigin: 'top left' + }, + animated: { + transition: theme.transitions.create('transform', { + duration: theme.transitions.duration.shorter, + easing: theme.transitions.easing.easeOut + }) + }, + disabled: { + color: theme.palette.text.disabled + } + }; +}; // @inheritedComponent FormLabel + +function InputLabel(props, context) { + var _classNames; + + var children = props.children, + classes = props.classes, + classNameProp = props.className, + disableAnimation = props.disableAnimation, + disabled = props.disabled, + FormControlClasses = props.FormControlClasses, + marginProp = props.margin, + shrinkProp = props.shrink, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'disableAnimation', 'disabled', 'FormControlClasses', 'margin', 'shrink']); + var muiFormControl = context.muiFormControl; + + var shrink = shrinkProp; + + if (typeof shrink === 'undefined' && muiFormControl) { + shrink = muiFormControl.dirty || muiFormControl.focused || muiFormControl.adornedStart; + } + + var margin = marginProp; + if (typeof margin === 'undefined' && muiFormControl) { + margin = muiFormControl.margin; + } + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.formControl, muiFormControl), (0, _defineProperty3.default)(_classNames, classes.animated, !disableAnimation), (0, _defineProperty3.default)(_classNames, classes.shrink, shrink), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.labelDense, margin === 'dense'), _classNames), classNameProp); + + return _react2.default.createElement( + _Form.FormLabel, + (0, _extends3.default)({ 'data-shrink': shrink, className: className, classes: FormControlClasses }, other), + children + ); +} + +InputLabel.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The contents of the `InputLabel`. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the transition animation is disabled. + */ + disableAnimation: _propTypes2.default.bool, + /** + * If `true`, apply disabled class. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the label will be displayed in an error state. + */ + error: _propTypes2.default.bool, + /** + * If `true`, the input of this label is focused. + */ + focused: _propTypes2.default.bool, + /** + * `classes` property applied to the `FormControl` element. + */ + FormControlClasses: _propTypes2.default.object, + /** + * If `dense`, will adjust vertical spacing. This is normally obtained via context from + * FormControl. + */ + margin: _propTypes2.default.oneOf(['dense']), + /** + * if `true`, the label will indicate that the input is required. + */ + required: _propTypes2.default.bool, + /** + * If `true`, the label is shrunk. + */ + shrink: _propTypes2.default.bool +} : {}; + +InputLabel.defaultProps = { + disabled: false, + disableAnimation: false +}; + +InputLabel.contextTypes = { + muiFormControl: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiInputLabel' })(InputLabel); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Input/Textarea.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ROWS_HEIGHT = 19; + +var styles = exports.styles = { + root: { + position: 'relative', // because the shadow has position: 'absolute', + width: '100%' + }, + textarea: { + width: '100%', + height: '100%', + resize: 'none', + font: 'inherit', + padding: 0, + cursor: 'inherit', + boxSizing: 'border-box', + lineHeight: 'inherit', + border: 'none', + outline: 'none', + background: 'transparent' + }, + shadow: { + resize: 'none', + // Overflow also needed to here to remove the extra row + // added to textareas in Firefox. + overflow: 'hidden', + // Visibility needed to hide the extra text area on ipads + visibility: 'hidden', + position: 'absolute', + height: 'auto', + whiteSpace: 'pre-wrap' + } +}; + +/** + * @ignore - internal component. + */ + +var Textarea = function (_React$Component) { + (0, _inherits3.default)(Textarea, _React$Component); + + function Textarea() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Textarea); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Textarea.__proto__ || (0, _getPrototypeOf2.default)(Textarea)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + height: null + }, _this.shadow = null, _this.singlelineShadow = null, _this.input = null, _this.value = null, _this.handleResize = (0, _debounce2.default)(function (event) { + _this.syncHeightWithShadow(event); + }, 166), _this.handleRefInput = function (node) { + _this.input = node; + if (_this.props.textareaRef) { + _this.props.textareaRef(node); + } + }, _this.handleRefSinglelineShadow = function (node) { + _this.singlelineShadow = node; + }, _this.handleRefShadow = function (node) { + _this.shadow = node; + }, _this.handleChange = function (event) { + _this.value = event.target.value; + + if (typeof _this.props.value === 'undefined' && _this.shadow) { + // The component is not controlled, we need to update the shallow value. + _this.shadow.value = _this.value; + _this.syncHeightWithShadow(event); + } + + if (_this.props.onChange) { + _this.props.onChange(event); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Textarea, [{ + key: 'componentWillMount', + value: function componentWillMount() { + // expects the components it renders to respond to 'value' + // so that it can check whether they are dirty + this.value = this.props.value || this.props.defaultValue || ''; + this.setState({ + height: Number(this.props.rows) * ROWS_HEIGHT + }); + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + this.syncHeightWithShadow(null); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + if (nextProps.value !== this.props.value || Number(nextProps.rowsMax) !== Number(this.props.rowsMax)) { + this.syncHeightWithShadow(null, nextProps); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.handleResize.cancel(); + } + }, { + key: 'syncHeightWithShadow', + value: function syncHeightWithShadow(event) { + var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props; + + if (this.shadow && this.singlelineShadow) { + // The component is controlled, we need to update the shallow value. + if (typeof this.props.value !== 'undefined') { + this.shadow.value = props.value == null ? '' : String(props.value); + } + + var lineHeight = this.singlelineShadow.scrollHeight; + var newHeight = this.shadow.scrollHeight; + + // Guarding for jsdom, where scrollHeight isn't present. + // See https://github.com/tmpvar/jsdom/issues/1013 + if (newHeight === undefined) { + return; + } + + if (Number(props.rowsMax) >= Number(props.rows)) { + newHeight = Math.min(Number(props.rowsMax) * lineHeight, newHeight); + } + + newHeight = Math.max(newHeight, lineHeight); + + if (this.state.height !== newHeight) { + this.setState({ + height: newHeight + }); + } + } + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + classes = _props.classes, + className = _props.className, + defaultValue = _props.defaultValue, + onChange = _props.onChange, + rows = _props.rows, + rowsMax = _props.rowsMax, + textareaRef = _props.textareaRef, + value = _props.value, + other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'defaultValue', 'onChange', 'rows', 'rowsMax', 'textareaRef', 'value']); + + + return _react2.default.createElement( + 'div', + { className: classes.root, style: { height: this.state.height } }, + _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), + _react2.default.createElement('textarea', { + ref: this.handleRefSinglelineShadow, + className: (0, _classnames2.default)(classes.shadow, classes.textarea), + tabIndex: -1, + rows: '1', + readOnly: true, + 'aria-hidden': 'true', + value: '' + }), + _react2.default.createElement('textarea', { + ref: this.handleRefShadow, + className: (0, _classnames2.default)(classes.shadow, classes.textarea), + tabIndex: -1, + rows: rows, + 'aria-hidden': 'true', + readOnly: true, + defaultValue: defaultValue, + value: value + }), + _react2.default.createElement('textarea', (0, _extends3.default)({ + rows: rows, + className: (0, _classnames2.default)(classes.textarea, className), + defaultValue: defaultValue, + value: value, + onChange: this.handleChange, + ref: this.handleRefInput + }, other)) + ); + } + }]); + return Textarea; +}(_react2.default.Component); + +Textarea.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + */ + defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * @ignore + */ + disabled: _propTypes2.default.bool, + /** + * @ignore + */ + onChange: _propTypes2.default.func, + /** + * Number of rows to display when multiline option is set to true. + */ + rows: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * Maximum number of rows to display when multiline option is set to true. + */ + rowsMax: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * Use that property to pass a ref callback to the native textarea element. + */ + textareaRef: _propTypes2.default.func, + /** + * @ignore + */ + value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]) +} : {}; + +Textarea.defaultProps = { + rows: 1 +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTextarea' })(Textarea); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Input/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Input = __webpack_require__("./node_modules/material-ui/Input/Input.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Input).default; + } +}); + +var _InputAdornment = __webpack_require__("./node_modules/material-ui/Input/InputAdornment.js"); + +Object.defineProperty(exports, 'InputAdornment', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_InputAdornment).default; + } +}); + +var _InputLabel = __webpack_require__("./node_modules/material-ui/Input/InputLabel.js"); + +Object.defineProperty(exports, 'InputLabel', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_InputLabel).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/List/List.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + flex: '1 1 auto', + listStyle: 'none', + margin: 0, + padding: 0, + position: 'relative' + }, + padding: { + paddingTop: theme.spacing.unit, + paddingBottom: theme.spacing.unit + }, + dense: { + paddingTop: theme.spacing.unit / 2, + paddingBottom: theme.spacing.unit / 2 + }, + subheader: { + paddingTop: 0 + } + }; +}; + +var List = function (_React$Component) { + (0, _inherits3.default)(List, _React$Component); + + function List() { + (0, _classCallCheck3.default)(this, List); + return (0, _possibleConstructorReturn3.default)(this, (List.__proto__ || (0, _getPrototypeOf2.default)(List)).apply(this, arguments)); + } + + (0, _createClass3.default)(List, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + dense: this.props.dense + }; + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _props = this.props, + children = _props.children, + classes = _props.classes, + classNameProp = _props.className, + Component = _props.component, + dense = _props.dense, + disablePadding = _props.disablePadding, + subheader = _props.subheader, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'component', 'dense', 'disablePadding', 'subheader']); + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.dense, dense && !disablePadding), (0, _defineProperty3.default)(_classNames, classes.padding, !disablePadding), (0, _defineProperty3.default)(_classNames, classes.subheader, subheader), _classNames), classNameProp); + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ className: className }, other), + subheader, + children + ); + } + }]); + return List; +}(_react2.default.Component); + +List.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, compact vertical padding designed for keyboard and mouse input will be used for + * the list and list items. The property is available to descendant components as the + * `dense` context. + */ + dense: _propTypes2.default.bool, + /** + * If `true`, vertical padding will be removed from the list. + */ + disablePadding: _propTypes2.default.bool, + /** + * The content of the subheader, normally `ListSubheader`. + */ + subheader: _propTypes2.default.node +} : {}; + +List.defaultProps = { + component: 'ul', + dense: false, + disablePadding: false +}; + +List.childContextTypes = { + dense: _propTypes2.default.bool +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiList' })(List); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/List/ListItem.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + justifyContent: 'flex-start', + alignItems: 'center', + position: 'relative', + textDecoration: 'none', + width: '100%', + boxSizing: 'border-box', + textAlign: 'left' + }, + container: { + position: 'relative' + }, + keyboardFocused: { + backgroundColor: theme.palette.action.hover + }, + default: { + paddingTop: 12, + paddingBottom: 12 + }, + dense: { + paddingTop: theme.spacing.unit, + paddingBottom: theme.spacing.unit + }, + disabled: { + opacity: 0.5 + }, + divider: { + borderBottom: '1px solid ' + theme.palette.divider, + backgroundClip: 'padding-box' + }, + gutters: { + paddingLeft: theme.spacing.unit * 2, + paddingRight: theme.spacing.unit * 2 + }, + button: { + transition: theme.transitions.create('background-color', { + duration: theme.transitions.duration.shortest + }), + '&:hover': { + textDecoration: 'none', + backgroundColor: theme.palette.action.hover, + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: 'transparent' + } + } + }, + secondaryAction: { + // Add some space to avoid collision as `ListItemSecondaryAction` + // is absolutely positionned. + paddingRight: theme.spacing.unit * 4 + } + }; +}; + +var ListItem = function (_React$Component) { + (0, _inherits3.default)(ListItem, _React$Component); + + function ListItem() { + (0, _classCallCheck3.default)(this, ListItem); + return (0, _possibleConstructorReturn3.default)(this, (ListItem.__proto__ || (0, _getPrototypeOf2.default)(ListItem)).apply(this, arguments)); + } + + (0, _createClass3.default)(ListItem, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + dense: this.props.dense || this.context.dense || false + }; + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _props = this.props, + button = _props.button, + childrenProp = _props.children, + classes = _props.classes, + classNameProp = _props.className, + componentProp = _props.component, + ContainerComponent = _props.ContainerComponent, + ContainerProps = _props.ContainerProps, + dense = _props.dense, + disabled = _props.disabled, + disableGutters = _props.disableGutters, + divider = _props.divider, + other = (0, _objectWithoutProperties3.default)(_props, ['button', 'children', 'classes', 'className', 'component', 'ContainerComponent', 'ContainerProps', 'dense', 'disabled', 'disableGutters', 'divider']); + + + var isDense = dense || this.context.dense || false; + var children = _react2.default.Children.toArray(childrenProp); + var hasAvatar = children.some(function (value) { + return (0, _reactHelpers.isMuiElement)(value, ['ListItemAvatar']); + }); + var hasSecondaryAction = children.length && (0, _reactHelpers.isMuiElement)(children[children.length - 1], ['ListItemSecondaryAction']); + + var className = (0, _classnames2.default)(classes.root, isDense || hasAvatar ? classes.dense : classes.default, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.gutters, !disableGutters), (0, _defineProperty3.default)(_classNames, classes.divider, divider), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.button, button), (0, _defineProperty3.default)(_classNames, classes.secondaryAction, hasSecondaryAction), _classNames), classNameProp); + + var componentProps = (0, _extends3.default)({ className: className, disabled: disabled }, other); + var Component = componentProp || 'li'; + + if (button) { + componentProps.component = componentProp || 'div'; + componentProps.keyboardFocusedClassName = classes.keyboardFocused; + Component = _ButtonBase2.default; + } + + if (hasSecondaryAction) { + Component = Component !== _ButtonBase2.default && !componentProp ? 'div' : Component; + + return _react2.default.createElement( + ContainerComponent, + (0, _extends3.default)({ className: classes.container }, ContainerProps), + _react2.default.createElement( + Component, + componentProps, + children + ), + children.pop() + ); + } + + return _react2.default.createElement( + Component, + componentProps, + children + ); + } + }]); + return ListItem; +}(_react2.default.Component); + +ListItem.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the list item will be a button (using `ButtonBase`). + */ + button: _propTypes2.default.bool, + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + * By default, it's a `li` when `button` is `false` and a `div` when `button` is `true`. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * The container component. Useful when a `ListItemSecondaryAction` is rendered. + */ + ContainerComponent: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Properties applied to the container element when the component + * is used to display a `ListItemSecondaryAction`. + */ + ContainerProps: _propTypes2.default.object, + /** + * If `true`, compact vertical padding designed for keyboard and mouse input will be used. + */ + dense: _propTypes2.default.bool, + /** + * @ignore + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the left and right padding is removed. + */ + disableGutters: _propTypes2.default.bool, + /** + * If `true`, a 1px light border is added to the bottom of the list item. + */ + divider: _propTypes2.default.bool +} : {}; + +ListItem.defaultProps = { + button: false, + ContainerComponent: 'li', + dense: false, + disabled: false, + disableGutters: false, + divider: false +}; + +ListItem.contextTypes = { + dense: _propTypes2.default.bool +}; + +ListItem.childContextTypes = { + dense: _propTypes2.default.bool +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItem' })(ListItem); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/List/ListItemAvatar.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + width: 36, + height: 36, + fontSize: theme.typography.pxToRem(18), + marginRight: 4 + }, + icon: { + width: 20, + height: 20, + fontSize: theme.typography.pxToRem(20) + } + }; +}; + +/** + * It's a simple wrapper to apply the `dense` mode styles to `Avatar`. + */ +function ListItemAvatar(props, context) { + var children = props.children, + classes = props.classes, + classNameProp = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); + + + if (context.dense === undefined) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, 'Material-UI: is a simple wrapper to apply the dense styles\n to . You do not need it unless you are controlling the dense property.') : void 0; + return props.children; + } + + return _react2.default.cloneElement(children, (0, _extends3.default)({ + className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.root, context.dense), classNameProp, children.props.className), + childrenClassName: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.icon, context.dense), children.props.childrenClassName) + }, other)); +} + +ListItemAvatar.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally `Avatar`. + */ + children: _propTypes2.default.element.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +ListItemAvatar.contextTypes = { + dense: _propTypes2.default.bool +}; + +ListItemAvatar.muiName = 'ListItemAvatar'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemAvatar' })(ListItemAvatar); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/List/ListItemIcon.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + height: 24, + marginRight: theme.spacing.unit * 2, + width: 24, + color: theme.palette.action.active, + flexShrink: 0 + } + }; +}; + +/** + * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`. + */ +function ListItemIcon(props) { + var children = props.children, + classes = props.classes, + classNameProp = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); + + + return _react2.default.cloneElement(children, (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, classNameProp, children.props.className) + }, other)); +} + +ListItemIcon.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally `Icon`, `SvgIcon`, + * or a `material-ui-icons` SVG icon component. + */ + children: _propTypes2.default.element.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemIcon' })(ListItemIcon); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/List/ListItemSecondaryAction.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + position: 'absolute', + right: 4, + top: '50%', + marginTop: -theme.spacing.unit * 3 + } + }; +}; + +function ListItemSecondaryAction(props) { + var children = props.children, + classes = props.classes, + className = props.className, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + children + ); +} + +ListItemSecondaryAction.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally an `IconButton` or selection control. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string +} : {}; + +ListItemSecondaryAction.muiName = 'ListItemSecondaryAction'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemSecondaryAction' })(ListItemSecondaryAction); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/List/ListItemText.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + flex: '1 1 auto', + minWidth: 0, + padding: '0 16px', + '&:first-child': { + paddingLeft: 0 + } + }, + inset: { + '&:first-child': { + paddingLeft: theme.spacing.unit * 7 + } + }, + dense: { + fontSize: theme.typography.pxToRem(13) + }, + primary: { + '&$textDense': { + fontSize: 'inherit' + } + }, + secondary: { + '&$textDense': { + fontSize: 'inherit' + } + }, + textDense: {} + }; +}; + +function ListItemText(props, context) { + var _classNames; + + var classes = props.classes, + classNameProp = props.className, + disableTypography = props.disableTypography, + inset = props.inset, + primary = props.primary, + secondary = props.secondary, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'disableTypography', 'inset', 'primary', 'secondary']); + var dense = context.dense; + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.dense, dense), (0, _defineProperty3.default)(_classNames, classes.inset, inset), _classNames), classNameProp); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + primary && (disableTypography ? primary : _react2.default.createElement( + _Typography2.default, + { + variant: 'subheading', + className: (0, _classnames2.default)(classes.primary, (0, _defineProperty3.default)({}, classes.textDense, dense)) + }, + primary + )), + secondary && (disableTypography ? secondary : _react2.default.createElement( + _Typography2.default, + { + variant: 'body1', + className: (0, _classnames2.default)(classes.secondary, (0, _defineProperty3.default)({}, classes.textDense, dense)), + color: 'textSecondary' + }, + secondary + )) + ); +} + +ListItemText.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the children won't be wrapped by a typography component. + * For instance, that can be useful to can render an h4 instead of a + */ + disableTypography: _propTypes2.default.bool, + /** + * If `true`, the children will be indented. + * This should be used if there is no left avatar or left icon. + */ + inset: _propTypes2.default.bool, + primary: _propTypes2.default.node, + secondary: _propTypes2.default.node +} : {}; + +ListItemText.defaultProps = { + disableTypography: false, + inset: false, + primary: false, + secondary: false +}; + +ListItemText.contextTypes = { + dense: _propTypes2.default.bool +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemText' })(ListItemText); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/List/ListSubheader.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + boxSizing: 'border-box', + lineHeight: '48px', + listStyle: 'none', + paddingLeft: theme.spacing.unit * 2, + paddingRight: theme.spacing.unit * 2, + color: theme.palette.text.secondary, + fontFamily: theme.typography.fontFamily, + fontWeight: theme.typography.fontWeightMedium, + fontSize: theme.typography.pxToRem(theme.typography.fontSize) + }, + colorPrimary: { + color: theme.palette.primary.main + }, + colorInherit: { + color: 'inherit' + }, + inset: { + paddingLeft: theme.spacing.unit * 9 + }, + sticky: { + position: 'sticky', + top: 0, + zIndex: 1, + backgroundColor: 'inherit' + } + }; +}; + +function ListSubheader(props) { + var _classNames; + + var classes = props.classes, + classNameProp = props.className, + color = props.color, + Component = props.component, + disableSticky = props.disableSticky, + inset = props.inset, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color', 'component', 'disableSticky', 'inset']); + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default'), (0, _defineProperty3.default)(_classNames, classes.inset, inset), (0, _defineProperty3.default)(_classNames, classes.sticky, !disableSticky), _classNames), classNameProp); + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); +} + +ListSubheader.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['default', 'primary', 'inherit']), + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the List Subheader will not stick to the top during scroll. + */ + disableSticky: _propTypes2.default.bool, + /** + * If `true`, the List Subheader will be indented. + */ + inset: _propTypes2.default.bool +} : {}; + +ListSubheader.defaultProps = { + color: 'default', + component: 'li', + disableSticky: false, + inset: false +}; + +ListSubheader.muiName = 'ListSubheader'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListSubheader' })(ListSubheader); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/List/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _List = __webpack_require__("./node_modules/material-ui/List/List.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_List).default; + } +}); + +var _ListItem = __webpack_require__("./node_modules/material-ui/List/ListItem.js"); + +Object.defineProperty(exports, 'ListItem', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ListItem).default; + } +}); + +var _ListItemAvatar = __webpack_require__("./node_modules/material-ui/List/ListItemAvatar.js"); + +Object.defineProperty(exports, 'ListItemAvatar', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ListItemAvatar).default; + } +}); + +var _ListItemText = __webpack_require__("./node_modules/material-ui/List/ListItemText.js"); + +Object.defineProperty(exports, 'ListItemText', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ListItemText).default; + } +}); + +var _ListItemIcon = __webpack_require__("./node_modules/material-ui/List/ListItemIcon.js"); + +Object.defineProperty(exports, 'ListItemIcon', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ListItemIcon).default; + } +}); + +var _ListItemSecondaryAction = __webpack_require__("./node_modules/material-ui/List/ListItemSecondaryAction.js"); + +Object.defineProperty(exports, 'ListItemSecondaryAction', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ListItemSecondaryAction).default; + } +}); + +var _ListSubheader = __webpack_require__("./node_modules/material-ui/List/ListSubheader.js"); + +Object.defineProperty(exports, 'ListSubheader', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ListSubheader).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Menu/Menu.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _scrollbarSize = __webpack_require__("./node_modules/dom-helpers/util/scrollbarSize.js"); + +var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Popover = __webpack_require__("./node_modules/material-ui/Popover/index.js"); + +var _Popover2 = _interopRequireDefault(_Popover); + +var _MenuList = __webpack_require__("./node_modules/material-ui/Menu/MenuList.js"); + +var _MenuList2 = _interopRequireDefault(_MenuList); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var RTL_ORIGIN = { + vertical: 'top', + horizontal: 'right' +}; // @inheritedComponent Popover + +var LTR_ORIGIN = { + vertical: 'top', + horizontal: 'left' +}; + +var styles = exports.styles = { + paper: { + // specZ: The maximum height of a simple menu should be one or more rows less than the view + // height. This ensures a tappable area outside of the simple menu with which to dismiss + // the menu. + maxHeight: 'calc(100vh - 96px)', + // Add iOS momentum scrolling. + WebkitOverflowScrolling: 'touch' + } +}; + +var Menu = function (_React$Component) { + (0, _inherits3.default)(Menu, _React$Component); + + function Menu() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Menu); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Menu.__proto__ || (0, _getPrototypeOf2.default)(Menu)).call.apply(_ref, [this].concat(args))), _this), _this.getContentAnchorEl = function () { + if (!_this.menuList || !_this.menuList.selectedItem) { + return (0, _reactDom.findDOMNode)(_this.menuList).firstChild; + } + + return (0, _reactDom.findDOMNode)(_this.menuList.selectedItem); + }, _this.menuList = undefined, _this.focus = function () { + if (_this.menuList && _this.menuList.selectedItem) { + (0, _reactDom.findDOMNode)(_this.menuList.selectedItem).focus(); + return; + } + + var menuList = (0, _reactDom.findDOMNode)(_this.menuList); + if (menuList && menuList.firstChild) { + menuList.firstChild.focus(); + } + }, _this.handleEnter = function (element) { + var theme = _this.props.theme; + + var menuList = (0, _reactDom.findDOMNode)(_this.menuList); + + // Focus so the scroll computation of the Popover works as expected. + _this.focus(); + + // Let's ignore that piece of logic if users are already overriding the width + // of the menu. + if (menuList && element.clientHeight < menuList.clientHeight && !menuList.style.width) { + var size = (0, _scrollbarSize2.default)() + 'px'; + menuList.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = size; + menuList.style.width = 'calc(100% + ' + size + ')'; + } + + if (_this.props.onEnter) { + _this.props.onEnter(element); + } + }, _this.handleListKeyDown = function (event, key) { + if (key === 'tab') { + event.preventDefault(); + + if (_this.props.onClose) { + _this.props.onClose(event); + } + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Menu, [{ + key: 'componentDidMount', + value: function componentDidMount() { + if (this.props.open) { + this.focus(); + } + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + children = _props.children, + classes = _props.classes, + MenuListProps = _props.MenuListProps, + onEnter = _props.onEnter, + _props$PaperProps = _props.PaperProps, + PaperProps = _props$PaperProps === undefined ? {} : _props$PaperProps, + PopoverClasses = _props.PopoverClasses, + theme = _props.theme, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'MenuListProps', 'onEnter', 'PaperProps', 'PopoverClasses', 'theme']); + + + return _react2.default.createElement( + _Popover2.default, + (0, _extends3.default)({ + getContentAnchorEl: this.getContentAnchorEl, + classes: PopoverClasses, + onEnter: this.handleEnter, + anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN, + transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN, + PaperProps: (0, _extends3.default)({}, PaperProps, { + classes: (0, _extends3.default)({}, PaperProps.classes, { + root: classes.paper + }) + }) + }, other), + _react2.default.createElement( + _MenuList2.default, + (0, _extends3.default)({ + role: 'menu', + onKeyDown: this.handleListKeyDown + }, MenuListProps, { + ref: function ref(node) { + _this2.menuList = node; + } + }), + children + ) + ); + } + }]); + return Menu; +}(_react2.default.Component); + +Menu.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The DOM element used to set the position of the menu. + */ + anchorEl: _propTypes2.default.object, + /** + * Menu contents, normally `MenuItem`s. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * Properties applied to the `MenuList` element. + */ + MenuListProps: _propTypes2.default.object, + /** + * Callback fired when the component requests to be closed. + * + * @param {object} event The event source of the callback + */ + onClose: _propTypes2.default.func, + /** + * Callback fired before the Menu enters. + */ + onEnter: _propTypes2.default.func, + /** + * Callback fired when the Menu has entered. + */ + onEntered: _propTypes2.default.func, + /** + * Callback fired when the Menu is entering. + */ + onEntering: _propTypes2.default.func, + /** + * Callback fired before the Menu exits. + */ + onExit: _propTypes2.default.func, + /** + * Callback fired when the Menu has exited. + */ + onExited: _propTypes2.default.func, + /** + * Callback fired when the Menu is exiting. + */ + onExiting: _propTypes2.default.func, + /** + * If `true`, the menu is visible. + */ + open: _propTypes2.default.bool.isRequired, + /** + * @ignore + */ + PaperProps: _propTypes2.default.object, + /** + * `classes` property applied to the `Popover` element. + */ + PopoverClasses: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The length of the transition in `ms`, or 'auto' + */ + transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) +} : {}; + +Menu.defaultProps = { + transitionDuration: 'auto' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiMenu', withTheme: true })(Menu); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Menu/MenuItem.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ListItem = __webpack_require__("./node_modules/material-ui/List/ListItem.js"); + +var _ListItem2 = _interopRequireDefault(_ListItem); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: (0, _extends3.default)({}, theme.typography.subheading, { + height: theme.spacing.unit * 3, + boxSizing: 'content-box', + width: 'auto', + overflow: 'hidden', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + '&$selected': { + backgroundColor: theme.palette.action.selected + } + }), + selected: {} + }; +}; // @inheritedComponent ListItem + +function MenuItem(props) { + var classes = props.classes, + classNameProp = props.className, + component = props.component, + selected = props.selected, + role = props.role, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'selected', 'role']); + + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.selected, selected), classNameProp); + + return _react2.default.createElement(_ListItem2.default, (0, _extends3.default)({ + button: true, + role: role, + tabIndex: -1, + className: className, + component: component + }, other)); +} + +MenuItem.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Menu item contents. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * @ignore + */ + role: _propTypes2.default.string, + /** + * Use to apply selected styling. + */ + selected: _propTypes2.default.bool +} : {}; + +MenuItem.defaultProps = { + component: 'li', + role: 'menuitem', + selected: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiMenuItem' })(MenuItem); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Menu/MenuList.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); + +var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _keycode = __webpack_require__("./node_modules/keycode/index.js"); + +var _keycode2 = _interopRequireDefault(_keycode); + +var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); + +var _contains2 = _interopRequireDefault(_contains); + +var _activeElement = __webpack_require__("./node_modules/dom-helpers/activeElement.js"); + +var _activeElement2 = _interopRequireDefault(_activeElement); + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +var _List = __webpack_require__("./node_modules/material-ui/List/index.js"); + +var _List2 = _interopRequireDefault(_List); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent List + +var MenuList = function (_React$Component) { + (0, _inherits3.default)(MenuList, _React$Component); + + function MenuList() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, MenuList); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = MenuList.__proto__ || (0, _getPrototypeOf2.default)(MenuList)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + currentTabIndex: undefined + }, _this.list = undefined, _this.selectedItem = undefined, _this.blurTimer = undefined, _this.handleBlur = function (event) { + _this.blurTimer = setTimeout(function () { + if (_this.list) { + var list = (0, _reactDom.findDOMNode)(_this.list); + var currentFocus = (0, _activeElement2.default)((0, _ownerDocument2.default)(list)); + if (!(0, _contains2.default)(list, currentFocus)) { + _this.resetTabIndex(); + } + } + }, 30); + + if (_this.props.onBlur) { + _this.props.onBlur(event); + } + }, _this.handleKeyDown = function (event) { + var list = (0, _reactDom.findDOMNode)(_this.list); + var key = (0, _keycode2.default)(event); + var currentFocus = (0, _activeElement2.default)((0, _ownerDocument2.default)(list)); + + if ((key === 'up' || key === 'down') && (!currentFocus || currentFocus && !(0, _contains2.default)(list, currentFocus))) { + if (_this.selectedItem) { + (0, _reactDom.findDOMNode)(_this.selectedItem).focus(); + } else { + list.firstChild.focus(); + } + } else if (key === 'down') { + event.preventDefault(); + if (currentFocus.nextElementSibling) { + currentFocus.nextElementSibling.focus(); + } + } else if (key === 'up') { + event.preventDefault(); + if (currentFocus.previousElementSibling) { + currentFocus.previousElementSibling.focus(); + } + } + + if (_this.props.onKeyDown) { + _this.props.onKeyDown(event, key); + } + }, _this.handleItemFocus = function (event) { + var list = (0, _reactDom.findDOMNode)(_this.list); + if (list) { + for (var i = 0; i < list.children.length; i += 1) { + if (list.children[i] === event.currentTarget) { + _this.setTabIndex(i); + break; + } + } + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(MenuList, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.resetTabIndex(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearTimeout(this.blurTimer); + } + }, { + key: 'setTabIndex', + value: function setTabIndex(index) { + this.setState({ currentTabIndex: index }); + } + }, { + key: 'focus', + value: function focus() { + var currentTabIndex = this.state.currentTabIndex; + + var list = (0, _reactDom.findDOMNode)(this.list); + if (!list || !list.children || !list.firstChild) { + return; + } + + if (currentTabIndex && currentTabIndex >= 0) { + list.children[currentTabIndex].focus(); + } else { + list.firstChild.focus(); + } + } + }, { + key: 'resetTabIndex', + value: function resetTabIndex() { + var list = (0, _reactDom.findDOMNode)(this.list); + var currentFocus = (0, _activeElement2.default)((0, _ownerDocument2.default)(list)); + var items = [].concat((0, _toConsumableArray3.default)(list.children)); + var currentFocusIndex = items.indexOf(currentFocus); + + if (currentFocusIndex !== -1) { + return this.setTabIndex(currentFocusIndex); + } + + if (this.selectedItem) { + return this.setTabIndex(items.indexOf((0, _reactDom.findDOMNode)(this.selectedItem))); + } + + return this.setTabIndex(0); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + children = _props.children, + className = _props.className, + onBlur = _props.onBlur, + onKeyDown = _props.onKeyDown, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'className', 'onBlur', 'onKeyDown']); + + + return _react2.default.createElement( + _List2.default, + (0, _extends3.default)({ + role: 'menu', + ref: function ref(node) { + _this2.list = node; + }, + className: className, + onKeyDown: this.handleKeyDown, + onBlur: this.handleBlur + }, other), + _react2.default.Children.map(children, function (child, index) { + if (!_react2.default.isValidElement(child)) { + return null; + } + + return _react2.default.cloneElement(child, { + tabIndex: index === _this2.state.currentTabIndex ? 0 : -1, + ref: child.props.selected ? function (node) { + _this2.selectedItem = node; + } : undefined, + onFocus: _this2.handleItemFocus + }); + }) + ); + } + }]); + return MenuList; +}(_react2.default.Component); + +MenuList.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * MenuList contents, normally `MenuItem`s. + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + */ + onBlur: _propTypes2.default.func, + /** + * @ignore + */ + onKeyDown: _propTypes2.default.func +} : {}; + +exports.default = MenuList; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Menu/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Menu = __webpack_require__("./node_modules/material-ui/Menu/Menu.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Menu).default; + } +}); + +var _MenuList = __webpack_require__("./node_modules/material-ui/Menu/MenuList.js"); + +Object.defineProperty(exports, 'MenuList', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_MenuList).default; + } +}); + +var _MenuItem = __webpack_require__("./node_modules/material-ui/Menu/MenuItem.js"); + +Object.defineProperty(exports, 'MenuItem', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_MenuItem).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/MobileStepper/MobileStepper.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); + +var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _Progress = __webpack_require__("./node_modules/material-ui/Progress/index.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + background: theme.palette.background.default, + padding: theme.spacing.unit + }, + positionBottom: { + position: 'fixed', + bottom: 0, + left: 0, + right: 0, + zIndex: theme.zIndex.mobileStepper + }, + positionTop: { + position: 'fixed', + top: 0, + left: 0, + right: 0, + zIndex: theme.zIndex.mobileStepper + }, + positionStatic: {}, + dots: { + display: 'flex', + flexDirection: 'row' + }, + dot: { + backgroundColor: theme.palette.action.disabled, + borderRadius: '50%', + width: theme.spacing.unit, + height: theme.spacing.unit, + margin: '0 2px' + }, + dotActive: { + backgroundColor: theme.palette.primary.main + }, + progress: { + width: '50%' + } + }; +}; // @inheritedComponent Paper + +function MobileStepper(props) { + var activeStep = props.activeStep, + backButton = props.backButton, + classes = props.classes, + classNameProp = props.className, + nextButton = props.nextButton, + position = props.position, + steps = props.steps, + variant = props.variant, + other = (0, _objectWithoutProperties3.default)(props, ['activeStep', 'backButton', 'classes', 'className', 'nextButton', 'position', 'steps', 'variant']); + + + var className = (0, _classnames2.default)(classes.root, classes['position' + (0, _helpers.capitalize)(position)], classNameProp); + + return _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ square: true, elevation: 0, className: className }, other), + backButton, + variant === 'dots' && _react2.default.createElement( + 'div', + { className: classes.dots }, + [].concat((0, _toConsumableArray3.default)(new Array(steps))).map(function (_, step) { + var dotClassName = (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.dotActive, step === activeStep), classes.dot); + // eslint-disable-next-line react/no-array-index-key + return _react2.default.createElement('div', { key: step, className: dotClassName }); + }) + ), + variant === 'progress' && _react2.default.createElement( + 'div', + { className: classes.progress }, + _react2.default.createElement(_Progress.LinearProgress, { variant: 'determinate', value: Math.ceil(activeStep / (steps - 1) * 100) }) + ), + nextButton + ); +} + +MobileStepper.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Set the active step (zero based index). + * Defines which dot is highlighted when the variant is 'dots'. + */ + activeStep: _propTypes2.default.number, + /** + * A back button element. For instance, it can be be a `Button` or a `IconButton`. + */ + backButton: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * A next button element. For instance, it can be be a `Button` or a `IconButton`. + */ + nextButton: _propTypes2.default.node, + /** + * Set the positioning type. + */ + position: _propTypes2.default.oneOf(['bottom', 'top', 'static']), + /** + * The total steps. + */ + steps: _propTypes2.default.number.isRequired, + /** + * The type of mobile stepper to use. + */ + variant: _propTypes2.default.oneOf(['text', 'dots', 'progress']) +} : {}; + +MobileStepper.defaultProps = { + activeStep: 0, + position: 'bottom', + variant: 'dots' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiMobileStepper' })(MobileStepper); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/MobileStepper/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _MobileStepper = __webpack_require__("./node_modules/material-ui/MobileStepper/MobileStepper.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_MobileStepper).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Modal/Backdrop.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Fade = __webpack_require__("./node_modules/material-ui/transitions/Fade.js"); + +var _Fade2 = _interopRequireDefault(_Fade); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + zIndex: -1, + width: '100%', + height: '100%', + position: 'fixed', + top: 0, + left: 0, + // Remove grey highlight + WebkitTapHighlightColor: 'transparent', + willChange: 'opacity', + backgroundColor: 'rgba(0, 0, 0, 0.5)' + }, + invisible: { + backgroundColor: 'transparent' + } +}; + +function Backdrop(props) { + var classes = props.classes, + invisible = props.invisible, + open = props.open, + transitionDuration = props.transitionDuration, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'invisible', 'open', 'transitionDuration']); + + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.invisible, invisible)); + + return _react2.default.createElement( + _Fade2.default, + (0, _extends3.default)({ appear: true, 'in': open, timeout: transitionDuration }, other), + _react2.default.createElement('div', { className: className, 'aria-hidden': 'true' }) + ); +} + +Backdrop.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * If `true`, the backdrop is invisible. + * It can be used when rendering a popover or a custom select component. + */ + invisible: _propTypes2.default.bool, + /** + * If `true`, the backdrop is open. + */ + open: _propTypes2.default.bool.isRequired, + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + */ + transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) +} : {}; + +Backdrop.defaultProps = { + invisible: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBackdrop' })(Backdrop); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Modal/Modal.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _keycode = __webpack_require__("./node_modules/keycode/index.js"); + +var _keycode2 = _interopRequireDefault(_keycode); + +var _activeElement = __webpack_require__("./node_modules/dom-helpers/activeElement.js"); + +var _activeElement2 = _interopRequireDefault(_activeElement); + +var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); + +var _contains2 = _interopRequireDefault(_contains); + +var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); + +var _inDOM2 = _interopRequireDefault(_inDOM); + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +var _RefHolder = __webpack_require__("./node_modules/material-ui/internal/RefHolder.js"); + +var _RefHolder2 = _interopRequireDefault(_RefHolder); + +var _Portal = __webpack_require__("./node_modules/material-ui/Portal/index.js"); + +var _Portal2 = _interopRequireDefault(_Portal); + +var _addEventListener = __webpack_require__("./node_modules/material-ui/utils/addEventListener.js"); + +var _addEventListener2 = _interopRequireDefault(_addEventListener); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ModalManager = __webpack_require__("./node_modules/material-ui/Modal/ModalManager.js"); + +var _ModalManager2 = _interopRequireDefault(_ModalManager); + +var _Backdrop = __webpack_require__("./node_modules/material-ui/Modal/Backdrop.js"); + +var _Backdrop2 = _interopRequireDefault(_Backdrop); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getContainer(container, defaultContainer) { + container = typeof container === 'function' ? container() : container; + return _reactDom2.default.findDOMNode(container) || defaultContainer; +} // @inheritedComponent Portal + +function getOwnerDocument(element) { + return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(element)); +} + +function getHasTransition(props) { + return props.children ? props.children.props.hasOwnProperty('in') : false; +} + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + width: '100%', + height: '100%', + position: 'fixed', + zIndex: theme.zIndex.modal, + top: 0, + left: 0 + }, + hidden: { + visibility: 'hidden' + } + }; +}; + +var Modal = function (_React$Component) { + (0, _inherits3.default)(Modal, _React$Component); + + function Modal(props, context) { + (0, _classCallCheck3.default)(this, Modal); + + var _this = (0, _possibleConstructorReturn3.default)(this, (Modal.__proto__ || (0, _getPrototypeOf2.default)(Modal)).call(this, props, context)); + + _this.dialog = null; + _this.mounted = false; + _this.mountNode = null; + + _this.handleRendered = function () { + _this.autoFocus(); + + if (_this.props.onRendered) { + _this.props.onRendered(); + } + }; + + _this.handleOpen = function () { + var doc = getOwnerDocument(_this); + var container = getContainer(_this.props.container, doc.body); + + _this.props.manager.add(_this, container); + _this.onDocumentKeydownListener = (0, _addEventListener2.default)(doc, 'keydown', _this.handleDocumentKeyDown); + _this.onFocusinListener = (0, _addEventListener2.default)(document, 'focus', _this.enforceFocus, true); + }; + + _this.handleClose = function () { + _this.props.manager.remove(_this); + _this.onDocumentKeydownListener.remove(); + _this.onFocusinListener.remove(); + _this.restoreLastFocus(); + }; + + _this.handleExited = function () { + _this.setState({ exited: true }); + _this.handleClose(); + }; + + _this.handleBackdropClick = function (event) { + if (event.target !== event.currentTarget) { + return; + } + + if (_this.props.onBackdropClick) { + _this.props.onBackdropClick(event); + } + + if (!_this.props.disableBackdropClick && _this.props.onClose) { + _this.props.onClose(event, 'backdropClick'); + } + }; + + _this.handleDocumentKeyDown = function (event) { + if (!_this.isTopModal() || (0, _keycode2.default)(event) !== 'esc') { + return; + } + + if (_this.props.onEscapeKeyDown) { + _this.props.onEscapeKeyDown(event); + } + + if (!_this.props.disableEscapeKeyDown && _this.props.onClose) { + _this.props.onClose(event, 'escapeKeyDown'); + } + }; + + _this.checkForFocus = function () { + if (_inDOM2.default) { + _this.lastFocus = (0, _activeElement2.default)(); + } + }; + + _this.enforceFocus = function () { + if (_this.props.disableEnforceFocus || !_this.mounted || !_this.isTopModal()) { + return; + } + + var dialogElement = _this.getDialogElement(); + var currentActiveElement = (0, _activeElement2.default)(getOwnerDocument(_this)); + + if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) { + dialogElement.focus(); + } + }; + + _this.state = { + exited: !_this.props.open + }; + return _this; + } + + (0, _createClass3.default)(Modal, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.mounted = true; + if (this.props.open) { + this.handleOpen(); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + if (nextProps.open) { + this.setState({ exited: false }); + } else if (!getHasTransition(nextProps)) { + // Otherwise let handleExited take care of marking exited. + this.setState({ exited: true }); + } + } + }, { + key: 'componentWillUpdate', + value: function componentWillUpdate(nextProps) { + if (!this.props.open && nextProps.open) { + this.checkForFocus(); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps) { + if (prevProps.open && !this.props.open && !getHasTransition(this.props)) { + // Otherwise handleExited will call this. + this.handleClose(); + } else if (!prevProps.open && this.props.open) { + this.handleOpen(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.mounted = false; + + if (this.props.open || getHasTransition(this.props) && !this.state.exited) { + this.handleClose(); + } + } + }, { + key: 'getDialogElement', + value: function getDialogElement() { + return _reactDom2.default.findDOMNode(this.dialog); + } + }, { + key: 'autoFocus', + value: function autoFocus() { + if (this.props.disableAutoFocus) { + return; + } + + var dialogElement = this.getDialogElement(); + var currentActiveElement = (0, _activeElement2.default)(getOwnerDocument(this)); + + if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) { + this.lastFocus = currentActiveElement; + + if (!dialogElement.hasAttribute('tabIndex')) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, ['Material-UI: the modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to "-1".'].join('\n')) : void 0; + dialogElement.setAttribute('tabIndex', -1); + } + + dialogElement.focus(); + } + } + }, { + key: 'restoreLastFocus', + value: function restoreLastFocus() { + if (this.props.disableRestoreFocus) { + return; + } + + if (this.lastFocus) { + this.lastFocus.focus(); + this.lastFocus = null; + } + } + }, { + key: 'isTopModal', + value: function isTopModal() { + return this.props.manager.isTopModal(this); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + BackdropComponent = _props.BackdropComponent, + BackdropProps = _props.BackdropProps, + children = _props.children, + classes = _props.classes, + className = _props.className, + container = _props.container, + disableAutoFocus = _props.disableAutoFocus, + disableBackdropClick = _props.disableBackdropClick, + disableEnforceFocus = _props.disableEnforceFocus, + disableEscapeKeyDown = _props.disableEscapeKeyDown, + disableRestoreFocus = _props.disableRestoreFocus, + hideBackdrop = _props.hideBackdrop, + keepMounted = _props.keepMounted, + onBackdropClick = _props.onBackdropClick, + onClose = _props.onClose, + onEscapeKeyDown = _props.onEscapeKeyDown, + onRendered = _props.onRendered, + open = _props.open, + manager = _props.manager, + other = (0, _objectWithoutProperties3.default)(_props, ['BackdropComponent', 'BackdropProps', 'children', 'classes', 'className', 'container', 'disableAutoFocus', 'disableBackdropClick', 'disableEnforceFocus', 'disableEscapeKeyDown', 'disableRestoreFocus', 'hideBackdrop', 'keepMounted', 'onBackdropClick', 'onClose', 'onEscapeKeyDown', 'onRendered', 'open', 'manager']); + var exited = this.state.exited; + + var hasTransition = getHasTransition(this.props); + var childProps = {}; + + if (!keepMounted && !open && (!hasTransition || exited)) { + return null; + } + + // It's a Transition like component + if (hasTransition) { + childProps.onExited = (0, _helpers.createChainedFunction)(this.handleExited, children.props.onExited); + } + + if (children.props.role === undefined) { + childProps.role = children.props.role || 'document'; + } + + if (children.props.tabIndex === undefined) { + childProps.tabIndex = children.props.tabIndex || '-1'; + } + + return _react2.default.createElement( + _Portal2.default, + { + ref: function ref(node) { + _this2.mountNode = node ? node.getMountNode() : node; + }, + container: container, + onRendered: this.handleRendered + }, + _react2.default.createElement( + 'div', + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, className, (0, _defineProperty3.default)({}, classes.hidden, exited)) + }, other), + hideBackdrop ? null : _react2.default.createElement(BackdropComponent, (0, _extends3.default)({ open: open, onClick: this.handleBackdropClick }, BackdropProps)), + _react2.default.createElement( + _RefHolder2.default, + { + ref: function ref(node) { + _this2.dialog = node; + } + }, + _react2.default.cloneElement(children, childProps) + ) + ) + ); + } + }]); + return Modal; +}(_react2.default.Component); + +Modal.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * A backdrop component. Useful for custom backdrop rendering. + */ + BackdropComponent: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Properties applied to the `Backdrop` element. + */ + BackdropProps: _propTypes2.default.object, + /** + * A single child content element. + */ + children: _propTypes2.default.element, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * A node, component instance, or function that returns either. + * The `container` will have the portal children appended to it. + */ + container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), + /** + * If `true`, the modal will not automatically shift focus to itself when it opens, and + * replace it to the last focused element when it closes. + * This also works correctly with any modal children that have the `disableAutoFocus` prop. + * + * Generally this should never be set to `true` as it makes the modal less + * accessible to assistive technologies, like screen readers. + */ + disableAutoFocus: _propTypes2.default.bool, + /** + * If `true`, clicking the backdrop will not fire any callback. + */ + disableBackdropClick: _propTypes2.default.bool, + /** + * If `true`, the modal will not prevent focus from leaving the modal while open. + * + * Generally this should never be set to `true` as it makes the modal less + * accessible to assistive technologies, like screen readers. + */ + disableEnforceFocus: _propTypes2.default.bool, + /** + * If `true`, hitting escape will not fire any callback. + */ + disableEscapeKeyDown: _propTypes2.default.bool, + /** + * If `true`, the modal will not restore focus to previously focused element once + * modal is hidden. + */ + disableRestoreFocus: _propTypes2.default.bool, + /** + * If `true`, the backdrop is not rendered. + */ + hideBackdrop: _propTypes2.default.bool, + /** + * Always keep the children in the DOM. + * This property can be useful in SEO situation or + * when you want to maximize the responsiveness of the Modal. + */ + keepMounted: _propTypes2.default.bool, + /** + * A modal manager used to track and manage the state of open + * Modals. Useful when customizing how modals interact within a container. + */ + manager: _propTypes2.default.object, + /** + * Callback fired when the backdrop is clicked. + */ + onBackdropClick: _propTypes2.default.func, + /** + * Callback fired when the component requests to be closed. + * The `reason` parameter can optionally be used to control the response to `onClose`. + * + * @param {object} event The event source of the callback + * @param {string} reason Can be:`"escapeKeyDown"`, `"backdropClick"` + */ + onClose: _propTypes2.default.func, + /** + * Callback fired when the escape key is pressed, + * `disableEscapeKeyDown` is false and the modal is in focus. + */ + onEscapeKeyDown: _propTypes2.default.func, + /** + * Callback fired once the children has been mounted into the `container`. + * It signals that the `open={true}` property took effect. + */ + onRendered: _propTypes2.default.func, + /** + * If `true`, the modal is open. + */ + open: _propTypes2.default.bool.isRequired +} : {}; + +Modal.defaultProps = { + disableAutoFocus: false, + disableBackdropClick: false, + disableEnforceFocus: false, + disableEscapeKeyDown: false, + disableRestoreFocus: false, + hideBackdrop: false, + keepMounted: false, + // Modals don't open on the server so this won't conflict with concurrent requests. + manager: new _ModalManager2.default(), + BackdropComponent: _Backdrop2.default +}; + +exports.default = (0, _withStyles2.default)(styles, { flip: false, name: 'MuiModal' })(Modal); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Modal/ModalManager.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _style = __webpack_require__("./node_modules/dom-helpers/style/index.js"); + +var _style2 = _interopRequireDefault(_style); + +var _scrollbarSize = __webpack_require__("./node_modules/dom-helpers/util/scrollbarSize.js"); + +var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize); + +var _isOverflowing = __webpack_require__("./node_modules/material-ui/Modal/isOverflowing.js"); + +var _isOverflowing2 = _interopRequireDefault(_isOverflowing); + +var _manageAriaHidden = __webpack_require__("./node_modules/material-ui/Modal/manageAriaHidden.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function findIndexOf(data, callback) { + var idx = -1; + data.some(function (item, index) { + if (callback(item)) { + idx = index; + return true; + } + return false; + }); + return idx; +} + +function findContainer(data, modal) { + return findIndexOf(data, function (item) { + return item.modals.indexOf(modal) !== -1; + }); +} + +function getPaddingRight(node) { + return parseInt((0, _style2.default)(node, 'paddingRight') || 0, 10); +} + +function setContainerStyle(data, container) { + var style = { overflow: 'hidden' }; + + // We are only interested in the actual `style` here because we will override it. + data.style = { + overflow: container.style.overflow, + paddingRight: container.style.paddingRight + }; + + if (data.overflowing) { + var scrollbarSize = (0, _scrollbarSize2.default)(); + + // Use computed style, here to get the real padding to add our scrollbar width. + style.paddingRight = getPaddingRight(container) + scrollbarSize + 'px'; + + // .mui-fixed is a global helper. + var fixedNodes = document.querySelectorAll('.mui-fixed'); + for (var i = 0; i < fixedNodes.length; i += 1) { + var paddingRight = getPaddingRight(fixedNodes[i]); + data.prevPaddings.push(paddingRight); + fixedNodes[i].style.paddingRight = paddingRight + scrollbarSize + 'px'; + } + } + + (0, _keys2.default)(style).forEach(function (key) { + container.style[key] = style[key]; + }); +} + +function removeContainerStyle(data, container) { + (0, _keys2.default)(data.style).forEach(function (key) { + container.style[key] = data.style[key]; + }); + + var fixedNodes = document.querySelectorAll('.mui-fixed'); + for (var i = 0; i < fixedNodes.length; i += 1) { + fixedNodes[i].style.paddingRight = data.prevPaddings[i] + 'px'; + } +} +/** + * @ignore - do not document. + * + * Proper state managment for containers and the modals in those containers. + * Simplified, but inspired by react-overlay's ModalManager class + * Used by the Modal to ensure proper styling of containers. + */ + +var ModalManager = function ModalManager() { + var _this = this; + + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$hideSiblingNodes = _ref.hideSiblingNodes, + hideSiblingNodes = _ref$hideSiblingNodes === undefined ? true : _ref$hideSiblingNodes, + _ref$handleContainerO = _ref.handleContainerOverflow, + handleContainerOverflow = _ref$handleContainerO === undefined ? true : _ref$handleContainerO; + + (0, _classCallCheck3.default)(this, ModalManager); + + this.add = function (modal, container) { + var modalIdx = _this.modals.indexOf(modal); + var containerIdx = _this.containers.indexOf(container); + + if (modalIdx !== -1) { + return modalIdx; + } + + modalIdx = _this.modals.length; + _this.modals.push(modal); + + if (_this.hideSiblingNodes) { + (0, _manageAriaHidden.hideSiblings)(container, modal.mountNode); + } + + if (containerIdx !== -1) { + _this.data[containerIdx].modals.push(modal); + return modalIdx; + } + + var data = { + modals: [modal], + overflowing: (0, _isOverflowing2.default)(container), + prevPaddings: [] + }; + + if (_this.handleContainerOverflow) { + setContainerStyle(data, container); + } + + _this.containers.push(container); + _this.data.push(data); + + return modalIdx; + }; + + this.remove = function (modal) { + var modalIdx = _this.modals.indexOf(modal); + + if (modalIdx === -1) { + return modalIdx; + } + + var containerIdx = findContainer(_this.data, modal); + var data = _this.data[containerIdx]; + var container = _this.containers[containerIdx]; + + data.modals.splice(data.modals.indexOf(modal), 1); + _this.modals.splice(modalIdx, 1); + + // If that was the last modal in a container, clean up the container. + if (data.modals.length === 0) { + if (_this.handleContainerOverflow) { + removeContainerStyle(data, container); + } + + if (_this.hideSiblingNodes) { + (0, _manageAriaHidden.showSiblings)(container, modal.mountNode); + } + _this.containers.splice(containerIdx, 1); + _this.data.splice(containerIdx, 1); + } else if (_this.hideSiblingNodes) { + // Otherwise make sure the next top modal is visible to a SR. + (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].mountNode); + } + + return modalIdx; + }; + + this.isTopModal = function (modal) { + return !!_this.modals.length && _this.modals[_this.modals.length - 1] === modal; + }; + + this.hideSiblingNodes = hideSiblingNodes; + this.handleContainerOverflow = handleContainerOverflow; + // this.modals[modalIdx] = modal + this.modals = []; + // this.containers[containerIdx] = container + this.containers = []; + // this.data[containerIdx] = { + // modals: [], + // } + this.data = []; +}; + +exports.default = ModalManager; + +/***/ }), + +/***/ "./node_modules/material-ui/Modal/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Modal = __webpack_require__("./node_modules/material-ui/Modal/Modal.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Modal).default; + } +}); + +var _Backdrop = __webpack_require__("./node_modules/material-ui/Modal/Backdrop.js"); + +Object.defineProperty(exports, 'Backdrop', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Backdrop).default; + } +}); + +var _ModalManager = __webpack_require__("./node_modules/material-ui/Modal/ModalManager.js"); + +Object.defineProperty(exports, 'ModalManager', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ModalManager).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Modal/isOverflowing.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isBody = isBody; +exports.default = isOverflowing; + +var _isWindow = __webpack_require__("./node_modules/dom-helpers/query/isWindow.js"); + +var _isWindow2 = _interopRequireDefault(_isWindow); + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function isBody(node) { + return node && node.tagName.toLowerCase() === 'body'; +} + +// Do we have a scroll bar? +function isOverflowing(container) { + var doc = (0, _ownerDocument2.default)(container); + var win = (0, _isWindow2.default)(doc); + + /* istanbul ignore next */ + if (!win && !isBody(container)) { + return container.scrollHeight > container.clientHeight; + } + + // Takes in account potential non zero margin on the body. + var style = window.getComputedStyle(doc.body); + var marginLeft = parseInt(style.getPropertyValue('margin-left'), 10); + var marginRight = parseInt(style.getPropertyValue('margin-right'), 10); + + return marginLeft + doc.body.clientWidth + marginRight < win.innerWidth; +} + +/***/ }), + +/***/ "./node_modules/material-ui/Modal/manageAriaHidden.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ariaHidden = ariaHidden; +exports.hideSiblings = hideSiblings; +exports.showSiblings = showSiblings; +var BLACKLIST = ['template', 'script', 'style']; + +function isHidable(node) { + return node.nodeType === 1 && BLACKLIST.indexOf(node.tagName.toLowerCase()) === -1; +} + +function siblings(container, mount, callback) { + mount = [].concat(mount); // eslint-disable-line no-param-reassign + [].forEach.call(container.children, function (node) { + if (mount.indexOf(node) === -1 && isHidable(node)) { + callback(node); + } + }); +} + +function ariaHidden(show, node) { + if (!node) { + return; + } + if (show) { + node.setAttribute('aria-hidden', 'true'); + } else { + node.removeAttribute('aria-hidden'); + } +} + +function hideSiblings(container, mountNode) { + siblings(container, mountNode, function (node) { + return ariaHidden(true, node); + }); +} + +function showSiblings(container, mountNode) { + siblings(container, mountNode, function (node) { + return ariaHidden(false, node); + }); +} + +/***/ }), + +/***/ "./node_modules/material-ui/Paper/Paper.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + var shadows = {}; + theme.shadows.forEach(function (shadow, index) { + shadows['shadow' + index] = { + boxShadow: shadow + }; + }); + + return (0, _extends3.default)({ + root: { + backgroundColor: theme.palette.background.paper + }, + rounded: { + borderRadius: 2 + } + }, shadows); +}; + +function Paper(props) { + var classes = props.classes, + classNameProp = props.className, + Component = props.component, + square = props.square, + elevation = props.elevation, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'square', 'elevation']); + + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(elevation >= 0 && elevation < 25, 'Material-UI: this elevation `' + elevation + '` is not implemented.') : void 0; + + var className = (0, _classnames2.default)(classes.root, classes['shadow' + elevation], (0, _defineProperty3.default)({}, classes.rounded, !square), classNameProp); + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); +} + +Paper.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Shadow depth, corresponds to `dp` in the spec. + * It's accepting values between 0 and 24 inclusive. + */ + elevation: _propTypes2.default.number, + /** + * If `true`, rounded corners are disabled. + */ + square: _propTypes2.default.bool +} : {}; + +Paper.defaultProps = { + component: 'div', + elevation: 2, + square: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiPaper' })(Paper); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Paper/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/Paper.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Paper).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Popover/Popover.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); + +var _contains2 = _interopRequireDefault(_contains); + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +var _ownerWindow = __webpack_require__("./node_modules/dom-helpers/ownerWindow.js"); + +var _ownerWindow2 = _interopRequireDefault(_ownerWindow); + +var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Modal = __webpack_require__("./node_modules/material-ui/Modal/index.js"); + +var _Modal2 = _interopRequireDefault(_Modal); + +var _Grow = __webpack_require__("./node_modules/material-ui/transitions/Grow.js"); + +var _Grow2 = _interopRequireDefault(_Grow); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getOffsetTop(rect, vertical) { + var offset = 0; + + if (typeof vertical === 'number') { + offset = vertical; + } else if (vertical === 'center') { + offset = rect.height / 2; + } else if (vertical === 'bottom') { + offset = rect.height; + } + + return offset; +} // @inheritedComponent Modal + +function getOffsetLeft(rect, horizontal) { + var offset = 0; + + if (typeof horizontal === 'number') { + offset = horizontal; + } else if (horizontal === 'center') { + offset = rect.width / 2; + } else if (horizontal === 'right') { + offset = rect.width; + } + + return offset; +} + +function getTransformOriginValue(transformOrigin) { + return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) { + return typeof n === 'number' ? n + 'px' : n; + }).join(' '); +} + +// Sum the scrollTop between two elements. +function getScrollParent(parent, child) { + var element = child; + var scrollTop = 0; + + while (element && element !== parent) { + element = element.parentNode; + scrollTop += element.scrollTop; + } + return scrollTop; +} + +var styles = exports.styles = { + paper: { + position: 'absolute', + overflowY: 'auto', + overflowX: 'hidden', + // So we see the popover when it's empty. + // It's most likely on issue on userland. + minWidth: 16, + minHeight: 16, + maxWidth: 'calc(100vw - 32px)', + maxHeight: 'calc(100vh - 32px)', + '&:focus': { + outline: 'none' + } + } +}; + +var Popover = function (_React$Component) { + (0, _inherits3.default)(Popover, _React$Component); + + function Popover() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Popover); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Popover.__proto__ || (0, _getPrototypeOf2.default)(Popover)).call.apply(_ref, [this].concat(args))), _this), _this.componentWillUnmount = function () { + _this.handleResize.cancel(); + }, _this.setPositioningStyles = function (element) { + if (element && element.style) { + var positioning = _this.getPositioningStyle(element); + element.style.top = positioning.top; + element.style.left = positioning.left; + element.style.transformOrigin = positioning.transformOrigin; + } + }, _this.getPositioningStyle = function (element) { + var _this$props = _this.props, + anchorEl = _this$props.anchorEl, + marginThreshold = _this$props.marginThreshold; + + // Check if the parent has requested anchoring on an inner content node + + var contentAnchorOffset = _this.getContentAnchorOffset(element); + // Get the offset of of the anchoring element + var anchorOffset = _this.getAnchorOffset(contentAnchorOffset); + + var elemRect = { + width: element.clientWidth, + height: element.clientHeight + }; + // Get the transform origin point on the element itself + var transformOrigin = _this.getTransformOrigin(elemRect, contentAnchorOffset); + + // Calculate element positioning + var top = anchorOffset.top - transformOrigin.vertical; + var left = anchorOffset.left - transformOrigin.horizontal; + var bottom = top + elemRect.height; + var right = left + elemRect.width; + + // Use the parent window of the anchorEl if provided + var containerWindow = (0, _ownerWindow2.default)(anchorEl); + + // Window thresholds taking required margin into account + var heightThreshold = containerWindow.innerHeight - marginThreshold; + var widthThreshold = containerWindow.innerWidth - marginThreshold; + + // Check if the vertical axis needs shifting + if (top < marginThreshold) { + var diff = top - marginThreshold; + top -= diff; + transformOrigin.vertical += diff; + } else if (bottom > heightThreshold) { + var _diff = bottom - heightThreshold; + top -= _diff; + transformOrigin.vertical += _diff; + } + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(elemRect.height < heightThreshold || !elemRect.height || !heightThreshold, ['Material-UI: the popover component is too tall.', 'Some part of it can not be seen on the screen (' + (elemRect.height - heightThreshold) + 'px).', 'Please consider adding a `max-height` to improve the user-experience.'].join('\n')) : void 0; + + // Check if the horizontal axis needs shifting + if (left < marginThreshold) { + var _diff2 = left - marginThreshold; + left -= _diff2; + transformOrigin.horizontal += _diff2; + } else if (right > widthThreshold) { + var _diff3 = right - widthThreshold; + left -= _diff3; + transformOrigin.horizontal += _diff3; + } + + return { + top: top + 'px', + left: left + 'px', + transformOrigin: getTransformOriginValue(transformOrigin) + }; + }, _this.transitionEl = undefined, _this.handleGetOffsetTop = getOffsetTop, _this.handleGetOffsetLeft = getOffsetLeft, _this.handleEnter = function (element) { + if (_this.props.onEnter) { + _this.props.onEnter(element); + } + + _this.setPositioningStyles(element); + }, _this.handleResize = (0, _debounce2.default)(function () { + var element = _reactDom2.default.findDOMNode(_this.transitionEl); + _this.setPositioningStyles(element); + }, 166), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Popover, [{ + key: 'componentDidMount', + value: function componentDidMount() { + if (this.props.action) { + this.props.action({ + updatePosition: this.handleResize + }); + } + } + }, { + key: 'getAnchorOffset', + + + // Returns the top/left offset of the position + // to attach to on the anchor element (or body if none is provided) + value: function getAnchorOffset(contentAnchorOffset) { + var _props = this.props, + anchorEl = _props.anchorEl, + anchorOrigin = _props.anchorOrigin, + anchorReference = _props.anchorReference, + anchorPosition = _props.anchorPosition; + + + if (anchorReference === 'anchorPosition') { + return anchorPosition; + } + + var anchorElement = anchorEl || document.body; + var anchorRect = anchorElement.getBoundingClientRect(); + var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center'; + + return { + top: anchorRect.top + this.handleGetOffsetTop(anchorRect, anchorVertical), + left: anchorRect.left + this.handleGetOffsetLeft(anchorRect, anchorOrigin.horizontal) + }; + } + + // Returns the vertical offset of inner content to anchor the transform on if provided + + }, { + key: 'getContentAnchorOffset', + value: function getContentAnchorOffset(element) { + var _props2 = this.props, + getContentAnchorEl = _props2.getContentAnchorEl, + anchorReference = _props2.anchorReference; + + var contentAnchorOffset = 0; + + if (getContentAnchorEl && anchorReference === 'anchorEl') { + var contentAnchorEl = getContentAnchorEl(element); + + if (contentAnchorEl && (0, _contains2.default)(element, contentAnchorEl)) { + var scrollTop = getScrollParent(element, contentAnchorEl); + contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0; + } + + // != the default value + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(this.props.anchorOrigin.vertical === 'top', ['Material-UI: you can not change the default `anchorOrigin.vertical` value ', 'when also providing the `getContentAnchorEl` property to the popover component.', 'Only use one of the two properties.', 'Set `getContentAnchorEl` to null or left `anchorOrigin.vertical` unchanged.'].join('\n')) : void 0; + } + + return contentAnchorOffset; + } + + // Return the base transform origin using the element + // and taking the content anchor offset into account if in use + + }, { + key: 'getTransformOrigin', + value: function getTransformOrigin(elemRect) { + var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var transformOrigin = this.props.transformOrigin; + + return { + vertical: this.handleGetOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset, + horizontal: this.handleGetOffsetLeft(elemRect, transformOrigin.horizontal) + }; + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props3 = this.props, + anchorEl = _props3.anchorEl, + anchorOrigin = _props3.anchorOrigin, + anchorPosition = _props3.anchorPosition, + anchorReference = _props3.anchorReference, + children = _props3.children, + classes = _props3.classes, + containerProp = _props3.container, + elevation = _props3.elevation, + getContentAnchorEl = _props3.getContentAnchorEl, + marginThreshold = _props3.marginThreshold, + onEnter = _props3.onEnter, + onEntered = _props3.onEntered, + onEntering = _props3.onEntering, + onExit = _props3.onExit, + onExited = _props3.onExited, + onExiting = _props3.onExiting, + open = _props3.open, + PaperProps = _props3.PaperProps, + role = _props3.role, + transformOrigin = _props3.transformOrigin, + TransitionProp = _props3.transition, + transitionDuration = _props3.transitionDuration, + action = _props3.action, + other = (0, _objectWithoutProperties3.default)(_props3, ['anchorEl', 'anchorOrigin', 'anchorPosition', 'anchorReference', 'children', 'classes', 'container', 'elevation', 'getContentAnchorEl', 'marginThreshold', 'onEnter', 'onEntered', 'onEntering', 'onExit', 'onExited', 'onExiting', 'open', 'PaperProps', 'role', 'transformOrigin', 'transition', 'transitionDuration', 'action']); + + // If the container prop is provided, use that + // If the anchorEl prop is provided, use its parent body element as the container + // If neither are provided let the Modal take care of choosing the container + + var container = containerProp || (anchorEl ? (0, _ownerDocument2.default)(anchorEl).body : undefined); + + var transitionProps = {}; + // The provided transition might not support the auto timeout value. + if (TransitionProp === _Grow2.default) { + transitionProps.timeout = transitionDuration; + } + + return _react2.default.createElement( + _Modal2.default, + (0, _extends3.default)({ container: container, open: open, BackdropProps: { invisible: true } }, other), + _react2.default.createElement( + TransitionProp, + (0, _extends3.default)({ + appear: true, + 'in': open, + onEnter: this.handleEnter, + onEntered: onEntered, + onEntering: onEntering, + onExit: onExit, + onExited: onExited, + onExiting: onExiting, + role: role, + ref: function ref(node) { + _this2.transitionEl = node; + } + }, transitionProps), + _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ + className: classes.paper, + + elevation: elevation + }, PaperProps), + _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), + children + ) + ) + ); + } + }]); + return Popover; +}(_react2.default.Component); + +Popover.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * This is callback property. It's called by the component on mount. + * This is useful when you want to trigger an action programmatically. + * It currently only supports updatePosition() action. + * + * @param {object} actions This object contains all posible actions + * that can be triggered programmatically. + */ + action: _propTypes2.default.func, + /** + * This is the DOM element that may be used + * to set the position of the popover. + */ + anchorEl: _propTypes2.default.object, + /** + * This is the point on the anchor where the popover's + * `anchorEl` will attach to. This is not used when the + * anchorReference is 'anchorPosition'. + * + * Options: + * vertical: [top, center, bottom]; + * horizontal: [left, center, right]. + */ + anchorOrigin: _propTypes2.default.shape({ + horizontal: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['left', 'center', 'right'])]), + vertical: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['top', 'center', 'bottom'])]) + }), + /** + * This is the position that may be used + * to set the position of the popover. + * The coordinates are relative to + * the application's client area. + */ + anchorPosition: _propTypes2.default.shape({ + top: _propTypes2.default.number, + left: _propTypes2.default.number + }), + /* + * This determines which anchor prop to refer to to set + * the position of the popover. + */ + anchorReference: _propTypes2.default.oneOf(['anchorEl', 'anchorPosition']), + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * A node, component instance, or function that returns either. + * The `container` will passed to the Modal component. + * By default, it's using the body of the anchorEl's top-level document object, + * so it's simply `document.body` most of the time. + */ + container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), + /** + * The elevation of the popover. + */ + elevation: _propTypes2.default.number, + /** + * This function is called in order to retrieve the content anchor element. + * It's the opposite of the `anchorEl` property. + * The content anchor element should be an element inside the popover. + * It's used to correctly scroll and set the position of the popover. + * The positioning strategy tries to make the content anchor element just above the + * anchor element. + */ + getContentAnchorEl: _propTypes2.default.func, + /** + * Specifies how close to the edge of the window the popover can appear. + */ + marginThreshold: _propTypes2.default.number, + /** + * Callback fired when the component requests to be closed. + * + * @param {object} event The event source of the callback. + */ + onClose: _propTypes2.default.func, + /** + * Callback fired before the component is entering. + */ + onEnter: _propTypes2.default.func, + /** + * Callback fired when the component has entered. + */ + onEntered: _propTypes2.default.func, + /** + * Callback fired when the component is entering. + */ + onEntering: _propTypes2.default.func, + /** + * Callback fired before the component is exiting. + */ + onExit: _propTypes2.default.func, + /** + * Callback fired when the component has exited. + */ + onExited: _propTypes2.default.func, + /** + * Callback fired when the component is exiting. + */ + onExiting: _propTypes2.default.func, + /** + * If `true`, the popover is visible. + */ + open: _propTypes2.default.bool.isRequired, + /** + * Properties applied to the `Paper` element. + */ + PaperProps: _propTypes2.default.object, + /** + * @ignore + */ + role: _propTypes2.default.string, + /** + * This is the point on the popover which + * will attach to the anchor's origin. + * + * Options: + * vertical: [top, center, bottom, x(px)]; + * horizontal: [left, center, right, x(px)]. + */ + transformOrigin: _propTypes2.default.shape({ + horizontal: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['left', 'center', 'right'])]), + vertical: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['top', 'center', 'bottom'])]) + }), + /** + * Transition component. + */ + transition: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Set to 'auto' to automatically calculate transition time based on height. + */ + transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) +} : {}; + +Popover.defaultProps = { + anchorReference: 'anchorEl', + anchorOrigin: { + vertical: 'top', + horizontal: 'left' + }, + elevation: 8, + marginThreshold: 16, + transformOrigin: { + vertical: 'top', + horizontal: 'left' + }, + transition: _Grow2.default, + transitionDuration: 'auto' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiPopover' })(Popover); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Popover/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Popover = __webpack_require__("./node_modules/material-ui/Popover/Popover.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Popover).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Portal/LegacyPortal.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); + +var _exactProp2 = _interopRequireDefault(_exactProp); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getContainer(container, defaultContainer) { + container = typeof container === 'function' ? container() : container; + return _reactDom2.default.findDOMNode(container) || defaultContainer; +} + +function getOwnerDocument(element) { + return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(element)); +} + +/** + * @ignore - internal component. + * + * This module will soon be gone. We should drop it as soon as React@15.x support stop. + */ + +var LegacyPortal = function (_React$Component) { + (0, _inherits3.default)(LegacyPortal, _React$Component); + + function LegacyPortal() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, LegacyPortal); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = LegacyPortal.__proto__ || (0, _getPrototypeOf2.default)(LegacyPortal)).call.apply(_ref, [this].concat(args))), _this), _this.getMountNode = function () { + return _this.mountNode; + }, _this.mountOverlayTarget = function () { + if (!_this.overlayTarget) { + _this.overlayTarget = document.createElement('div'); + _this.mountNode = getContainer(_this.props.container, getOwnerDocument(_this).body); + _this.mountNode.appendChild(_this.overlayTarget); + } + }, _this.unmountOverlayTarget = function () { + if (_this.overlayTarget) { + _this.mountNode.removeChild(_this.overlayTarget); + _this.overlayTarget = null; + } + _this.mountNode = null; + }, _this.unrenderOverlay = function () { + if (_this.overlayTarget) { + _reactDom2.default.unmountComponentAtNode(_this.overlayTarget); + _this.overlayInstance = null; + } + }, _this.renderOverlay = function () { + var overlay = _this.props.children; + _this.mountOverlayTarget(); + var initialRender = !_this.overlayInstance; + _this.overlayInstance = _reactDom2.default.unstable_renderSubtreeIntoContainer(_this, overlay, _this.overlayTarget, function () { + if (initialRender && _this.props.onRendered) { + _this.props.onRendered(); + } + }); + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(LegacyPortal, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.mounted = true; + this.renderOverlay(); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + if (this.overlayTarget && nextProps.container !== this.props.container) { + this.mountNode.removeChild(this.overlayTarget); + this.mountNode = getContainer(nextProps.container, getOwnerDocument(this).body); + this.mountNode.appendChild(this.overlayTarget); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.renderOverlay(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.mounted = false; + this.unrenderOverlay(); + this.unmountOverlayTarget(); + } + + /** + * @public + */ + + }, { + key: 'render', + value: function render() { + return null; + } + }]); + return LegacyPortal; +}(_react2.default.Component); + +LegacyPortal.propTypes = process.env.NODE_ENV !== "production" ? { + children: _propTypes2.default.element.isRequired, + container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), + onRendered: _propTypes2.default.func +} : {}; + +LegacyPortal.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(LegacyPortal.propTypes, 'LegacyPortal') : {}; + +exports.default = LegacyPortal; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Portal/Portal.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); + +var _exactProp2 = _interopRequireDefault(_exactProp); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getContainer(container, defaultContainer) { + container = typeof container === 'function' ? container() : container; + return _reactDom2.default.findDOMNode(container) || defaultContainer; +} + +function getOwnerDocument(element) { + return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(element)); +} + +/** + * This component shares many concepts with + * [react-overlays](https://react-bootstrap.github.io/react-overlays/#portals) + * But has been forked in order to fix some bugs, reduce the number of dependencies + * and take the control of our destiny. + */ + +var Portal = function (_React$Component) { + (0, _inherits3.default)(Portal, _React$Component); + + function Portal() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Portal); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Portal.__proto__ || (0, _getPrototypeOf2.default)(Portal)).call.apply(_ref, [this].concat(args))), _this), _this.getMountNode = function () { + return _this.mountNode; + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Portal, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.setContainer(this.props.container); + this.forceUpdate(this.props.onRendered); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + if (nextProps.container !== this.props.container) { + this.setContainer(nextProps.container); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.mountNode = null; + } + }, { + key: 'setContainer', + value: function setContainer(container) { + this.mountNode = getContainer(container, getOwnerDocument(this).body); + } + + /** + * @public + */ + + }, { + key: 'render', + value: function render() { + var children = this.props.children; + + + return this.mountNode ? _reactDom2.default.createPortal(children, this.mountNode) : null; + } + }]); + return Portal; +}(_react2.default.Component); + +Portal.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The children to render into the `container`. + */ + children: _propTypes2.default.node.isRequired, + /** + * A node, component instance, or function that returns either. + * The `container` will have the portal children appended to it. + * By default, it's using the body of the top-level document object, + * so it's simply `document.body` most of the time. + */ + container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), + /** + * Callback fired once the children has been mounted into the `container`. + */ + onRendered: _propTypes2.default.func +} : {}; + +Portal.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(Portal.propTypes, 'Portal') : {}; + +exports.default = Portal; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Portal/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _Portal = __webpack_require__("./node_modules/material-ui/Portal/Portal.js"); + +var _Portal2 = _interopRequireDefault(_Portal); + +var _LegacyPortal = __webpack_require__("./node_modules/material-ui/Portal/LegacyPortal.js"); + +var _LegacyPortal2 = _interopRequireDefault(_LegacyPortal); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _reactDom2.default.createPortal ? _Portal2.default : _LegacyPortal2.default; + +/***/ }), + +/***/ "./node_modules/material-ui/Progress/CircularProgress.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SIZE = 50; + +function getRelativeValue(value, min, max) { + var clampedValue = Math.min(Math.max(min, value), max); + return (clampedValue - min) / (max - min); +} + +function easeOut(t) { + t = getRelativeValue(t, 0, 1); + // https://gist.github.com/gre/1650294 + t = (t -= 1) * t * t + 1; + return t; +} + +function easeIn(t) { + return t * t; +} + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'inline-block' + }, + colorPrimary: { + color: theme.palette.primary.main + }, + colorSecondary: { + color: theme.palette.secondary.main + }, + svg: {}, + svgIndeterminate: { + animation: 'mui-progress-circular-rotate 1.4s linear infinite' + }, + circle: { + stroke: 'currentColor', + strokeLinecap: 'round' + }, + circleIndeterminate: { + animation: 'mui-progress-circular-dash 1.4s ease-in-out infinite', + // Some default value that looks fine waiting for the animation to kicks in. + strokeDasharray: '80px, 200px', + strokeDashoffset: '0px' // Add the unit to fix a Edge 16 and below bug. + }, + '@keyframes mui-progress-circular-rotate': { + '100%': { + transform: 'rotate(360deg)' + } + }, + '@keyframes mui-progress-circular-dash': { + '0%': { + strokeDasharray: '1px, 200px', + strokeDashoffset: '0px' + }, + '50%': { + strokeDasharray: '100px, 200px', + strokeDashoffset: '-15px' + }, + '100%': { + strokeDasharray: '100px, 200px', + strokeDashoffset: '-120px' + } + } + }; +}; + +/** + * ## ARIA + * + * If the progress bar is describing the loading progress of a particular region of a page, + * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy` + * attribute to `true` on that region until it has finished loading. + */ +function CircularProgress(props) { + var _classNames2; + + var classes = props.classes, + className = props.className, + color = props.color, + max = props.max, + min = props.min, + size = props.size, + style = props.style, + thickness = props.thickness, + value = props.value, + variant = props.variant, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color', 'max', 'min', 'size', 'style', 'thickness', 'value', 'variant']); + + + var circleStyle = {}; + var rootStyle = {}; + var rootProps = {}; + + if (variant === 'determinate' || variant === 'static') { + var relVal = getRelativeValue(value, min, max) * 100; + var circumference = 2 * Math.PI * (SIZE / 2 - 5); + circleStyle.strokeDasharray = circumference.toFixed(3); + rootProps['aria-valuenow'] = Math.round(relVal); + + if (variant === 'static') { + circleStyle.strokeDashoffset = ((100 - relVal) / 100 * circumference).toFixed(3) + 'px'; + rootStyle.transform = 'rotate(-90deg)'; + } else { + circleStyle.strokeDashoffset = (easeIn((100 - relVal) / 100) * circumference).toFixed(3) + 'px'; + rootStyle.transform = 'rotate(' + (easeOut(relVal / 70) * 270).toFixed(3) + 'deg)'; + } + } + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), className), + style: (0, _extends3.default)({ width: size, height: size }, rootStyle, style), + role: 'progressbar' + }, rootProps, other), + _react2.default.createElement( + 'svg', + { + className: (0, _classnames2.default)(classes.svg, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.svgIndeterminate, variant === 'indeterminate'), (0, _defineProperty3.default)(_classNames2, classes.svgStatic, variant === 'static'), _classNames2)), + viewBox: '0 0 ' + SIZE + ' ' + SIZE + }, + _react2.default.createElement('circle', { + className: (0, _classnames2.default)(classes.circle, (0, _defineProperty3.default)({}, classes.circleIndeterminate, variant === 'indeterminate')), + style: circleStyle, + cx: SIZE / 2, + cy: SIZE / 2, + r: SIZE / 2 - 5, + fill: 'none', + strokeWidth: thickness + }) + ) + ); +} + +CircularProgress.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['primary', 'secondary', 'inherit']), + /** + * The max value of progress in determinate variant. + */ + max: _propTypes2.default.number, + /** + * The min value of progress in determinate variant. + */ + min: _propTypes2.default.number, + /** + * The size of the circle. + */ + size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), + /** + * @ignore + */ + style: _propTypes2.default.object, + /** + * The thickness of the circle. + */ + thickness: _propTypes2.default.number, + /** + * The value of the progress indicator for the determinate and static variants. + * Value between 0 and 100. + */ + value: _propTypes2.default.number, + /** + * The variant of progress indicator. Use indeterminate + * when there is no progress value. + */ + variant: _propTypes2.default.oneOf(['determinate', 'indeterminate', 'static']) +} : {}; + +CircularProgress.defaultProps = { + color: 'primary', + max: 100, + min: 0, + size: 40, + thickness: 3.6, + value: 0, + variant: 'indeterminate' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCircularProgress', flip: false })(CircularProgress); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Progress/LinearProgress.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var TRANSITION_DURATION = 4; // 400ms + +var styles = exports.styles = function styles(theme) { + return { + root: { + position: 'relative', + overflow: 'hidden', + height: 5 + }, + primaryColor: { + backgroundColor: (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6) + }, + primaryColorBar: { + backgroundColor: theme.palette.primary.main + }, + primaryDashed: { + background: 'radial-gradient(' + (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6) + ' 0%, ' + (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6) + ' 16%, transparent 42%)', + backgroundSize: '10px 10px', + backgroundPosition: '0px -23px' + }, + secondaryColor: { + backgroundColor: (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.4) + }, + secondaryColorBar: { + backgroundColor: theme.palette.secondary.main + }, + secondaryDashed: { + background: 'radial-gradient(' + (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.4) + ' 0%, ' + (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.6) + ' 16%, transparent 42%)', + backgroundSize: '10px 10px', + backgroundPosition: '0px -23px' + }, + bar: { + width: '100%', + position: 'absolute', + left: 0, + bottom: 0, + top: 0, + transition: 'transform 0.2s linear', + transformOrigin: 'left' + }, + dashed: { + position: 'absolute', + marginTop: 0, + height: '100%', + width: '100%', + animation: 'buffer 3s infinite linear' + }, + bufferBar2: { + transition: 'transform .' + TRANSITION_DURATION + 's linear' + }, + rootBuffer: { + backgroundColor: 'transparent' + }, + rootQuery: { + transform: 'rotate(180deg)' + }, + indeterminateBar1: { + width: 'auto', + willChange: 'left, right', + animation: 'mui-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite' + }, + indeterminateBar2: { + width: 'auto', + willChange: 'left, right', + animation: 'mui-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite', + animationDelay: '1.15s' + }, + determinateBar1: { + willChange: 'transform', + transition: 'transform .' + TRANSITION_DURATION + 's linear' + }, + bufferBar1: { + zIndex: 1, + transition: 'transform .' + TRANSITION_DURATION + 's linear' + }, + // Legends: + // || represents the viewport + // - represents a light background + // x represents a dark background + '@keyframes mui-indeterminate1': { + // |-----|---x-||-----||-----| + '0%': { + left: '-35%', + right: '100%' + }, + // |-----|-----||-----||xxxx-| + '60%': { + left: '100%', + right: '-90%' + }, + '100%': { + left: '100%', + right: '-90%' + } + }, + '@keyframes mui-indeterminate2': { + // |xxxxx|xxxxx||-----||-----| + '0%': { + left: '-200%', + right: '100%' + }, + // |-----|-----||-----||-x----| + '60%': { + left: '107%', + right: '-8%' + }, + '100%': { + left: '107%', + right: '-8%' + } + }, + '@keyframes buffer': { + '0%': { + opacity: 1, + backgroundPosition: '0px -23px' + }, + '50%': { + opacity: 0, + backgroundPosition: '0px -23px' + }, + '100%': { + opacity: 1, + backgroundPosition: '-200px -23px' + } + } + }; +}; + +/** + * ## ARIA + * + * If the progress bar is describing the loading progress of a particular region of a page, + * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy` + * attribute to `true` on that region until it has finished loading. + */ +function LinearProgress(props) { + var _classNames, _classNames2, _classNames3, _classNames4; + + var classes = props.classes, + className = props.className, + color = props.color, + value = props.value, + valueBuffer = props.valueBuffer, + variant = props.variant, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color', 'value', 'valueBuffer', 'variant']); + + + var dashedClass = (0, _classnames2.default)(classes.dashed, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.primaryDashed, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.secondaryDashed, color === 'secondary'), _classNames)); + + var rootClassName = (0, _classnames2.default)(classes.root, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.primaryColor, color === 'primary'), (0, _defineProperty3.default)(_classNames2, classes.secondaryColor, color === 'secondary'), (0, _defineProperty3.default)(_classNames2, classes.rootBuffer, variant === 'buffer'), (0, _defineProperty3.default)(_classNames2, classes.rootQuery, variant === 'query'), _classNames2), className); + var primaryClassName = (0, _classnames2.default)(classes.bar, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.primaryColorBar, color === 'primary'), (0, _defineProperty3.default)(_classNames3, classes.secondaryColorBar, color === 'secondary'), (0, _defineProperty3.default)(_classNames3, classes.indeterminateBar1, variant === 'indeterminate' || variant === 'query'), (0, _defineProperty3.default)(_classNames3, classes.determinateBar1, variant === 'determinate'), (0, _defineProperty3.default)(_classNames3, classes.bufferBar1, variant === 'buffer'), _classNames3)); + var secondaryClassName = (0, _classnames2.default)(classes.bar, (_classNames4 = {}, (0, _defineProperty3.default)(_classNames4, classes.bufferBar2, variant === 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.primaryColorBar, color === 'primary' && variant !== 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.primaryColor, color === 'primary' && variant === 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.secondaryColorBar, color === 'secondary' && variant !== 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.secondaryColor, color === 'secondary' && variant === 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.indeterminateBar2, variant === 'indeterminate' || variant === 'query'), _classNames4)); + var inlineStyles = { primary: {}, secondary: {} }; + var rootProps = {}; + + if (variant === 'determinate' || variant === 'buffer') { + if (value !== undefined) { + inlineStyles.primary.transform = 'scaleX(' + value / 100 + ')'; + rootProps['aria-valuenow'] = Math.round(value); + } else { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, 'Material-UI: you need to provide a value property ' + 'when using the determinate or buffer variant of LinearProgress .') : void 0; + } + } + if (variant === 'buffer') { + if (valueBuffer !== undefined) { + inlineStyles.secondary.transform = 'scaleX(' + (valueBuffer || 0) / 100 + ')'; + } else { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, 'Material-UI: you need to provide a valueBuffer property ' + 'when using the buffer variant of LinearProgress.') : void 0; + } + } + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: rootClassName, role: 'progressbar' }, rootProps, other), + variant === 'buffer' ? _react2.default.createElement('div', { className: dashedClass }) : null, + _react2.default.createElement('div', { className: primaryClassName, style: inlineStyles.primary }), + variant === 'determinate' ? null : _react2.default.createElement('div', { className: secondaryClassName, style: inlineStyles.secondary }) + ); +} + +LinearProgress.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['primary', 'secondary']), + /** + * The value of the progress indicator for the determinate and buffer variants. + * Value between 0 and 100. + */ + value: _propTypes2.default.number, + /** + * The value for the buffer variant. + * Value between 0 and 100. + */ + valueBuffer: _propTypes2.default.number, + /** + * The variant of progress indicator. Use indeterminate or query + * when there is no progress value. + */ + variant: _propTypes2.default.oneOf(['determinate', 'indeterminate', 'buffer', 'query']) +} : {}; + +LinearProgress.defaultProps = { + color: 'primary', + variant: 'indeterminate' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiLinearProgress' })(LinearProgress); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Progress/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _CircularProgress = __webpack_require__("./node_modules/material-ui/Progress/CircularProgress.js"); + +Object.defineProperty(exports, 'CircularProgress', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_CircularProgress).default; + } +}); + +var _LinearProgress = __webpack_require__("./node_modules/material-ui/Progress/LinearProgress.js"); + +Object.defineProperty(exports, 'LinearProgress', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_LinearProgress).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Radio/Radio.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _SwitchBase = __webpack_require__("./node_modules/material-ui/internal/SwitchBase.js"); + +var _SwitchBase2 = _interopRequireDefault(_SwitchBase); + +var _RadioButtonChecked = __webpack_require__("./node_modules/material-ui/internal/svg-icons/RadioButtonChecked.js"); + +var _RadioButtonChecked2 = _interopRequireDefault(_RadioButtonChecked); + +var _RadioButtonUnchecked = __webpack_require__("./node_modules/material-ui/internal/svg-icons/RadioButtonUnchecked.js"); + +var _RadioButtonUnchecked2 = _interopRequireDefault(_RadioButtonUnchecked); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + default: { + color: theme.palette.text.secondary + }, + checked: {}, + checkedPrimary: { + color: theme.palette.primary.main + }, + checkedSecondary: { + color: theme.palette.secondary.main + }, + disabled: { + color: theme.palette.action.disabled + } + }; +}; + +var _ref = _react2.default.createElement(_RadioButtonUnchecked2.default, null); + +var _ref2 = _react2.default.createElement(_RadioButtonChecked2.default, null); + +function Radio(props) { + var _classNames; + + var classes = props.classes, + color = props.color, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'color']); + + var checkedClass = (0, _classnames2.default)(classes.checked, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checkedPrimary, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.checkedSecondary, color === 'secondary'), _classNames)); + + return _react2.default.createElement(_SwitchBase2.default, (0, _extends3.default)({ + type: 'radio', + icon: _ref, + checkedIcon: _ref2, + classes: { + default: classes.default, + checked: checkedClass, + disabled: classes.disabled + } + }, other)); +} + +Radio.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the component is checked. + */ + checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), + /** + * The icon to display when the component is checked. + */ + checkedIcon: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['primary', 'secondary']), + /** + * @ignore + */ + defaultChecked: _propTypes2.default.bool, + /** + * If `true`, the switch will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: _propTypes2.default.bool, + /** + * The icon to display when the component is unchecked. + */ + icon: _propTypes2.default.node, + /** + * The id of the `input` element. + */ + id: _propTypes2.default.string, + /** + * Properties applied to the `input` element. + */ + inputProps: _propTypes2.default.object, + /** + * Use that property to pass a ref callback to the native input component. + */ + inputRef: _propTypes2.default.func, + /* + * @ignore + */ + name: _propTypes2.default.string, + /** + * Callback fired when the state is changed. + * + * @param {object} event The event source of the callback + * @param {boolean} checked The `checked` value of the switch + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), + /** + * The input component property `type`. + */ + type: _propTypes2.default.string, + /** + * The value of the component. + */ + value: _propTypes2.default.string +} : {}; + +Radio.defaultProps = { + color: 'secondary' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiRadio' })(Radio); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Radio/RadioGroup.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _FormGroup = __webpack_require__("./node_modules/material-ui/Form/FormGroup.js"); + +var _FormGroup2 = _interopRequireDefault(_FormGroup); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent FormGroup + +var RadioGroup = function (_React$Component) { + (0, _inherits3.default)(RadioGroup, _React$Component); + + function RadioGroup() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, RadioGroup); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = RadioGroup.__proto__ || (0, _getPrototypeOf2.default)(RadioGroup)).call.apply(_ref, [this].concat(args))), _this), _this.radios = [], _this.focus = function () { + if (!_this.radios || !_this.radios.length) { + return; + } + + var focusRadios = _this.radios.filter(function (n) { + return !n.disabled; + }); + + if (!focusRadios.length) { + return; + } + + var selectedRadio = (0, _helpers.find)(focusRadios, function (n) { + return n.checked; + }); + + if (selectedRadio) { + selectedRadio.focus(); + return; + } + + focusRadios[0].focus(); + }, _this.handleRadioChange = function (event, checked) { + if (checked && _this.props.onChange) { + _this.props.onChange(event, event.target.value); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(RadioGroup, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + children = _props.children, + name = _props.name, + value = _props.value, + onChange = _props.onChange, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'name', 'value', 'onChange']); + + + this.radios = []; + + return _react2.default.createElement( + _FormGroup2.default, + (0, _extends3.default)({ role: 'radiogroup' }, other), + _react2.default.Children.map(children, function (child, index) { + if (!_react2.default.isValidElement(child)) { + return null; + } + + return _react2.default.cloneElement(child, { + key: index, + name: name, + inputRef: function inputRef(node) { + if (node) { + _this2.radios.push(node); + } + }, + checked: value === child.props.value, + onChange: _this2.handleRadioChange + }); + }) + ); + } + }]); + return RadioGroup; +}(_react2.default.Component); + +RadioGroup.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * The name used to reference the value of the control. + */ + name: _propTypes2.default.string, + /** + * @ignore + */ + onBlur: _propTypes2.default.func, + /** + * Callback fired when a radio button is selected. + * + * @param {object} event The event source of the callback + * @param {string} value The `value` of the selected radio button + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + onKeyDown: _propTypes2.default.func, + /** + * Value of the selected radio button. + */ + value: _propTypes2.default.string +} : {}; + +exports.default = RadioGroup; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Radio/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Radio = __webpack_require__("./node_modules/material-ui/Radio/Radio.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Radio).default; + } +}); + +var _RadioGroup = __webpack_require__("./node_modules/material-ui/Radio/RadioGroup.js"); + +Object.defineProperty(exports, 'RadioGroup', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_RadioGroup).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Reboot/Reboot.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _styles = __webpack_require__("./node_modules/material-ui/styles/index.js"); + +var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); + +var _exactProp2 = _interopRequireDefault(_exactProp); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = function styles(theme) { + return { + '@global': { + html: { + WebkitFontSmoothing: 'antialiased', // Antialiasing. + MozOsxFontSmoothing: 'grayscale', // Antialiasing. + // Change from `box-sizing: content-box` so that `width` + // is not affected by `padding` or `border`. + boxSizing: 'border-box' + }, + '*, *::before, *::after': { + boxSizing: 'inherit' + }, + body: { + margin: 0, // Remove the margin in all browsers. + backgroundColor: theme.palette.background.default, + '@media print': { + // Save printer ink. + backgroundColor: theme.palette.common.white + } + } + } + }; +}; + +/** + * Kickstart an elegant, consistent, and simple baseline to build upon. + */ + +var Reboot = function (_React$Component) { + (0, _inherits3.default)(Reboot, _React$Component); + + function Reboot() { + (0, _classCallCheck3.default)(this, Reboot); + return (0, _possibleConstructorReturn3.default)(this, (Reboot.__proto__ || (0, _getPrototypeOf2.default)(Reboot)).apply(this, arguments)); + } + + (0, _createClass3.default)(Reboot, [{ + key: 'render', + value: function render() { + return this.props.children; + } + }]); + return Reboot; +}(_react2.default.Component); + +Reboot.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * You can only provide a single element with react@15, a node with react@16. + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + classes: _propTypes2.default.object.isRequired +} : {}; + +Reboot.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(Reboot.propTypes, 'Reboot') : {}; + +Reboot.defaultProps = { + children: null +}; + +exports.default = (0, _styles.withStyles)(styles, { name: 'MuiReboot' })(Reboot); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Reboot/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Reboot = __webpack_require__("./node_modules/material-ui/Reboot/Reboot.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Reboot).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Select/Select.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _SelectInput = __webpack_require__("./node_modules/material-ui/Select/SelectInput.js"); + +var _SelectInput2 = _interopRequireDefault(_SelectInput); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Input = __webpack_require__("./node_modules/material-ui/Input/index.js"); + +var _Input2 = _interopRequireDefault(_Input); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Import to enforce the CSS injection order + +var styles = exports.styles = function styles(theme) { + return { + root: { + position: 'relative', + width: '100%' + }, + select: { + '-moz-appearance': 'none', // Reset + '-webkit-appearance': 'none', // Reset + // When interacting quickly, the text can end up selected. + // Native select can't be selected either. + userSelect: 'none', + paddingRight: theme.spacing.unit * 4, + width: 'calc(100% - ' + theme.spacing.unit * 4 + 'px)', + minWidth: theme.spacing.unit * 2, // So it doesn't collapse. + cursor: 'pointer', + '&:focus': { + // Show that it's not an text input + background: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)', + borderRadius: 0 // Reset Chrome style + }, + // Remove Firefox focus border + '&:-moz-focusring': { + color: 'transparent', + textShadow: '0 0 0 #000' + }, + // Remove IE11 arrow + '&::-ms-expand': { + display: 'none' + } + }, + selectMenu: { + width: 'auto', // Fix Safari textOverflow + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + overflow: 'hidden', + minHeight: '1.1875em', // Reset (19px), match the native input line-height + lineHeight: '1.1875em' // Reset (19px), match the native input line-height + }, + disabled: { + cursor: 'default' + }, + icon: { + // We use a position absolute over a flexbox in order to forward the pointer events + // to the input. + position: 'absolute', + right: 0, + top: 'calc(50% - 12px)', // Center vertically + color: theme.palette.action.active, + 'pointer-events': 'none' // Don't block pointer events on the select under the icon. + } + }; +}; // @inheritedComponent Input + +function Select(props) { + var autoWidth = props.autoWidth, + children = props.children, + classes = props.classes, + displayEmpty = props.displayEmpty, + input = props.input, + inputProps = props.inputProps, + MenuProps = props.MenuProps, + multiple = props.multiple, + native = props.native, + onClose = props.onClose, + onOpen = props.onOpen, + open = props.open, + renderValue = props.renderValue, + other = (0, _objectWithoutProperties3.default)(props, ['autoWidth', 'children', 'classes', 'displayEmpty', 'input', 'inputProps', 'MenuProps', 'multiple', 'native', 'onClose', 'onOpen', 'open', 'renderValue']); + + + return _react2.default.cloneElement(input, (0, _extends3.default)({ + // Most of the logic is implemented in `SelectInput`. + // The `Select` component is a simple API wrapper to expose something better to play with. + inputComponent: _SelectInput2.default + }, other, { + inputProps: (0, _extends3.default)({}, inputProps, input ? input.props.inputProps : {}, { + autoWidth: autoWidth, + children: children, + classes: classes, + displayEmpty: displayEmpty, + MenuProps: MenuProps, + multiple: multiple, + native: native, + onClose: onClose, + onOpen: onOpen, + open: open, + renderValue: renderValue + }) + })); +} + +Select.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If true, the width of the popover will automatically be set according to the items inside the + * menu, otherwise it will be at least the width of the select input. + */ + autoWidth: _propTypes2.default.bool, + /** + * The option elements to populate the select with. + * Can be some `MenuItem` when `native` is false and `option` when `native` is true. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * If `true`, the selected item is displayed even if its value is empty. + * You can only use it when the `native` property is `false` (default). + */ + displayEmpty: _propTypes2.default.bool, + /** + * An `Input` element; does not have to be a material-ui specific `Input`. + */ + input: _propTypes2.default.element, + /** + * Properties applied to the `input` element. + * When `native` is `true`, the properties are applied on the `select` element. + */ + inputProps: _propTypes2.default.object, + /** + * Properties applied to the `Menu` element. + */ + MenuProps: _propTypes2.default.object, + /** + * If true, `value` must be an array and the menu will support multiple selections. + * You can only use it when the `native` property is `false` (default). + */ + multiple: _propTypes2.default.bool, + /** + * If `true`, the component will be using a native `select` element. + */ + native: _propTypes2.default.bool, + /** + * Callback function fired when a menu item is selected. + * + * @param {object} event The event source of the callback + * @param {object} child The react element that was selected + */ + onChange: _propTypes2.default.func, + /** + * Callback fired when the component requests to be closed. + * Useful in controlled mode (see open). + * + * @param {object} event The event source of the callback + */ + onClose: _propTypes2.default.func, + /** + * Callback fired when the component requests to be opened. + * Useful in controlled mode (see open). + * + * @param {object} event The event source of the callback + */ + onOpen: _propTypes2.default.func, + /** + * Control `select` open state. + * You can only use it when the `native` property is `false` (default). + */ + open: _propTypes2.default.bool, + /** + * Render the selected value. + * You can only use it when the `native` property is `false` (default). + */ + renderValue: _propTypes2.default.func, + /** + * The input value, required for a controlled component. + */ + value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) +} : {}; + +Select.defaultProps = { + autoWidth: false, + displayEmpty: false, + input: _react2.default.createElement(_Input2.default, null), + multiple: false, + native: false +}; + +Select.muiName = 'Select'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSelect' })(Select); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Select/SelectInput.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); + +var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _keycode = __webpack_require__("./node_modules/keycode/index.js"); + +var _keycode2 = _interopRequireDefault(_keycode); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _ArrowDropDown = __webpack_require__("./node_modules/material-ui/internal/svg-icons/ArrowDropDown.js"); + +var _ArrowDropDown2 = _interopRequireDefault(_ArrowDropDown); + +var _Menu = __webpack_require__("./node_modules/material-ui/Menu/Menu.js"); + +var _Menu2 = _interopRequireDefault(_Menu); + +var _Input = __webpack_require__("./node_modules/material-ui/Input/Input.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var SelectInput = function (_React$Component) { + (0, _inherits3.default)(SelectInput, _React$Component); + + function SelectInput() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, SelectInput); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = SelectInput.__proto__ || (0, _getPrototypeOf2.default)(SelectInput)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + open: false + }, _this.ignoreNextBlur = false, _this.displayNode = null, _this.isControlled = _this.props.open !== undefined, _this.update = _this.isControlled ? function (_ref2) { + var event = _ref2.event, + open = _ref2.open; + + if (open) { + _this.props.onOpen(event); + } else { + _this.props.onClose(event); + } + } : function (_ref3) { + var open = _ref3.open; + return _this.setState({ open: open }); + }, _this.handleClick = function (event) { + // Opening the menu is going to blur the. It will be focused back when closed. + _this.ignoreNextBlur = true; + _this.update({ + open: true, + event: event + }); + }, _this.handleClose = function (event) { + _this.update({ + open: false, + event: event + }); + }, _this.handleItemClick = function (child) { + return function (event) { + if (!_this.props.multiple) { + _this.update({ + open: false, + event: event + }); + } + + var _this$props = _this.props, + onChange = _this$props.onChange, + name = _this$props.name; + + + if (onChange) { + var value = void 0; + var target = void 0; + + if (event.target) { + target = event.target; + } + + if (_this.props.multiple) { + value = Array.isArray(_this.props.value) ? [].concat((0, _toConsumableArray3.default)(_this.props.value)) : []; + var itemIndex = value.indexOf(child.props.value); + if (itemIndex === -1) { + value.push(child.props.value); + } else { + value.splice(itemIndex, 1); + } + } else { + value = child.props.value; + } + + event.persist(); + event.target = (0, _extends3.default)({}, target, { value: value, name: name }); + + onChange(event, child); + } + }; + }, _this.handleBlur = function (event) { + if (_this.ignoreNextBlur === true) { + // The parent components are relying on the bubbling of the event. + event.stopPropagation(); + _this.ignoreNextBlur = false; + return; + } + + if (_this.props.onBlur) { + _this.props.onBlur(event); + } + }, _this.handleKeyDown = function (event) { + if (_this.props.readOnly) { + return; + } + + if (['space', 'up', 'down'].includes((0, _keycode2.default)(event))) { + event.preventDefault(); + // Opening the menu is going to blur the. It will be focused back when closed. + _this.ignoreNextBlur = true; + _this.update({ + open: true, + event: event + }); + } + }, _this.handleSelectRef = function (node) { + if (!_this.props.inputRef) { + return; + } + + _this.props.inputRef({ + node: node, + // By pass the native input as we expose a rich object (array). + value: _this.props.value + }); + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(SelectInput, [{ + key: 'componentDidMount', + value: function componentDidMount() { + if (this.isControlled && this.props.open) { + // Focus the display node so the focus is restored on this element once + // the menu is closed. + this.displayNode.focus(); + // Rerender with the resolve `displayNode` reference. + this.forceUpdate(); + } + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + autoWidth = _props.autoWidth, + children = _props.children, + classes = _props.classes, + classNameProp = _props.className, + disabled = _props.disabled, + displayEmpty = _props.displayEmpty, + inputRef = _props.inputRef, + _props$MenuProps = _props.MenuProps, + MenuProps = _props$MenuProps === undefined ? {} : _props$MenuProps, + multiple = _props.multiple, + name = _props.name, + native = _props.native, + onBlur = _props.onBlur, + onChange = _props.onChange, + onClose = _props.onClose, + onFocus = _props.onFocus, + onOpen = _props.onOpen, + openProp = _props.open, + readOnly = _props.readOnly, + renderValue = _props.renderValue, + value = _props.value, + other = (0, _objectWithoutProperties3.default)(_props, ['autoWidth', 'children', 'classes', 'className', 'disabled', 'displayEmpty', 'inputRef', 'MenuProps', 'multiple', 'name', 'native', 'onBlur', 'onChange', 'onClose', 'onFocus', 'onOpen', 'open', 'readOnly', 'renderValue', 'value']); + + var open = this.isControlled && this.displayNode ? openProp : this.state.open; + + if (native) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(multiple === false, 'Material-UI: you can not use the `native` and `multiple` properties ' + 'at the same time on a `Select` component.') : void 0; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!renderValue, 'Material-UI: the `renderValue` property is not used by the native implementation.') : void 0; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!displayEmpty, 'Material-UI: the `displayEmpty` property is not used by the native implementation.') : void 0; + + return _react2.default.createElement( + 'div', + { className: classes.root }, + _react2.default.createElement( + 'select', + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.select, (0, _defineProperty3.default)({}, classes.disabled, disabled), classNameProp), + name: name, + disabled: disabled, + onBlur: onBlur, + onChange: onChange, + onFocus: onFocus, + value: value, + readOnly: readOnly, + ref: inputRef + }, other), + children + ), + _react2.default.createElement(_ArrowDropDown2.default, { className: classes.icon }) + ); + } + + if (value === undefined) { + throw new Error('Material-UI: the `value` property is required ' + 'when using the `Select` component with `native=false`.'); + } + + var display = void 0; + var displaySingle = ''; + var displayMultiple = []; + var computeDisplay = false; + + // No need to display any value if the field is empty. + if ((0, _Input.isDirty)(this.props) || displayEmpty) { + if (renderValue) { + display = renderValue(value); + } else { + computeDisplay = true; + } + } + + var items = _react2.default.Children.map(children, function (child) { + if (!_react2.default.isValidElement(child)) { + return null; + } + var selected = void 0; + + if (multiple) { + if (!Array.isArray(value)) { + throw new Error('Material-UI: the `value` property must be an array ' + 'when using the `Select` component with `multiple`.'); + } + + selected = value.indexOf(child.props.value) !== -1; + if (selected && computeDisplay) { + displayMultiple.push(child.props.children); + } + } else { + selected = value === child.props.value; + if (selected && computeDisplay) { + displaySingle = child.props.children; + } + } + + return _react2.default.cloneElement(child, { + role: 'option', + selected: selected, + onClick: _this2.handleItemClick(child) + }); + }); + + if (computeDisplay) { + display = multiple ? displayMultiple.join(', ') : displaySingle; + } + + var MenuMinWidth = this.displayNode && !autoWidth ? this.displayNode.clientWidth : undefined; + + return _react2.default.createElement( + 'div', + { className: classes.root }, + _react2.default.createElement( + 'div', + { + className: (0, _classnames2.default)(classes.select, classes.selectMenu, (0, _defineProperty3.default)({}, classes.disabled, disabled), classNameProp), + ref: function ref(node) { + _this2.displayNode = node; + }, + + 'aria-pressed': open ? 'true' : 'false', + tabIndex: disabled ? null : 0, + role: 'button', + 'aria-owns': open ? 'menu-' + (name || '') : null, + 'aria-haspopup': 'true', + onKeyDown: this.handleKeyDown, + onBlur: this.handleBlur, + onClick: disabled || readOnly ? null : this.handleClick, + onFocus: onFocus + }, + display + ), + _react2.default.createElement('input', (0, _extends3.default)({ + value: Array.isArray(value) ? value.join(',') : value, + name: name, + readOnly: readOnly, + ref: this.handleSelectRef + }, other, { + type: 'hidden' + })), + _react2.default.createElement(_ArrowDropDown2.default, { className: classes.icon }), + _react2.default.createElement( + _Menu2.default, + (0, _extends3.default)({ + id: 'menu-' + (name || ''), + anchorEl: this.displayNode, + open: open, + onClose: this.handleClose + }, MenuProps, { + MenuListProps: (0, _extends3.default)({ + role: 'listbox' + }, MenuProps.MenuListProps), + PaperProps: (0, _extends3.default)({}, MenuProps.PaperProps, { + style: (0, _extends3.default)({ + minWidth: MenuMinWidth + }, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null) + }) + }), + items + ) + ); + } + }]); + return SelectInput; +}(_react2.default.Component); + +SelectInput.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If true, the width of the popover will automatically be set according to the items inside the + * menu, otherwise it will be at least the width of the select input. + */ + autoWidth: _propTypes2.default.bool, + /** + * The option elements to populate the select with. + * Can be some `MenuItem` when `native` is false and `option` when `native` is true. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * The CSS class name of the select element. + */ + className: _propTypes2.default.string, + /** + * If `true`, the select will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the selected item is displayed even if its value is empty. + * You can only use it when the `native` property is `false` (default). + */ + displayEmpty: _propTypes2.default.bool, + /** + * Use that property to pass a ref callback to the native select element. + */ + inputRef: _propTypes2.default.func, + /** + * Properties applied to the `Menu` element. + */ + MenuProps: _propTypes2.default.object, + /** + * If true, `value` must be an array and the menu will support multiple selections. + * You can only use it when the `native` property is `false` (default). + */ + multiple: _propTypes2.default.bool, + /** + * Name attribute of the `select` or hidden `input` element. + */ + name: _propTypes2.default.string, + /** + * If `true`, the component will be using a native `select` element. + */ + native: _propTypes2.default.bool, + /** + * @ignore + */ + onBlur: _propTypes2.default.func, + /** + * Callback function fired when a menu item is selected. + * + * @param {object} event The event source of the callback + * @param {object} child The react element that was selected + */ + onChange: _propTypes2.default.func, + /** + * Callback fired when the component requests to be closed. + * Useful in controlled mode (see open). + * + * @param {object} event The event source of the callback + */ + onClose: _propTypes2.default.func, + /** + * @ignore + */ + onFocus: _propTypes2.default.func, + /** + * Callback fired when the component requests to be opened. + * Useful in controlled mode (see open). + * + * @param {object} event The event source of the callback + */ + onOpen: _propTypes2.default.func, + /** + * Control `select` open state. + * You can only use it when the `native` property is `false` (default). + */ + open: _propTypes2.default.bool, + /** + * @ignore + */ + readOnly: _propTypes2.default.bool, + /** + * Render the selected value. + * You can only use it when the `native` property is `false` (default). + */ + renderValue: _propTypes2.default.func, + /** + * The value of the component, required for a controlled component. + */ + value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) +} : {}; + +exports.default = SelectInput; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Select/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Select = __webpack_require__("./node_modules/material-ui/Select/Select.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Select).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Snackbar/Snackbar.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _extends8 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends9 = _interopRequireDefault(_extends8); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +var _ClickAwayListener = __webpack_require__("./node_modules/material-ui/utils/ClickAwayListener.js"); + +var _ClickAwayListener2 = _interopRequireDefault(_ClickAwayListener); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _Slide = __webpack_require__("./node_modules/material-ui/transitions/Slide.js"); + +var _Slide2 = _interopRequireDefault(_Slide); + +var _SnackbarContent = __webpack_require__("./node_modules/material-ui/Snackbar/SnackbarContent.js"); + +var _SnackbarContent2 = _interopRequireDefault(_SnackbarContent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + var gutter = theme.spacing.unit * 3; + var top = { top: 0 }; + var bottom = { bottom: 0 }; + var right = { justifyContent: 'flex-end' }; + var left = { justifyContent: 'flex-start' }; + var topSpace = { top: gutter }; + var bottomSpace = { bottom: gutter }; + var rightSpace = { right: gutter }; + var leftSpace = { left: gutter }; + var center = { + left: '50%', + right: 'auto', + transform: 'translateX(-50%)' + }; + + return { + root: { + zIndex: theme.zIndex.snackbar, + position: 'fixed', + display: 'flex', + left: 0, + right: 0, + justifyContent: 'center', + alignItems: 'center' + }, + anchorTopCenter: (0, _extends9.default)({}, top, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({}, center))), + anchorBottomCenter: (0, _extends9.default)({}, bottom, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({}, center))), + anchorTopRight: (0, _extends9.default)({}, top, right, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ + left: 'auto' + }, topSpace, rightSpace))), + anchorBottomRight: (0, _extends9.default)({}, bottom, right, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ + left: 'auto' + }, bottomSpace, rightSpace))), + anchorTopLeft: (0, _extends9.default)({}, top, left, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ + right: 'auto' + }, topSpace, leftSpace))), + anchorBottomLeft: (0, _extends9.default)({}, bottom, left, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ + right: 'auto' + }, bottomSpace, leftSpace))) + }; +}; + +var Snackbar = function (_React$Component) { + (0, _inherits3.default)(Snackbar, _React$Component); + + function Snackbar() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Snackbar); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Snackbar.__proto__ || (0, _getPrototypeOf2.default)(Snackbar)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + // Used to only render active snackbars. + exited: false + }, _this.timerAutoHide = null, _this.handleMouseEnter = function (event) { + if (_this.props.onMouseEnter) { + _this.props.onMouseEnter(event); + } + _this.handlePause(); + }, _this.handleMouseLeave = function (event) { + if (_this.props.onMouseLeave) { + _this.props.onMouseLeave(event); + } + _this.handleResume(); + }, _this.handleClickAway = function (event) { + if (_this.props.onClose) { + _this.props.onClose(event, 'clickaway'); + } + }, _this.handlePause = function () { + clearTimeout(_this.timerAutoHide); + }, _this.handleResume = function () { + if (_this.props.autoHideDuration != null) { + if (_this.props.resumeHideDuration !== undefined) { + _this.setAutoHideTimer(_this.props.resumeHideDuration); + return; + } + _this.setAutoHideTimer((_this.props.autoHideDuration || 0) * 0.5); + } + }, _this.handleExited = function () { + _this.setState({ exited: true }); + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Snackbar, [{ + key: 'componentWillMount', + value: function componentWillMount() { + if (!this.props.open) { + this.setState({ exited: true }); + } + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + if (this.props.open) { + this.setAutoHideTimer(); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + if (nextProps.open) { + this.setState({ exited: false }); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps) { + if (prevProps.open !== this.props.open) { + if (this.props.open) { + this.setAutoHideTimer(); + } else { + clearTimeout(this.timerAutoHide); + } + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearTimeout(this.timerAutoHide); + } + + // Timer that controls delay before snackbar auto hides + + }, { + key: 'setAutoHideTimer', + value: function setAutoHideTimer() { + var _this2 = this; + + var autoHideDuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (!this.props.onClose || this.props.autoHideDuration == null) { + return; + } + + clearTimeout(this.timerAutoHide); + this.timerAutoHide = setTimeout(function () { + if (!_this2.props.onClose || _this2.props.autoHideDuration == null) { + return; + } + + _this2.props.onClose(null, 'timeout'); + }, autoHideDuration || this.props.autoHideDuration || 0); + } + + // Pause the timer when the user is interacting with the Snackbar + // or when the user hide the window. + + + // Restart the timer when the user is no longer interacting with the Snackbar + // or when the window is shown back. + + }, { + key: 'render', + value: function render() { + var _props = this.props, + action = _props.action, + _props$anchorOrigin = _props.anchorOrigin, + vertical = _props$anchorOrigin.vertical, + horizontal = _props$anchorOrigin.horizontal, + autoHideDuration = _props.autoHideDuration, + children = _props.children, + classes = _props.classes, + className = _props.className, + message = _props.message, + onClose = _props.onClose, + onEnter = _props.onEnter, + onEntered = _props.onEntered, + onEntering = _props.onEntering, + onExit = _props.onExit, + onExited = _props.onExited, + onExiting = _props.onExiting, + onMouseEnter = _props.onMouseEnter, + onMouseLeave = _props.onMouseLeave, + open = _props.open, + resumeHideDuration = _props.resumeHideDuration, + SnackbarContentProps = _props.SnackbarContentProps, + TransitionProp = _props.transition, + transitionDuration = _props.transitionDuration, + other = (0, _objectWithoutProperties3.default)(_props, ['action', 'anchorOrigin', 'autoHideDuration', 'children', 'classes', 'className', 'message', 'onClose', 'onEnter', 'onEntered', 'onEntering', 'onExit', 'onExited', 'onExiting', 'onMouseEnter', 'onMouseLeave', 'open', 'resumeHideDuration', 'SnackbarContentProps', 'transition', 'transitionDuration']); + + + if (!open && this.state.exited) { + return null; + } + + var transitionProps = {}; + + // The provided transition might not support the direction property. + if (TransitionProp === _Slide2.default) { + transitionProps.direction = vertical === 'top' ? 'down' : 'up'; + } + + return _react2.default.createElement( + _reactEventListener2.default, + { target: 'window', onFocus: this.handleResume, onBlur: this.handlePause }, + _react2.default.createElement( + _ClickAwayListener2.default, + { onClickAway: this.handleClickAway }, + _react2.default.createElement( + 'div', + (0, _extends9.default)({ + className: (0, _classnames2.default)(classes.root, classes['anchor' + (0, _helpers.capitalize)(vertical) + (0, _helpers.capitalize)(horizontal)], className), + onMouseEnter: this.handleMouseEnter, + onMouseLeave: this.handleMouseLeave + }, other), + _react2.default.createElement( + TransitionProp, + (0, _extends9.default)({ + appear: true, + 'in': open, + onEnter: onEnter, + onEntered: onEntered, + onEntering: onEntering, + onExit: onExit, + onExited: (0, _helpers.createChainedFunction)(this.handleExited, onExited), + onExiting: onExiting, + timeout: transitionDuration + }, transitionProps), + children || _react2.default.createElement(_SnackbarContent2.default, (0, _extends9.default)({ message: message, action: action }, SnackbarContentProps)) + ) + ) + ) + ); + } + }]); + return Snackbar; +}(_react2.default.Component); + +Snackbar.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The action to display. + */ + action: _propTypes2.default.node, + /** + * The anchor of the `Snackbar`. + */ + anchorOrigin: _propTypes2.default.shape({ + horizontal: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['left', 'center', 'right'])]), + vertical: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['top', 'center', 'bottom'])]) + }), + /** + * The number of milliseconds to wait before automatically calling the + * `onClose` function. `onClose` should then set the state of the `open` + * prop to hide the Snackbar. This behavior is disabled by default with + * the `null` value. + */ + autoHideDuration: _propTypes2.default.number, + /** + * If you wish the take control over the children of the component you can use this property. + * When used, you replace the `SnackbarContent` component with the children. + */ + children: _propTypes2.default.element, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * When displaying multiple consecutive Snackbars from a parent rendering a single + * , add the key property to ensure independent treatment of each message. + * e.g. , otherwise, the message may update-in-place and + * features such as autoHideDuration may be canceled. + */ + key: _propTypes2.default.any, + /** + * The message to display. + */ + message: _propTypes2.default.node, + /** + * Callback fired when the component requests to be closed. + * Typically `onClose` is used to set state in the parent component, + * which is used to control the `Snackbar` `open` prop. + * The `reason` parameter can optionally be used to control the response to `onClose`, + * for example ignoring `clickaway`. + * + * @param {object} event The event source of the callback + * @param {string} reason Can be:`"timeout"` (`autoHideDuration` expired) or: `"clickaway"` + */ + onClose: _propTypes2.default.func, + /** + * Callback fired before the transition is entering. + */ + onEnter: _propTypes2.default.func, + /** + * Callback fired when the transition has entered. + */ + onEntered: _propTypes2.default.func, + /** + * Callback fired when the transition is entering. + */ + onEntering: _propTypes2.default.func, + /** + * Callback fired before the transition is exiting. + */ + onExit: _propTypes2.default.func, + /** + * Callback fired when the transition has exited. + */ + onExited: _propTypes2.default.func, + /** + * Callback fired when the transition is exiting. + */ + onExiting: _propTypes2.default.func, + /** + * @ignore + */ + onMouseEnter: _propTypes2.default.func, + /** + * @ignore + */ + onMouseLeave: _propTypes2.default.func, + /** + * If true, `Snackbar` is open. + */ + open: _propTypes2.default.bool, + /** + * The number of milliseconds to wait before dismissing after user interaction. + * If `autoHideDuration` property isn't specified, it does nothing. + * If `autoHideDuration` property is specified but `resumeHideDuration` isn't, + * we default to `autoHideDuration / 2` ms. + */ + resumeHideDuration: _propTypes2.default.number, + /** + * Properties applied to the `SnackbarContent` element. + */ + SnackbarContentProps: _propTypes2.default.object, + /** + * Transition component. + */ + transition: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + */ + transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) +} : {}; + +Snackbar.defaultProps = { + anchorOrigin: { + vertical: 'bottom', + horizontal: 'center' + }, + transition: _Slide2.default, + transitionDuration: { + enter: _transitions.duration.enteringScreen, + exit: _transitions.duration.leavingScreen + } +}; + +exports.default = (0, _withStyles2.default)(styles, { flip: false, name: 'MuiSnackbar' })(Snackbar); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Snackbar/SnackbarContent.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + var _root; + + var emphasis = theme.palette.type === 'light' ? 0.8 : 0.98; + var backgroundColor = (0, _colorManipulator.emphasize)(theme.palette.background.default, emphasis); + + return { + root: (_root = { + pointerEvents: 'initial', + color: theme.palette.getContrastText(backgroundColor), + backgroundColor: backgroundColor, + display: 'flex', + alignItems: 'center', + flexWrap: 'wrap', + padding: '6px ' + theme.spacing.unit * 3 + 'px' + }, (0, _defineProperty3.default)(_root, theme.breakpoints.up('md'), { + minWidth: 288, + maxWidth: 568, + borderRadius: 2 + }), (0, _defineProperty3.default)(_root, theme.breakpoints.down('sm'), { + flexGrow: 1 + }), _root), + message: { + padding: theme.spacing.unit + 'px 0' + }, + action: { + display: 'flex', + alignItems: 'center', + marginLeft: 'auto', + paddingLeft: theme.spacing.unit * 3, + marginRight: -theme.spacing.unit + } + }; +}; // @inheritedComponent Paper + +function SnackbarContent(props) { + var action = props.action, + classes = props.classes, + className = props.className, + message = props.message, + other = (0, _objectWithoutProperties3.default)(props, ['action', 'classes', 'className', 'message']); + + + return _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ + component: _Typography2.default, + headlineMapping: { + body1: 'div' + }, + role: 'alertdialog', + square: true, + elevation: 6, + className: (0, _classnames2.default)(classes.root, className) + }, other), + _react2.default.createElement( + 'div', + { className: classes.message }, + message + ), + action ? _react2.default.createElement( + 'div', + { className: classes.action }, + action + ) : null + ); +} + +SnackbarContent.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The action to display. + */ + action: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The message to display. + */ + message: _propTypes2.default.node +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSnackbarContent' })(SnackbarContent); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Snackbar/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Snackbar = __webpack_require__("./node_modules/material-ui/Snackbar/Snackbar.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Snackbar).default; + } +}); + +var _SnackbarContent = __webpack_require__("./node_modules/material-ui/Snackbar/SnackbarContent.js"); + +Object.defineProperty(exports, 'SnackbarContent', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_SnackbarContent).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/Step.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: {}, + horizontal: { + paddingLeft: theme.spacing.unit, + paddingRight: theme.spacing.unit, + '&:first-child': { + paddingLeft: 0 + }, + '&:last-child': { + paddingRight: 0 + } + }, + vertical: {}, + alternativeLabel: { + flex: 1, + position: 'relative' + } + }; +}; + +function Step(props) { + var active = props.active, + alternativeLabel = props.alternativeLabel, + children = props.children, + classes = props.classes, + classNameProp = props.className, + completed = props.completed, + connector = props.connector, + disabled = props.disabled, + index = props.index, + last = props.last, + orientation = props.orientation, + other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'connector', 'disabled', 'index', 'last', 'orientation']); + + + var className = (0, _classnames2.default)(classes.root, classes[orientation], (0, _defineProperty3.default)({}, classes.alternativeLabel, alternativeLabel), classNameProp); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + _react2.default.Children.map(children, function (child) { + return _react2.default.cloneElement(child, (0, _extends3.default)({ + active: active, + alternativeLabel: alternativeLabel, + completed: completed, + disabled: disabled, + icon: index + 1, + last: last, + orientation: orientation + }, child.props)); + }), + connector && alternativeLabel && !last && _react2.default.cloneElement(connector, { orientation: orientation, alternativeLabel: alternativeLabel }) + ); +} + +Step.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Sets the step as active. Is passed to child components. + */ + active: _propTypes2.default.bool, + /** + * @ignore + * Set internally by Stepper when it's supplied with the alternativeLabel property. + */ + alternativeLabel: _propTypes2.default.bool, + /** + * Should be `Step` sub-components such as `StepLabel`, `StepContent`. + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Mark the step as completed. Is passed to child components. + */ + completed: _propTypes2.default.bool, + /** + * @ignore + * Passed down from Stepper if alternativeLabel is also set. + */ + connector: _propTypes2.default.element, + /** + * Mark the step as disabled, will also disable the button if + * `StepButton` is a child of `Step`. Is passed to child components. + */ + disabled: _propTypes2.default.bool, + /** + * @ignore + * Used internally for numbering. + */ + index: _propTypes2.default.number, + /** + * @ignore + */ + last: _propTypes2.default.bool, + /** + * @ignore + */ + orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) +} : {}; + +Step.defaultProps = { + active: false, + completed: false, + disabled: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStep' })(Step); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/StepButton.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +var _StepLabel = __webpack_require__("./node_modules/material-ui/Stepper/StepLabel.js"); + +var _StepLabel2 = _interopRequireDefault(_StepLabel); + +var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + width: '100%', + padding: theme.spacing.unit * 3 + 'px ' + theme.spacing.unit * 2 + 'px', + margin: -theme.spacing.unit * 3 + 'px ' + -theme.spacing.unit * 2 + 'px', + boxSizing: 'content-box' + } + }; +}; // @inheritedComponent ButtonBase + +function StepButton(props) { + var active = props.active, + alternativeLabel = props.alternativeLabel, + children = props.children, + classes = props.classes, + classNameProp = props.className, + completed = props.completed, + disabled = props.disabled, + icon = props.icon, + last = props.last, + optional = props.optional, + orientation = props.orientation, + other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'disabled', 'icon', 'last', 'optional', 'orientation']); + + + var childProps = { + active: active, + alternativeLabel: alternativeLabel, + completed: completed, + disabled: disabled, + icon: icon, + optional: optional, + orientation: orientation + }; + var child = (0, _reactHelpers.isMuiElement)(children, ['StepLabel']) ? _react2.default.cloneElement(children, childProps) : _react2.default.createElement( + _StepLabel2.default, + childProps, + children + ); + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends3.default)({ disabled: disabled, className: (0, _classnames2.default)(classes.root, classNameProp) }, other), + child + ); +} + +StepButton.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * @ignore + * Passed in via `Step` - passed through to `StepLabel`. + */ + active: _propTypes2.default.bool, + /** + * @ignore + * Set internally by Stepper when it's supplied with the alternativeLabel property. + */ + alternativeLabel: _propTypes2.default.bool, + /** + * Can be a `StepLabel` or a node to place inside `StepLabel` as children. + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + * Sets completed styling. Is passed to StepLabel. + */ + completed: _propTypes2.default.bool, + /** + * @ignore + * Disables the button and sets disabled styling. Is passed to StepLabel. + */ + disabled: _propTypes2.default.bool, + /** + * The icon displayed by the step label. + */ + icon: _propTypes2.default.node, + /** + * @ignore + */ + last: _propTypes2.default.bool, + /** + * The optional node to display. + */ + optional: _propTypes2.default.node, + /** + * @ignore + */ + orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepButton' })(StepButton); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/StepConnector.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + flex: '1 1 auto' + }, + horizontal: {}, + vertical: { + marginLeft: 12, // half icon + padding: '0 0 ' + theme.spacing.unit + 'px' + }, + alternativeLabel: { + position: 'absolute', + top: theme.spacing.unit + 4, + left: 'calc(50% + 20px)', + right: 'calc(-50% + 20px)' + }, + line: { + display: 'block', + borderColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600] + }, + lineHorizontal: { + borderTopStyle: 'solid', + borderTopWidth: 1 + }, + lineVertical: { + borderLeftStyle: 'solid', + borderLeftWidth: 1, + minHeight: theme.spacing.unit * 3 + } + }; +}; + +/** + * @ignore - internal component. + */ +function StepConnector(props) { + var _classNames2; + + var alternativeLabel = props.alternativeLabel, + classNameProp = props.className, + classes = props.classes, + orientation = props.orientation, + other = (0, _objectWithoutProperties3.default)(props, ['alternativeLabel', 'className', 'classes', 'orientation']); + + + var className = (0, _classnames2.default)(classes.root, classes[orientation], (0, _defineProperty3.default)({}, classes.alternativeLabel, alternativeLabel), classNameProp); + var lineClassName = (0, _classnames2.default)(classes.line, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.lineHorizontal, orientation === 'horizontal'), (0, _defineProperty3.default)(_classNames2, classes.lineVertical, orientation === 'vertical'), _classNames2)); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + _react2.default.createElement('span', { className: lineClassName }) + ); +} + +StepConnector.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * @ignore + * Set internally by Step when it's supplied with the alternativeLabel property. + */ + alternativeLabel: _propTypes2.default.bool, + /** + * Useful to extend the style applied to the component. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + */ + orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) +} : {}; + +StepConnector.defaultProps = { + alternativeLabel: false, + orientation: 'horizontal' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepConnector' })(StepConnector); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/StepContent.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _Collapse = __webpack_require__("./node_modules/material-ui/transitions/Collapse.js"); + +var _Collapse2 = _interopRequireDefault(_Collapse); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + marginTop: theme.spacing.unit, + marginLeft: 12, // half icon + paddingLeft: theme.spacing.unit + 12, // margin + half icon + paddingRight: theme.spacing.unit, + borderLeft: '1px solid ' + (theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]) + }, + last: { + borderLeft: 'none' + }, + transition: {} + }; +}; + +function StepContent(props) { + var active = props.active, + alternativeLabel = props.alternativeLabel, + children = props.children, + classes = props.classes, + classNameProp = props.className, + completed = props.completed, + last = props.last, + optional = props.optional, + orientation = props.orientation, + Transition = props.transition, + transitionDuration = props.transitionDuration, + other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'last', 'optional', 'orientation', 'transition', 'transitionDuration']); + + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(orientation === 'vertical', 'Material-UI: is only designed for use with the vertical stepper.') : void 0; + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.last, last), classNameProp); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + _react2.default.createElement( + Transition, + { + 'in': active, + className: classes.transition, + timeout: transitionDuration, + unmountOnExit: true + }, + children + ) + ); +} + +StepContent.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * @ignore + * Expands the content. + */ + active: _propTypes2.default.bool, + /** + * @ignore + * Set internally by Step when it's supplied with the alternativeLabel property. + */ + alternativeLabel: _propTypes2.default.bool, + /** + * Step content. + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + */ + completed: _propTypes2.default.bool, + /** + * @ignore + */ + last: _propTypes2.default.bool, + /** + * @ignore + * Set internally by Step when it's supplied with the optional property. + */ + optional: _propTypes2.default.bool, + /** + * @ignore + */ + orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']), + /** + * Collapse component. + */ + transition: _propTypes2.default.func, + /** + * Adjust the duration of the content expand transition. + * Passed as a property to the transition component. + * + * Set to 'auto' to automatically calculate transition time based on height. + */ + transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) +} : {}; + +StepContent.defaultProps = { + transition: _Collapse2.default, + transitionDuration: 'auto' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepContent' })(StepContent); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/StepIcon.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _CheckCircle = __webpack_require__("./node_modules/material-ui/internal/svg-icons/CheckCircle.js"); + +var _CheckCircle2 = _interopRequireDefault(_CheckCircle); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _StepPositionIcon = __webpack_require__("./node_modules/material-ui/Stepper/StepPositionIcon.js"); + +var _StepPositionIcon2 = _interopRequireDefault(_StepPositionIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'block' + }, + completed: { + color: theme.palette.primary.main + } + }; +}; + +function StepIcon(props) { + var completed = props.completed, + icon = props.icon, + active = props.active, + classes = props.classes; + + + if (typeof icon === 'number' || typeof icon === 'string') { + if (completed) { + return _react2.default.createElement(_CheckCircle2.default, { className: (0, _classnames2.default)(classes.root, classes.completed) }); + } + return _react2.default.createElement(_StepPositionIcon2.default, { className: classes.root, position: icon, active: active }); + } + + return icon; +} + +StepIcon.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Whether this step is active. + */ + active: _propTypes2.default.bool, + /** + * Classses for component style customizations. + */ + classes: _propTypes2.default.object.isRequired, + /** + * Mark the step as completed. Is passed to child components. + */ + completed: _propTypes2.default.bool, + /** + * The icon displayed by the step label. + */ + icon: _propTypes2.default.node.isRequired +} : {}; + +StepIcon.defaultProps = { + active: false, + completed: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepIcon' })(StepIcon); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/StepLabel.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +var _StepIcon = __webpack_require__("./node_modules/material-ui/Stepper/StepIcon.js"); + +var _StepIcon2 = _interopRequireDefault(_StepIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + alignItems: 'center' + }, + horizontal: {}, + vertical: {}, + alternativeLabel: { + flexDirection: 'column' + }, + disabled: { + cursor: 'default' + }, + label: { + color: theme.palette.text.secondary + }, + labelActive: { + color: theme.palette.text.primary, + fontWeight: 500 + }, + labelCompleted: { + color: theme.palette.text.primary, + fontWeight: 500 + }, + labelAlternativeLabel: { + textAlign: 'center', + marginTop: theme.spacing.unit * 2 + }, + iconContainer: {}, + iconContainerNoAlternative: { + paddingRight: theme.spacing.unit + }, + labelContainer: { + width: '100%' + } + }; +}; + +function StepLabel(props) { + var _classNames, _classNames3; + + var active = props.active, + alternativeLabel = props.alternativeLabel, + children = props.children, + classes = props.classes, + classNameProp = props.className, + completed = props.completed, + disabled = props.disabled, + icon = props.icon, + last = props.last, + optional = props.optional, + orientation = props.orientation, + other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'disabled', 'icon', 'last', 'optional', 'orientation']); + + + return _react2.default.createElement( + 'span', + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.root, classes[orientation], (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.alternativeLabel, alternativeLabel), _classNames), classNameProp) + }, other), + icon && _react2.default.createElement( + 'span', + { + className: (0, _classnames2.default)(classes.iconContainer, (0, _defineProperty3.default)({}, classes.iconContainerNoAlternative, !alternativeLabel)) + }, + _react2.default.createElement(_StepIcon2.default, { + completed: completed, + active: active, + icon: icon, + alternativeLabel: alternativeLabel + }) + ), + _react2.default.createElement( + 'span', + { className: classes.labelContainer }, + _react2.default.createElement( + _Typography2.default, + { + variant: 'body1', + component: 'span', + className: (0, _classnames2.default)(classes.label, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.labelAlternativeLabel, alternativeLabel), (0, _defineProperty3.default)(_classNames3, classes.labelCompleted, completed), (0, _defineProperty3.default)(_classNames3, classes.labelActive, active), _classNames3)) + }, + children + ), + optional + ) + ); +} + +StepLabel.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * @ignore + * Sets the step as active. Is passed to child components. + */ + active: _propTypes2.default.bool, + /** + * @ignore + * Set internally by Stepper when it's supplied with the alternativeLabel property. + */ + alternativeLabel: _propTypes2.default.bool, + /** + * In most cases will simply be a string containing a title for the label. + */ + children: _propTypes2.default.node, + /** + * Custom styles for component. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + * Mark the step as completed. Is passed to child components. + */ + completed: _propTypes2.default.bool, + /** + * Mark the step as disabled, will also disable the button if + * `StepLabelButton` is a child of `StepLabel`. Is passed to child components. + */ + disabled: _propTypes2.default.bool, + /** + * Override the default icon. + */ + icon: _propTypes2.default.node, + /** + * @ignore + */ + last: _propTypes2.default.bool, + /** + * The optional node to display. + */ + optional: _propTypes2.default.node, + /** + * @ignore + */ + orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) +} : {}; + +StepLabel.defaultProps = { + active: false, + alternativeLabel: false, + completed: false, + disabled: false, + last: false, + orientation: 'horizontal' +}; + +StepLabel.muiName = 'StepLabel'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepLabel' })(StepLabel); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/StepPositionIcon.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + color: theme.palette.text.disabled + }, + active: { + color: theme.palette.primary.main + }, + text: { + fill: theme.palette.primary.contrastText, + fontSize: theme.typography.caption.fontSize, + fontFamily: theme.typography.fontFamily + } + }; +}; + +/** + * @ignore - internal component. + */ + +var _ref = _react2.default.createElement('circle', { cx: '12', cy: '12', r: '12' }); + +function StepPositionIcon(props) { + var position = props.position, + classes = props.classes, + classNameProp = props.className, + active = props.active; + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.active, active), classNameProp); + + return _react2.default.createElement( + _SvgIcon2.default, + { className: className }, + _ref, + _react2.default.createElement( + 'text', + { className: classes.text, x: '12', y: '16', textAnchor: 'middle' }, + position + ) + ); +} + +StepPositionIcon.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Whether this step is active. + */ + active: _propTypes2.default.bool, + /** + * Classses for component style customizations. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The step position as a number. + */ + position: _propTypes2.default.node +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepPosition' })(StepPositionIcon); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/Stepper.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); + +var _Paper2 = _interopRequireDefault(_Paper); + +var _StepConnector = __webpack_require__("./node_modules/material-ui/Stepper/StepConnector.js"); + +var _StepConnector2 = _interopRequireDefault(_StepConnector); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent Paper + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'flex', + padding: theme.spacing.unit * 3 + }, + horizontal: { + flexDirection: 'row', + alignItems: 'center' + }, + vertical: { + flexDirection: 'column' + }, + alternativeLabel: { + alignItems: 'flex-start' + } + }; +}; + +function Stepper(props) { + var activeStep = props.activeStep, + alternativeLabel = props.alternativeLabel, + children = props.children, + classes = props.classes, + classNameProp = props.className, + connectorProp = props.connector, + nonLinear = props.nonLinear, + orientation = props.orientation, + other = (0, _objectWithoutProperties3.default)(props, ['activeStep', 'alternativeLabel', 'children', 'classes', 'className', 'connector', 'nonLinear', 'orientation']); + + + var className = (0, _classnames2.default)(classes.root, classes[orientation], (0, _defineProperty3.default)({}, classes.alternativeLabel, alternativeLabel), classNameProp); + + var connector = _react2.default.isValidElement(connectorProp) ? _react2.default.cloneElement(connectorProp, { orientation: orientation }) : null; + var childrenArray = _react2.default.Children.toArray(children); + var steps = childrenArray.map(function (step, index) { + var controlProps = { + index: index, + orientation: orientation, + active: false, + completed: false, + disabled: false, + last: index + 1 === childrenArray.length, + alternativeLabel: alternativeLabel, + connector: connectorProp + }; + + if (activeStep === index) { + controlProps.active = true; + } else if (!nonLinear && activeStep > index) { + controlProps.completed = true; + } else if (!nonLinear && activeStep < index) { + controlProps.disabled = true; + } + + return [!alternativeLabel && connector && index > 0 && _react2.default.cloneElement(connector, { + key: index // eslint-disable-line react/no-array-index-key + }), _react2.default.cloneElement(step, (0, _extends3.default)({}, controlProps, step.props))]; + }); + + return _react2.default.createElement( + _Paper2.default, + (0, _extends3.default)({ square: true, elevation: 0, className: className }, other), + steps + ); +} + +Stepper.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Set the active step (zero based index). + */ + activeStep: _propTypes2.default.number, + /** + * If set to 'true' and orientation is horizontal, + * then the step label will be positioned under the icon. + */ + alternativeLabel: _propTypes2.default.bool, + /** + * Two or more `` components. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * A component to be placed between each step. + */ + connector: _propTypes2.default.element, + /** + * If set the `Stepper` will not assist in controlling steps for linear flow. + */ + nonLinear: _propTypes2.default.bool, + /** + * The stepper orientation (layout flow direction). + */ + orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) +} : {}; + +Stepper.defaultProps = { + activeStep: 0, + alternativeLabel: false, + connector: _react2.default.createElement(_StepConnector2.default, null), + nonLinear: false, + orientation: 'horizontal' +}; + +Stepper.muiName = 'Stepper'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepper' })(Stepper); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Stepper/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Stepper = __webpack_require__("./node_modules/material-ui/Stepper/Stepper.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Stepper).default; + } +}); + +var _Step = __webpack_require__("./node_modules/material-ui/Stepper/Step.js"); + +Object.defineProperty(exports, 'Step', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Step).default; + } +}); + +var _StepButton = __webpack_require__("./node_modules/material-ui/Stepper/StepButton.js"); + +Object.defineProperty(exports, 'StepButton', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_StepButton).default; + } +}); + +var _StepContent = __webpack_require__("./node_modules/material-ui/Stepper/StepContent.js"); + +Object.defineProperty(exports, 'StepContent', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_StepContent).default; + } +}); + +var _StepIcon = __webpack_require__("./node_modules/material-ui/Stepper/StepIcon.js"); + +Object.defineProperty(exports, 'StepIcon', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_StepIcon).default; + } +}); + +var _StepLabel = __webpack_require__("./node_modules/material-ui/Stepper/StepLabel.js"); + +Object.defineProperty(exports, 'StepLabel', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_StepLabel).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/SvgIcon/SvgIcon.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'inline-block', + fill: 'currentColor', + height: 24, + width: 24, + userSelect: 'none', + flexShrink: 0, + transition: theme.transitions.create('fill', { + duration: theme.transitions.duration.shorter + }) + }, + colorPrimary: { + color: theme.palette.primary.main + }, + colorSecondary: { + color: theme.palette.secondary.main + }, + colorAction: { + color: theme.palette.action.active + }, + colorDisabled: { + color: theme.palette.action.disabled + }, + colorError: { + color: theme.palette.error.main + }, + fontSize: { + width: '1em', + height: '1em' + } + }; +}; + +function SvgIcon(props) { + var _classNames; + + var children = props.children, + classes = props.classes, + classNameProp = props.className, + color = props.color, + fontSize = props.fontSize, + nativeColor = props.nativeColor, + titleAccess = props.titleAccess, + viewBox = props.viewBox, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'fontSize', 'nativeColor', 'titleAccess', 'viewBox']); + + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), (0, _defineProperty3.default)(_classNames, classes.fontSize, fontSize), _classNames), classNameProp); + + return _react2.default.createElement( + 'svg', + (0, _extends3.default)({ + className: className, + focusable: 'false', + viewBox: viewBox, + color: nativeColor, + 'aria-hidden': titleAccess ? 'false' : 'true' + }, other), + titleAccess ? _react2.default.createElement( + 'title', + null, + titleAccess + ) : null, + children + ); +} + +SvgIcon.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Node passed into the SVG element. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + * You can use the `nativeColor` property to apply a color attribute to the SVG element. + */ + color: _propTypes2.default.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']), + /** + * If `true`, the icon size will be determined by the font-size. + */ + fontSize: _propTypes2.default.bool, + /** + * Applies a color attribute to the SVG element. + */ + nativeColor: _propTypes2.default.string, + /** + * Provides a human-readable title for the element that contains it. + * https://www.w3.org/TR/SVG-access/#Equivalent + */ + titleAccess: _propTypes2.default.string, + /** + * Allows you to redefine what the coordinates without units mean inside an SVG element. + * For example, if the SVG element is 500 (width) by 200 (height), + * and you pass viewBox="0 0 50 20", + * this means that the coordinates inside the SVG will go from the top left corner (0,0) + * to bottom right (50,20) and each unit will be worth 10px. + */ + viewBox: _propTypes2.default.string +} : {}; + +SvgIcon.defaultProps = { + color: 'inherit', + fontSize: false, + viewBox: '0 0 24 24' +}; + +SvgIcon.muiName = 'SvgIcon'; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSvgIcon' })(SvgIcon); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/SvgIcon/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/SvgIcon.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_SvgIcon).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Switch/Switch.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _SwitchBase = __webpack_require__("./node_modules/material-ui/internal/SwitchBase.js"); + +var _SwitchBase2 = _interopRequireDefault(_SwitchBase); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'inline-flex', + width: 62, + position: 'relative', + flexShrink: 0, + // For correct alignment with the text. + verticalAlign: 'middle' + }, + bar: { + borderRadius: 7, + display: 'block', + position: 'absolute', + width: 34, + height: 14, + top: '50%', + marginTop: -7, + left: '50%', + marginLeft: -17, + transition: theme.transitions.create(['opacity', 'background-color'], { + duration: theme.transitions.duration.shortest + }), + backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white, + opacity: theme.palette.type === 'light' ? 0.38 : 0.3 + }, + icon: { + boxShadow: theme.shadows[1], + backgroundColor: 'currentColor', + width: 20, + height: 20, + borderRadius: '50%' + }, + iconChecked: { + boxShadow: theme.shadows[2] + }, + // For SwitchBase + default: { + zIndex: 1, + color: theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[400], + transition: theme.transitions.create('transform', { + duration: theme.transitions.duration.shortest + }) + }, + checked: { + transform: 'translateX(14px)', + '& + $bar': { + opacity: 0.5 + } + }, + checkedPrimary: { + color: theme.palette.primary.main, + '& + $bar': { + backgroundColor: theme.palette.primary.main + } + }, + checkedSecondary: { + color: theme.palette.secondary.main, + '& + $bar': { + backgroundColor: theme.palette.secondary.main + } + }, + disabled: { + color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800], + '& + $bar': { + backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white, + opacity: theme.palette.type === 'light' ? 0.12 : 0.1 + }, + '& $icon': { + boxShadow: theme.shadows[1] + } + } + }; +}; + +function Switch(props) { + var _classNames; + + var classes = props.classes, + className = props.className, + color = props.color, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color']); + + var icon = _react2.default.createElement('span', { className: classes.icon }); + var checkedIcon = _react2.default.createElement('span', { className: (0, _classnames2.default)(classes.icon, classes.iconChecked) }); + var checkedClass = (0, _classnames2.default)(classes.checked, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checkedPrimary, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.checkedSecondary, color === 'secondary'), _classNames)); + + return _react2.default.createElement( + 'span', + { className: (0, _classnames2.default)(classes.root, className) }, + _react2.default.createElement(_SwitchBase2.default, (0, _extends3.default)({ + icon: icon, + classes: { + default: classes.default, + checked: checkedClass, + disabled: classes.disabled + }, + checkedIcon: checkedIcon + }, other)), + _react2.default.createElement('span', { className: classes.bar }) + ); +} + +Switch.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the component is checked. + */ + checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), + /** + * The icon to display when the component is checked. + */ + checkedIcon: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['primary', 'secondary']), + /** + * @ignore + */ + defaultChecked: _propTypes2.default.bool, + /** + * If `true`, the switch will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: _propTypes2.default.bool, + /** + * The icon to display when the component is unchecked. + */ + icon: _propTypes2.default.node, + /** + * The id of the `input` element. + */ + id: _propTypes2.default.string, + /** + * Properties applied to the `input` element. + */ + inputProps: _propTypes2.default.object, + /** + * Use that property to pass a ref callback to the native input component. + */ + inputRef: _propTypes2.default.func, + /* + * @ignore + */ + name: _propTypes2.default.string, + /** + * Callback fired when the state is changed. + * + * @param {object} event The event source of the callback + * @param {boolean} checked The `checked` value of the switch + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), + /** + * The input component property `type`. + */ + type: _propTypes2.default.string, + /** + * The value of the component. + */ + value: _propTypes2.default.string +} : {}; + +Switch.defaultProps = { + color: 'secondary' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSwitch' })(Switch); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Switch/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Switch = __webpack_require__("./node_modules/material-ui/Switch/Switch.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Switch).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Table/Table.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + fontFamily: theme.typography.fontFamily, + width: '100%', + borderCollapse: 'collapse', + borderSpacing: 0, + overflow: 'hidden' + } + }; +}; + +var Table = function (_React$Component) { + (0, _inherits3.default)(Table, _React$Component); + + function Table() { + (0, _classCallCheck3.default)(this, Table); + return (0, _possibleConstructorReturn3.default)(this, (Table.__proto__ || (0, _getPrototypeOf2.default)(Table)).apply(this, arguments)); + } + + (0, _createClass3.default)(Table, [{ + key: 'getChildContext', + value: function getChildContext() { + // eslint-disable-line class-methods-use-this + return { + table: {} + }; + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + classes = _props.classes, + classNameProp = _props.className, + Component = _props.component, + other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'component']); + + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, classNameProp) }, other)); + } + }]); + return Table; +}(_react2.default.Component); + +Table.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the table, normally `TableHeader` and `TableBody`. + */ + children: _propTypes2.default.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) +} : {}; + +Table.defaultProps = { + component: 'table' +}; + +Table.childContextTypes = { + table: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTable' })(Table); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TableBody.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var TableBody = function (_React$Component) { + (0, _inherits3.default)(TableBody, _React$Component); + + function TableBody() { + (0, _classCallCheck3.default)(this, TableBody); + return (0, _possibleConstructorReturn3.default)(this, (TableBody.__proto__ || (0, _getPrototypeOf2.default)(TableBody)).apply(this, arguments)); + } + + (0, _createClass3.default)(TableBody, [{ + key: 'getChildContext', + value: function getChildContext() { + // eslint-disable-line class-methods-use-this + return { + table: { + body: true + } + }; + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + Component = _props.component, + other = (0, _objectWithoutProperties3.default)(_props, ['component']); + + + return _react2.default.createElement(Component, other); + } + }]); + return TableBody; +}(_react2.default.Component); + +TableBody.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally `TableRow`. + */ + children: _propTypes2.default.node.isRequired, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) +} : {}; + +TableBody.defaultProps = { + component: 'tbody' +}; + +TableBody.childContextTypes = { + table: _propTypes2.default.object +}; + +exports.default = TableBody; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TableCell.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + // Workaround for a rendering bug with spanned columns in Chrome 62.0. + // Removes the alpha (sets it to 1), and lightens or darkens the theme color. + borderBottom: '1px solid\n ' + (theme.palette.type === 'light' ? (0, _colorManipulator.lighten)((0, _colorManipulator.fade)(theme.palette.divider, 1), 0.88) : (0, _colorManipulator.darken)((0, _colorManipulator.fade)(theme.palette.divider, 1), 0.8)), + textAlign: 'left' + }, + numeric: { + textAlign: 'right', + flexDirection: 'row-reverse' // can be dynamically inherited at runtime by contents + }, + typeHead: { + color: theme.palette.text.secondary, + fontSize: theme.typography.pxToRem(12), + fontWeight: theme.typography.fontWeightMedium, + position: 'relative' // Workaround for Tooltip positioning issue. + }, + typeBody: { + fontSize: theme.typography.pxToRem(13), + color: theme.palette.text.primary + }, + typeFooter: { + borderBottom: 0, + color: theme.palette.text.secondary, + fontSize: theme.typography.pxToRem(12) + }, + paddingDefault: { + padding: theme.spacing.unit / 2 + 'px ' + theme.spacing.unit * 7 + 'px ' + theme.spacing.unit / 2 + 'px ' + theme.spacing.unit * 3 + 'px', + '&:last-child': { + paddingRight: theme.spacing.unit * 3 + } + }, + paddingDense: { + paddingRight: theme.spacing.unit * 3 + }, + paddingCheckbox: { + padding: '0 12px' + } + }; +}; + +function TableCell(props, context) { + var _classNames; + + var children = props.children, + classes = props.classes, + classNameProp = props.className, + component = props.component, + sortDirection = props.sortDirection, + numeric = props.numeric, + padding = props.padding, + scopeProp = props.scope, + variant = props.variant, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'component', 'sortDirection', 'numeric', 'padding', 'scope', 'variant']); + var table = context.table; + + var Component = void 0; + if (component) { + Component = component; + } else { + Component = table && table.head ? 'th' : 'td'; + } + + var scope = scopeProp; + if (!scope && table && table.head) { + scope = 'col'; + } + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.numeric, numeric), (0, _defineProperty3.default)(_classNames, classes['padding' + (0, _helpers.capitalize)(padding)], padding !== 'none' && padding !== 'default'), (0, _defineProperty3.default)(_classNames, classes.paddingDefault, padding !== 'none'), (0, _defineProperty3.default)(_classNames, classes.typeHead, variant ? variant === 'head' : table && table.head), (0, _defineProperty3.default)(_classNames, classes.typeBody, variant ? variant === 'body' : table && table.body), (0, _defineProperty3.default)(_classNames, classes.typeFooter, variant ? variant === 'footer' : table && table.footer), _classNames), classNameProp); + + var ariaSort = null; + if (sortDirection) { + ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending'; + } + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ className: className, 'aria-sort': ariaSort, scope: scope }, other), + children + ); +} + +TableCell.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The table cell contents. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, content will align to the right. + */ + numeric: _propTypes2.default.bool, + /** + * Sets the padding applied to the cell. + */ + padding: _propTypes2.default.oneOf(['default', 'checkbox', 'dense', 'none']), + /** + * Set scope attribute. + */ + scope: _propTypes2.default.string, + /** + * Set aria-sort direction. + */ + sortDirection: _propTypes2.default.oneOf(['asc', 'desc', false]), + /** + * Specify the cell type. + * By default, the TableHead, TableBody or TableFooter parent component set the value. + */ + variant: _propTypes2.default.oneOf(['head', 'body', 'footer']) +} : {}; + +TableCell.defaultProps = { + numeric: false, + padding: 'default' +}; + +TableCell.contextTypes = { + table: _propTypes2.default.object.isRequired +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTableCell' })(TableCell); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TableFooter.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var TableFooter = function (_React$Component) { + (0, _inherits3.default)(TableFooter, _React$Component); + + function TableFooter() { + (0, _classCallCheck3.default)(this, TableFooter); + return (0, _possibleConstructorReturn3.default)(this, (TableFooter.__proto__ || (0, _getPrototypeOf2.default)(TableFooter)).apply(this, arguments)); + } + + (0, _createClass3.default)(TableFooter, [{ + key: 'getChildContext', + value: function getChildContext() { + // eslint-disable-line class-methods-use-this + return { + table: { + footer: true + } + }; + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + Component = _props.component, + other = (0, _objectWithoutProperties3.default)(_props, ['component']); + + + return _react2.default.createElement(Component, other); + } + }]); + return TableFooter; +}(_react2.default.Component); + +TableFooter.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally `TableRow`. + */ + children: _propTypes2.default.node, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) +} : {}; + +TableFooter.defaultProps = { + component: 'tfoot' +}; + +TableFooter.childContextTypes = { + table: _propTypes2.default.object +}; + +exports.default = TableFooter; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TableHead.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var TableHead = function (_React$Component) { + (0, _inherits3.default)(TableHead, _React$Component); + + function TableHead() { + (0, _classCallCheck3.default)(this, TableHead); + return (0, _possibleConstructorReturn3.default)(this, (TableHead.__proto__ || (0, _getPrototypeOf2.default)(TableHead)).apply(this, arguments)); + } + + (0, _createClass3.default)(TableHead, [{ + key: 'getChildContext', + value: function getChildContext() { + // eslint-disable-line class-methods-use-this + return { + table: { + head: true + } + }; + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + Component = _props.component, + other = (0, _objectWithoutProperties3.default)(_props, ['component']); + + + return _react2.default.createElement(Component, other); + } + }]); + return TableHead; +}(_react2.default.Component); + +TableHead.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally `TableRow`. + */ + children: _propTypes2.default.node.isRequired, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) +} : {}; + +TableHead.defaultProps = { + component: 'thead' +}; + +TableHead.childContextTypes = { + table: _propTypes2.default.object +}; + +exports.default = TableHead; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TablePagination.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _Input = __webpack_require__("./node_modules/material-ui/Input/index.js"); + +var _Input2 = _interopRequireDefault(_Input); + +var _Menu = __webpack_require__("./node_modules/material-ui/Menu/index.js"); + +var _Select = __webpack_require__("./node_modules/material-ui/Select/index.js"); + +var _Select2 = _interopRequireDefault(_Select); + +var _TableCell = __webpack_require__("./node_modules/material-ui/Table/TableCell.js"); + +var _TableCell2 = _interopRequireDefault(_TableCell); + +var _Toolbar = __webpack_require__("./node_modules/material-ui/Toolbar/index.js"); + +var _Toolbar2 = _interopRequireDefault(_Toolbar); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); + +var _Typography2 = _interopRequireDefault(_Typography); + +var _TablePaginationActions = __webpack_require__("./node_modules/material-ui/Table/TablePaginationActions.js"); + +var _TablePaginationActions2 = _interopRequireDefault(_TablePaginationActions); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent TableCell + +var styles = exports.styles = function styles(theme) { + return { + root: { + // Increase the specificity to override TableCell. + '&:last-child': { + padding: 0 + } + }, + toolbar: { + height: 56, + minHeight: 56, + paddingRight: 2 + }, + spacer: { + flex: '1 1 100%' + }, + caption: { + flexShrink: 0 + }, + input: { + fontSize: 'inherit', + flexShrink: 0 + }, + selectRoot: { + marginRight: theme.spacing.unit * 4, + marginLeft: theme.spacing.unit, + color: theme.palette.text.secondary + }, + select: { + paddingLeft: theme.spacing.unit, + paddingRight: theme.spacing.unit * 2 + }, + selectIcon: { + top: 1 + }, + actions: { + flexShrink: 0, + color: theme.palette.text.secondary, + marginLeft: theme.spacing.unit * 2.5 + } + }; +}; + +/** + * A `TableCell` based component for placing inside `TableFooter` for pagination. + */ + +var TablePagination = function (_React$Component) { + (0, _inherits3.default)(TablePagination, _React$Component); + + function TablePagination() { + (0, _classCallCheck3.default)(this, TablePagination); + return (0, _possibleConstructorReturn3.default)(this, (TablePagination.__proto__ || (0, _getPrototypeOf2.default)(TablePagination)).apply(this, arguments)); + } + + (0, _createClass3.default)(TablePagination, [{ + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + var count = nextProps.count, + onChangePage = nextProps.onChangePage, + rowsPerPage = nextProps.rowsPerPage; + + var newLastPage = Math.max(0, Math.ceil(count / rowsPerPage) - 1); + if (this.props.page > newLastPage) { + onChangePage(null, newLastPage); + } + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + Actions = _props.Actions, + backIconButtonProps = _props.backIconButtonProps, + classes = _props.classes, + colSpanProp = _props.colSpan, + Component = _props.component, + count = _props.count, + labelDisplayedRows = _props.labelDisplayedRows, + labelRowsPerPage = _props.labelRowsPerPage, + nextIconButtonProps = _props.nextIconButtonProps, + onChangePage = _props.onChangePage, + onChangeRowsPerPage = _props.onChangeRowsPerPage, + page = _props.page, + rowsPerPage = _props.rowsPerPage, + rowsPerPageOptions = _props.rowsPerPageOptions, + other = (0, _objectWithoutProperties3.default)(_props, ['Actions', 'backIconButtonProps', 'classes', 'colSpan', 'component', 'count', 'labelDisplayedRows', 'labelRowsPerPage', 'nextIconButtonProps', 'onChangePage', 'onChangeRowsPerPage', 'page', 'rowsPerPage', 'rowsPerPageOptions']); + + + var colSpan = void 0; + + if (Component === _TableCell2.default || Component === 'td') { + colSpan = colSpanProp || 1000; // col-span over everything + } + + return _react2.default.createElement( + Component, + (0, _extends3.default)({ className: classes.root, colSpan: colSpan }, other), + _react2.default.createElement( + _Toolbar2.default, + { className: classes.toolbar }, + _react2.default.createElement('div', { className: classes.spacer }), + rowsPerPageOptions.length > 1 && _react2.default.createElement( + _Typography2.default, + { variant: 'caption', className: classes.caption }, + labelRowsPerPage + ), + rowsPerPageOptions.length > 1 && _react2.default.createElement( + _Select2.default, + { + classes: { + root: classes.selectRoot, + select: classes.select, + icon: classes.selectIcon + }, + input: _react2.default.createElement(_Input2.default, { + classes: { + root: classes.input + }, + disableUnderline: true + }), + value: rowsPerPage, + onChange: onChangeRowsPerPage + }, + rowsPerPageOptions.map(function (rowsPerPageOption) { + return _react2.default.createElement( + _Menu.MenuItem, + { key: rowsPerPageOption, value: rowsPerPageOption }, + rowsPerPageOption + ); + }) + ), + _react2.default.createElement( + _Typography2.default, + { variant: 'caption', className: classes.caption }, + labelDisplayedRows({ + from: count === 0 ? 0 : page * rowsPerPage + 1, + to: Math.min(count, (page + 1) * rowsPerPage), + count: count, + page: page + }) + ), + _react2.default.createElement(Actions, { + backIconButtonProps: backIconButtonProps, + count: count, + nextIconButtonProps: nextIconButtonProps, + onChangePage: onChangePage, + page: page, + rowsPerPage: rowsPerPage + }) + ) + ); + } + }]); + return TablePagination; +}(_react2.default.Component); + +TablePagination.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The component used for displaying the actions. + * Either a string to use a DOM element or a component. + */ + Actions: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Properties applied to the back arrow `IconButton` component. + */ + backIconButtonProps: _propTypes2.default.object, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + colSpan: _propTypes2.default.number, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * The total number of rows. + */ + count: _propTypes2.default.number.isRequired, + /** + * Useful to customize the displayed rows label. + */ + labelDisplayedRows: _propTypes2.default.func, + /** + * Useful to customize the rows per page label. Invoked with a `{ from, to, count, page }` + * object. + */ + labelRowsPerPage: _propTypes2.default.node, + /** + * Properties applied to the next arrow `IconButton` component. + */ + nextIconButtonProps: _propTypes2.default.object, + /** + * Callback fired when the page is changed. + * + * @param {object} event The event source of the callback + * @param {number} page The page selected + */ + onChangePage: _propTypes2.default.func.isRequired, + /** + * Callback fired when the number of rows per page is changed. + * + * @param {object} event The event source of the callback + */ + onChangeRowsPerPage: _propTypes2.default.func, + /** + * The zero-based index of the current page. + */ + page: _propTypes2.default.number.isRequired, + /** + * The number of rows per page. + */ + rowsPerPage: _propTypes2.default.number.isRequired, + /** + * Customizes the options of the rows per page select field. If less than two options are + * available, no select field will be displayed. + */ + rowsPerPageOptions: _propTypes2.default.array +} : {}; + +TablePagination.defaultProps = { + Actions: _TablePaginationActions2.default, + component: _TableCell2.default, + labelDisplayedRows: function labelDisplayedRows(_ref) { + var from = _ref.from, + to = _ref.to, + count = _ref.count; + return from + '-' + to + ' of ' + count; + }, + labelRowsPerPage: 'Rows per page:', + rowsPerPageOptions: [5, 10, 25] +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTablePagination' })(TablePagination); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TablePaginationActions.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _KeyboardArrowLeft = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowLeft.js"); + +var _KeyboardArrowLeft2 = _interopRequireDefault(_KeyboardArrowLeft); + +var _KeyboardArrowRight = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowRight.js"); + +var _KeyboardArrowRight2 = _interopRequireDefault(_KeyboardArrowRight); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); + +var _IconButton2 = _interopRequireDefault(_IconButton); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + flexShrink: 0, + color: theme.palette.text.secondary, + marginLeft: theme.spacing.unit * 2.5 + } + }; +}; + +/** + * @ignore - internal component. + */ + +var _ref2 = _react2.default.createElement(_KeyboardArrowRight2.default, null); + +var _ref3 = _react2.default.createElement(_KeyboardArrowLeft2.default, null); + +var _ref4 = _react2.default.createElement(_KeyboardArrowLeft2.default, null); + +var _ref5 = _react2.default.createElement(_KeyboardArrowRight2.default, null); + +var TablePaginationActions = function (_React$Component) { + (0, _inherits3.default)(TablePaginationActions, _React$Component); + + function TablePaginationActions() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, TablePaginationActions); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TablePaginationActions.__proto__ || (0, _getPrototypeOf2.default)(TablePaginationActions)).call.apply(_ref, [this].concat(args))), _this), _this.handleBackButtonClick = function (event) { + _this.props.onChangePage(event, _this.props.page - 1); + }, _this.handleNextButtonClick = function (event) { + _this.props.onChangePage(event, _this.props.page + 1); + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(TablePaginationActions, [{ + key: 'render', + value: function render() { + var _props = this.props, + backIconButtonProps = _props.backIconButtonProps, + classes = _props.classes, + count = _props.count, + nextIconButtonProps = _props.nextIconButtonProps, + onChangePage = _props.onChangePage, + page = _props.page, + rowsPerPage = _props.rowsPerPage, + theme = _props.theme, + other = (0, _objectWithoutProperties3.default)(_props, ['backIconButtonProps', 'classes', 'count', 'nextIconButtonProps', 'onChangePage', 'page', 'rowsPerPage', 'theme']); + + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: classes.root }, other), + _react2.default.createElement( + _IconButton2.default, + (0, _extends3.default)({ + onClick: this.handleBackButtonClick, + disabled: page === 0 + }, backIconButtonProps), + theme.direction === 'rtl' ? _ref2 : _ref3 + ), + _react2.default.createElement( + _IconButton2.default, + (0, _extends3.default)({ + onClick: this.handleNextButtonClick, + disabled: page >= Math.ceil(count / rowsPerPage) - 1 + }, nextIconButtonProps), + theme.direction === 'rtl' ? _ref4 : _ref5 + ) + ); + } + }]); + return TablePaginationActions; +}(_react2.default.Component); + +TablePaginationActions.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Properties applied to the back arrow `IconButton` component. + */ + backIconButtonProps: _propTypes2.default.object, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * The total number of rows. + */ + count: _propTypes2.default.number.isRequired, + /** + * Properties applied to the next arrow `IconButton` component. + */ + nextIconButtonProps: _propTypes2.default.object, + /** + * Callback fired when the page is changed. + * + * @param {object} event The event source of the callback + * @param {number} page The page selected + */ + onChangePage: _propTypes2.default.func.isRequired, + /** + * The zero-based index of the current page. + */ + page: _propTypes2.default.number.isRequired, + /** + * The number of rows per page. + */ + rowsPerPage: _propTypes2.default.number.isRequired, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTablePaginationActions', withTheme: true })(TablePaginationActions); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TableRow.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + color: 'inherit', + display: 'table-row', + height: 48, + '&:focus': { + outline: 'none' + }, + verticalAlign: 'middle' + }, + typeHead: { + height: 56 + }, + typeFooter: { + height: 56 + }, + selected: { + backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.04)' // grey[100] + : 'rgba(255, 255, 255, 0.08)' + }, + hover: { + '&:hover': { + backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.07)' // grey[200] + : 'rgba(255, 255, 255, 0.14)' + } + } + }; +}; + +/** + * Will automatically set dynamic row height + * based on the material table element parent (head, body, etc). + */ +function TableRow(props, context) { + var _classNames; + + var classes = props.classes, + classNameProp = props.className, + Component = props.component, + hover = props.hover, + selected = props.selected, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'hover', 'selected']); + var table = context.table; + + + var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.typeHead, table && table.head), (0, _defineProperty3.default)(_classNames, classes.typeFooter, table && table.footer), (0, _defineProperty3.default)(_classNames, classes.hover, table && hover), (0, _defineProperty3.default)(_classNames, classes.selected, table && selected), _classNames), classNameProp); + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); +} + +TableRow.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Should be valid `` children such as `TableCell`. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the table row will shade on hover. + */ + hover: _propTypes2.default.bool, + /** + * If `true`, the table row will have the selected shading. + */ + selected: _propTypes2.default.bool +} : {}; + +TableRow.defaultProps = { + component: 'tr', + hover: false, + selected: false +}; + +TableRow.contextTypes = { + table: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTableRow' })(TableRow); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/TableSortLabel.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _ArrowDownward = __webpack_require__("./node_modules/material-ui/internal/svg-icons/ArrowDownward.js"); + +var _ArrowDownward2 = _interopRequireDefault(_ArrowDownward); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent ButtonBase + +var styles = exports.styles = function styles(theme) { + return { + root: { + cursor: 'pointer', + display: 'inline-flex', + justifyContent: 'flex-start', + flexDirection: 'inherit', + alignItems: 'center', + '&:hover': { + color: theme.palette.text.primary + }, + '&:focus': { + color: theme.palette.text.primary + } + }, + active: { + color: theme.palette.text.primary, + '& $icon': { + opacity: 1 + } + }, + icon: { + height: 16, + marginRight: 4, + marginLeft: 4, + opacity: 0, + transition: theme.transitions.create(['opacity', 'transform'], { + duration: theme.transitions.duration.shorter + }), + userSelect: 'none', + width: 16 + }, + desc: { + transform: 'rotate(0deg)' + }, + asc: { + transform: 'rotate(180deg)' + } + }; +}; + +/** + * A button based label for placing inside `TableCell` for column sorting. + */ +function TableSortLabel(props) { + var active = props.active, + classes = props.classes, + classNameProp = props.className, + children = props.children, + direction = props.direction, + other = (0, _objectWithoutProperties3.default)(props, ['active', 'classes', 'className', 'children', 'direction']); + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.active, active), classNameProp); + + var iconClassName = (0, _classnames2.default)(classes.icon, (0, _defineProperty3.default)({}, classes[direction], !!direction)); + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends3.default)({ className: className, component: 'span', disableRipple: true }, other), + children, + _react2.default.createElement(_ArrowDownward2.default, { className: iconClassName }) + ); +} + +TableSortLabel.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the label will have the active styling (should be true for the sorted column). + */ + active: _propTypes2.default.bool, + /** + * Label contents, the arrow will be appended automatically. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The current sort direction. + */ + direction: _propTypes2.default.oneOf(['asc', 'desc']) +} : {}; + +TableSortLabel.defaultProps = { + active: false, + direction: 'desc' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTableSortLabel' })(TableSortLabel); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Table/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Table = __webpack_require__("./node_modules/material-ui/Table/Table.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Table).default; + } +}); + +var _TableBody = __webpack_require__("./node_modules/material-ui/Table/TableBody.js"); + +Object.defineProperty(exports, 'TableBody', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TableBody).default; + } +}); + +var _TableCell = __webpack_require__("./node_modules/material-ui/Table/TableCell.js"); + +Object.defineProperty(exports, 'TableCell', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TableCell).default; + } +}); + +var _TableFooter = __webpack_require__("./node_modules/material-ui/Table/TableFooter.js"); + +Object.defineProperty(exports, 'TableFooter', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TableFooter).default; + } +}); + +var _TableHead = __webpack_require__("./node_modules/material-ui/Table/TableHead.js"); + +Object.defineProperty(exports, 'TableHead', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TableHead).default; + } +}); + +var _TablePagination = __webpack_require__("./node_modules/material-ui/Table/TablePagination.js"); + +Object.defineProperty(exports, 'TablePagination', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TablePagination).default; + } +}); + +var _TableRow = __webpack_require__("./node_modules/material-ui/Table/TableRow.js"); + +Object.defineProperty(exports, 'TableRow', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TableRow).default; + } +}); + +var _TableSortLabel = __webpack_require__("./node_modules/material-ui/Table/TableSortLabel.js"); + +Object.defineProperty(exports, 'TableSortLabel', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TableSortLabel).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Tabs/Tab.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _extends3 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends4 = _interopRequireDefault(_extends3); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent ButtonBase + +var styles = exports.styles = function styles(theme) { + return { + root: (0, _extends4.default)({}, theme.typography.button, (0, _defineProperty3.default)({ + maxWidth: 264, + position: 'relative', + minWidth: 72, + padding: 0, + height: 48, + flex: 'none', + overflow: 'hidden' + }, theme.breakpoints.up('md'), { + minWidth: 160 + })), + rootLabelIcon: { + height: 72 + }, + rootInherit: { + color: 'inherit', + opacity: 0.7 + }, + rootPrimary: { + color: theme.palette.text.secondary + }, + rootPrimarySelected: { + color: theme.palette.primary.main + }, + rootPrimaryDisabled: { + color: theme.palette.text.disabled + }, + rootSecondary: { + color: theme.palette.text.secondary + }, + rootSecondarySelected: { + color: theme.palette.secondary.main + }, + rootSecondaryDisabled: { + color: theme.palette.text.disabled + }, + rootInheritSelected: { + opacity: 1 + }, + rootInheritDisabled: { + opacity: 0.4 + }, + fullWidth: { + flexGrow: 1 + }, + wrapper: { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + width: '100%', + flexDirection: 'column' + }, + labelContainer: (0, _defineProperty3.default)({ + paddingTop: 6, + paddingBottom: 6, + paddingLeft: 12, + paddingRight: 12 + }, theme.breakpoints.up('md'), { + paddingLeft: theme.spacing.unit * 3, + paddingRight: theme.spacing.unit * 3 + }), + label: (0, _defineProperty3.default)({ + fontSize: theme.typography.pxToRem(theme.typography.fontSize), + whiteSpace: 'normal' + }, theme.breakpoints.up('md'), { + fontSize: theme.typography.pxToRem(theme.typography.fontSize - 1) + }), + labelWrapped: (0, _defineProperty3.default)({}, theme.breakpoints.down('sm'), { + fontSize: theme.typography.pxToRem(theme.typography.fontSize - 2) + }) + }; +}; + +var Tab = function (_React$Component) { + (0, _inherits3.default)(Tab, _React$Component); + + function Tab() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Tab); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Tab.__proto__ || (0, _getPrototypeOf2.default)(Tab)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + wrappedText: false + }, _this.handleChange = function (event) { + var _this$props = _this.props, + onChange = _this$props.onChange, + value = _this$props.value, + onClick = _this$props.onClick; + + + if (onChange) { + onChange(event, value); + } + + if (onClick) { + onClick(event); + } + }, _this.label = undefined, _this.checkTextWrap = function () { + if (_this.label) { + var wrappedText = _this.label.getClientRects().length > 1; + if (_this.state.wrappedText !== wrappedText) { + _this.setState({ wrappedText: wrappedText }); + } + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Tab, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.checkTextWrap(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps, prevState) { + if (this.state.wrappedText === prevState.wrappedText) { + /** + * At certain text and tab lengths, a larger font size may wrap to two lines while the smaller + * font size still only requires one line. This check will prevent an infinite render loop + * fron occurring in that scenario. + */ + this.checkTextWrap(); + } + } + }, { + key: 'render', + value: function render() { + var _this2 = this, + _classNames2; + + var _props = this.props, + classes = _props.classes, + classNameProp = _props.className, + disabled = _props.disabled, + fullWidth = _props.fullWidth, + icon = _props.icon, + indicator = _props.indicator, + labelProp = _props.label, + onChange = _props.onChange, + selected = _props.selected, + styleProp = _props.style, + textColor = _props.textColor, + value = _props.value, + other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'disabled', 'fullWidth', 'icon', 'indicator', 'label', 'onChange', 'selected', 'style', 'textColor', 'value']); + + + var label = void 0; + + if (labelProp !== undefined) { + label = _react2.default.createElement( + 'span', + { className: classes.labelContainer }, + _react2.default.createElement( + 'span', + { + className: (0, _classnames2.default)(classes.label, (0, _defineProperty3.default)({}, classes.labelWrapped, this.state.wrappedText)), + ref: function ref(node) { + _this2.label = node; + } + }, + labelProp + ) + ); + } + + var className = (0, _classnames2.default)(classes.root, classes['root' + (0, _helpers.capitalize)(textColor)], (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes['root' + (0, _helpers.capitalize)(textColor) + 'Disabled'], disabled), (0, _defineProperty3.default)(_classNames2, classes['root' + (0, _helpers.capitalize)(textColor) + 'Selected'], selected), (0, _defineProperty3.default)(_classNames2, classes.rootLabelIcon, icon && label), (0, _defineProperty3.default)(_classNames2, classes.fullWidth, fullWidth), _classNames2), classNameProp); + + var style = {}; + + if (textColor !== 'secondary' && textColor !== 'inherit') { + style.color = textColor; + } + + style = (0, _keys2.default)(style).length > 0 ? (0, _extends4.default)({}, style, styleProp) : styleProp; + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends4.default)({ + focusRipple: true, + className: className, + style: style, + role: 'tab', + 'aria-selected': selected, + disabled: disabled + }, other, { + onClick: this.handleChange + }), + _react2.default.createElement( + 'span', + { className: classes.wrapper }, + icon, + label + ), + indicator + ); + } + }]); + return Tab; +}(_react2.default.Component); + +Tab.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the tab will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * @ignore + */ + fullWidth: _propTypes2.default.bool, + /** + * The icon element. + */ + icon: _propTypes2.default.node, + /** + * @ignore + * For server side rendering consideration, we let the selected tab + * render the indicator. + */ + indicator: _propTypes2.default.node, + /** + * The label element. + */ + label: _propTypes2.default.node, + /** + * @ignore + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + onClick: _propTypes2.default.func, + /** + * @ignore + */ + selected: _propTypes2.default.bool, + /** + * @ignore + */ + style: _propTypes2.default.object, + /** + * @ignore + */ + textColor: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.oneOf(['secondary', 'primary', 'inherit'])]), + /** + * You can provide your own value. Otherwise, we fallback to the child position index. + */ + value: _propTypes2.default.any +} : {}; + +Tab.defaultProps = { + disabled: false, + textColor: 'inherit' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTab' })(Tab); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Tabs/TabIndicator.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + position: 'absolute', + height: 2, + bottom: 0, + width: '100%', + transition: theme.transitions.create(), + willChange: 'left, width' + }, + colorPrimary: { + backgroundColor: theme.palette.primary.main + }, + colorSecondary: { + backgroundColor: theme.palette.secondary.main + } + }; +}; + +/** + * @ignore - internal component. + */ +function TabIndicator(props) { + var classes = props.classes, + classNameProp = props.className, + color = props.color, + styleProp = props.style; + + var colorPredefined = ['primary', 'secondary'].indexOf(color) !== -1; + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes['color' + (0, _helpers.capitalize)(color)], colorPredefined), classNameProp); + + var style = colorPredefined ? styleProp : (0, _extends3.default)({}, styleProp, { + backgroundColor: color + }); + + return _react2.default.createElement('span', { className: className, style: style }); +} + +TabIndicator.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + * The color of the tab indicator. + */ + color: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.oneOf(['primary', 'secondary'])]), + /** + * @ignore + * The style of the root element. + */ + style: _propTypes2.default.object +} : {}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTabIndicator' })(TabIndicator); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Tabs/TabScrollButton.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _KeyboardArrowLeft = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowLeft.js"); + +var _KeyboardArrowLeft2 = _interopRequireDefault(_KeyboardArrowLeft); + +var _KeyboardArrowRight = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowRight.js"); + +var _KeyboardArrowRight2 = _interopRequireDefault(_KeyboardArrowRight); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); + +var _ButtonBase2 = _interopRequireDefault(_ButtonBase); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + color: 'inherit', + flex: '0 0 ' + theme.spacing.unit * 7 + 'px' + } + }; +}; + +/** + * @ignore - internal component. + */ + +var _ref = _react2.default.createElement(_KeyboardArrowLeft2.default, null); + +var _ref2 = _react2.default.createElement(_KeyboardArrowRight2.default, null); + +function TabScrollButton(props) { + var classes = props.classes, + classNameProp = props.className, + direction = props.direction, + onClick = props.onClick, + visible = props.visible, + other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'direction', 'onClick', 'visible']); + + + var className = (0, _classnames2.default)(classes.root, classNameProp); + + if (!visible) { + return _react2.default.createElement('div', { className: className }); + } + + return _react2.default.createElement( + _ButtonBase2.default, + (0, _extends3.default)({ className: className, onClick: onClick, tabIndex: -1 }, other), + direction === 'left' ? _ref : _ref2 + ); +} + +TabScrollButton.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Which direction should the button indicate? + */ + direction: _propTypes2.default.oneOf(['left', 'right']), + /** + * Callback to execute for button press. + */ + onClick: _propTypes2.default.func, + /** + * Should the button be present or just consume space. + */ + visible: _propTypes2.default.bool +} : {}; + +TabScrollButton.defaultProps = { + visible: true +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTabScrollButton' })(TabScrollButton); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Tabs/Tabs.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _isNan = __webpack_require__("./node_modules/babel-runtime/core-js/number/is-nan.js"); + +var _isNan2 = _interopRequireDefault(_isNan); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _reactScrollbarSize = __webpack_require__("./node_modules/react-scrollbar-size/index.js"); + +var _reactScrollbarSize2 = _interopRequireDefault(_reactScrollbarSize); + +var _normalizeScrollLeft = __webpack_require__("./node_modules/normalize-scroll-left/lib/main.js"); + +var _scroll = __webpack_require__("./node_modules/scroll/index.js"); + +var _scroll2 = _interopRequireDefault(_scroll); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _TabIndicator = __webpack_require__("./node_modules/material-ui/Tabs/TabIndicator.js"); + +var _TabIndicator2 = _interopRequireDefault(_TabIndicator); + +var _TabScrollButton = __webpack_require__("./node_modules/material-ui/Tabs/TabScrollButton.js"); + +var _TabScrollButton2 = _interopRequireDefault(_TabScrollButton); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + overflow: 'hidden', + minHeight: 48, + WebkitOverflowScrolling: 'touch' // Add iOS momentum scrolling. + }, + flexContainer: { + display: 'flex' + }, + scrollingContainer: { + position: 'relative', + display: 'inline-block', + flex: '1 1 auto', + whiteSpace: 'nowrap' + }, + fixed: { + overflowX: 'hidden', + width: '100%' + }, + scrollable: { + overflowX: 'scroll' + }, + centered: { + justifyContent: 'center' + }, + buttonAuto: (0, _defineProperty3.default)({}, theme.breakpoints.down('xs'), { + display: 'none' + }) + }; +}; + +var Tabs = function (_React$Component) { + (0, _inherits3.default)(Tabs, _React$Component); + + function Tabs() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Tabs); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Tabs.__proto__ || (0, _getPrototypeOf2.default)(Tabs)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + indicatorStyle: {}, + scrollerStyle: { + marginBottom: 0 + }, + showLeftScroll: false, + showRightScroll: false, + mounted: false + }, _this.getConditionalElements = function () { + var _this$props = _this.props, + classes = _this$props.classes, + buttonClassName = _this$props.buttonClassName, + scrollable = _this$props.scrollable, + scrollButtons = _this$props.scrollButtons, + TabScrollButtonProp = _this$props.TabScrollButton, + theme = _this$props.theme; + + var conditionalElements = {}; + conditionalElements.scrollbarSizeListener = scrollable ? _react2.default.createElement(_reactScrollbarSize2.default, { + onLoad: _this.handleScrollbarSizeChange, + onChange: _this.handleScrollbarSizeChange + }) : null; + + var showScrollButtons = scrollable && (scrollButtons === 'auto' || scrollButtons === 'on'); + + conditionalElements.scrollButtonLeft = showScrollButtons ? _react2.default.createElement(TabScrollButtonProp, { + direction: theme && theme.direction === 'rtl' ? 'right' : 'left', + onClick: _this.handleLeftScrollClick, + visible: _this.state.showLeftScroll, + className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.buttonAuto, scrollButtons === 'auto'), buttonClassName) + }) : null; + + conditionalElements.scrollButtonRight = showScrollButtons ? _react2.default.createElement(TabScrollButtonProp, { + direction: theme && theme.direction === 'rtl' ? 'left' : 'right', + onClick: _this.handleRightScrollClick, + visible: _this.state.showRightScroll, + className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.buttonAuto, scrollButtons === 'auto'), buttonClassName) + }) : null; + + return conditionalElements; + }, _this.getTabsMeta = function (value, direction) { + var tabsMeta = void 0; + if (_this.tabs) { + var rect = _this.tabs.getBoundingClientRect(); + // create a new object with ClientRect class props + scrollLeft + tabsMeta = { + clientWidth: _this.tabs ? _this.tabs.clientWidth : 0, + scrollLeft: _this.tabs ? _this.tabs.scrollLeft : 0, + scrollLeftNormalized: _this.tabs ? (0, _normalizeScrollLeft.getNormalizedScrollLeft)(_this.tabs, direction) : 0, + scrollWidth: _this.tabs ? _this.tabs.scrollWidth : 0, + left: rect.left, + right: rect.right + }; + } + + var tabMeta = void 0; + if (_this.tabs && value !== false) { + var children = _this.tabs.children[0].children; + + if (children.length > 0) { + var tab = children[_this.valueToIndex[value]]; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(tab, 'Material-UI: the value provided `' + value + '` is invalid') : void 0; + tabMeta = tab ? tab.getBoundingClientRect() : null; + } + } + return { tabsMeta: tabsMeta, tabMeta: tabMeta }; + }, _this.tabs = undefined, _this.valueToIndex = {}, _this.handleResize = (0, _debounce2.default)(function () { + _this.updateIndicatorState(_this.props); + _this.updateScrollButtonState(); + }, 166), _this.handleLeftScrollClick = function () { + if (_this.tabs) { + _this.moveTabsScroll(-_this.tabs.clientWidth); + } + }, _this.handleRightScrollClick = function () { + if (_this.tabs) { + _this.moveTabsScroll(_this.tabs.clientWidth); + } + }, _this.handleScrollbarSizeChange = function (_ref2) { + var scrollbarHeight = _ref2.scrollbarHeight; + + _this.setState({ + scrollerStyle: { + marginBottom: -scrollbarHeight + } + }); + }, _this.handleTabsScroll = (0, _debounce2.default)(function () { + _this.updateScrollButtonState(); + }, 166), _this.moveTabsScroll = function (delta) { + var theme = _this.props.theme; + + + if (_this.tabs) { + var multiplier = theme.direction === 'rtl' ? -1 : 1; + var nextScrollLeft = _this.tabs.scrollLeft + delta * multiplier; + // Fix for Edge + var invert = theme.direction === 'rtl' && (0, _normalizeScrollLeft.detectScrollType)() === 'reverse' ? -1 : 1; + _scroll2.default.left(_this.tabs, invert * nextScrollLeft); + } + }, _this.scrollSelectedIntoView = function () { + var _this$props2 = _this.props, + theme = _this$props2.theme, + value = _this$props2.value; + + var _this$getTabsMeta = _this.getTabsMeta(value, theme.direction), + tabsMeta = _this$getTabsMeta.tabsMeta, + tabMeta = _this$getTabsMeta.tabMeta; + + if (!tabMeta || !tabsMeta) { + return; + } + + if (tabMeta.left < tabsMeta.left) { + // left side of button is out of view + var nextScrollLeft = tabsMeta.scrollLeft + (tabMeta.left - tabsMeta.left); + _scroll2.default.left(_this.tabs, nextScrollLeft); + } else if (tabMeta.right > tabsMeta.right) { + // right side of button is out of view + var _nextScrollLeft = tabsMeta.scrollLeft + (tabMeta.right - tabsMeta.right); + _scroll2.default.left(_this.tabs, _nextScrollLeft); + } + }, _this.updateScrollButtonState = function () { + var _this$props3 = _this.props, + scrollable = _this$props3.scrollable, + scrollButtons = _this$props3.scrollButtons, + theme = _this$props3.theme; + + + if (_this.tabs && scrollable && scrollButtons !== 'off') { + var _this$tabs = _this.tabs, + scrollWidth = _this$tabs.scrollWidth, + clientWidth = _this$tabs.clientWidth; + + var scrollLeft = (0, _normalizeScrollLeft.getNormalizedScrollLeft)(_this.tabs, theme.direction); + + var showLeftScroll = theme.direction === 'rtl' ? scrollWidth > clientWidth + scrollLeft : scrollLeft > 0; + + var showRightScroll = theme.direction === 'rtl' ? scrollLeft > 0 : scrollWidth > clientWidth + scrollLeft; + + if (showLeftScroll !== _this.state.showLeftScroll || showRightScroll !== _this.state.showRightScroll) { + _this.setState({ showLeftScroll: showLeftScroll, showRightScroll: showRightScroll }); + } + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Tabs, [{ + key: 'componentDidMount', + value: function componentDidMount() { + // eslint-disable-next-line react/no-did-mount-set-state + this.setState({ mounted: true }); + this.updateIndicatorState(this.props); + this.updateScrollButtonState(); + + if (this.props.action) { + this.props.action({ + updateIndicator: this.handleResize + }); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps, prevState) { + this.updateScrollButtonState(); + + // The index might have changed at the same time. + // We need to check again the right indicator position. + this.updateIndicatorState(this.props); + + if (this.state.indicatorStyle !== prevState.indicatorStyle) { + this.scrollSelectedIntoView(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.handleResize.cancel(); + this.handleTabsScroll.cancel(); + } + }, { + key: 'updateIndicatorState', + value: function updateIndicatorState(props) { + var theme = props.theme, + value = props.value; + + var _getTabsMeta = this.getTabsMeta(value, theme.direction), + tabsMeta = _getTabsMeta.tabsMeta, + tabMeta = _getTabsMeta.tabMeta; + + var left = 0; + + if (tabMeta && tabsMeta) { + var correction = theme.direction === 'rtl' ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft; + left = tabMeta.left - tabsMeta.left + correction; + } + + var indicatorStyle = { + left: left, + // May be wrong until the font is loaded. + width: tabMeta ? tabMeta.width : 0 + }; + + if ((indicatorStyle.left !== this.state.indicatorStyle.left || indicatorStyle.width !== this.state.indicatorStyle.width) && !(0, _isNan2.default)(indicatorStyle.left) && !(0, _isNan2.default)(indicatorStyle.width)) { + this.setState({ indicatorStyle: indicatorStyle }); + } + } + }, { + key: 'render', + value: function render() { + var _classNames3, + _this2 = this; + + var _props = this.props, + action = _props.action, + buttonClassName = _props.buttonClassName, + centered = _props.centered, + childrenProp = _props.children, + classes = _props.classes, + classNameProp = _props.className, + fullWidth = _props.fullWidth, + indicatorClassName = _props.indicatorClassName, + indicatorColor = _props.indicatorColor, + onChange = _props.onChange, + scrollable = _props.scrollable, + scrollButtons = _props.scrollButtons, + TabScrollButtonProp = _props.TabScrollButton, + textColor = _props.textColor, + theme = _props.theme, + value = _props.value, + other = (0, _objectWithoutProperties3.default)(_props, ['action', 'buttonClassName', 'centered', 'children', 'classes', 'className', 'fullWidth', 'indicatorClassName', 'indicatorColor', 'onChange', 'scrollable', 'scrollButtons', 'TabScrollButton', 'textColor', 'theme', 'value']); + + + var className = (0, _classnames2.default)(classes.root, classNameProp); + var scrollerClassName = (0, _classnames2.default)(classes.scrollingContainer, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.fixed, !scrollable), (0, _defineProperty3.default)(_classNames3, classes.scrollable, scrollable), _classNames3)); + var tabItemContainerClassName = (0, _classnames2.default)(classes.flexContainer, (0, _defineProperty3.default)({}, classes.centered, centered && !scrollable)); + + var indicator = _react2.default.createElement(_TabIndicator2.default, { + style: this.state.indicatorStyle, + className: indicatorClassName, + color: indicatorColor + }); + + this.valueToIndex = {}; + var childIndex = 0; + var children = _react2.default.Children.map(childrenProp, function (child) { + if (!_react2.default.isValidElement(child)) { + return null; + } + + var childValue = child.props.value || childIndex; + _this2.valueToIndex[childValue] = childIndex; + var selected = childValue === value; + + childIndex += 1; + return _react2.default.cloneElement(child, { + fullWidth: fullWidth, + indicator: selected && !_this2.state.mounted && indicator, + selected: selected, + onChange: onChange, + textColor: textColor, + value: childValue + }); + }); + + var conditionalElements = this.getConditionalElements(); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), + conditionalElements.scrollbarSizeListener, + _react2.default.createElement( + 'div', + { className: classes.flexContainer }, + conditionalElements.scrollButtonLeft, + _react2.default.createElement( + 'div', + { + className: scrollerClassName, + style: this.state.scrollerStyle, + ref: function ref(node) { + _this2.tabs = node; + }, + role: 'tablist', + onScroll: this.handleTabsScroll + }, + _react2.default.createElement( + 'div', + { className: tabItemContainerClassName }, + children + ), + this.state.mounted && indicator + ), + conditionalElements.scrollButtonRight + ) + ); + } + }]); + return Tabs; +}(_react2.default.Component); + +Tabs.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Callback fired when the component mounts. + * This is useful when you want to trigger an action programmatically. + * It currently only supports `updateIndicator()` action. + * + * @param {object} actions This object contains all possible actions + * that can be triggered programmatically. + */ + action: _propTypes2.default.func, + /** + * The CSS class name of the scroll button elements. + */ + buttonClassName: _propTypes2.default.string, + /** + * If `true`, the tabs will be centered. + * This property is intended for large views. + */ + centered: _propTypes2.default.bool, + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, the tabs will grow to use all the available space. + * This property is intended for small views, like on mobile. + */ + fullWidth: _propTypes2.default.bool, + /** + * The CSS class name of the indicator element. + */ + indicatorClassName: _propTypes2.default.string, + /** + * Determines the color of the indicator. + */ + indicatorColor: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.oneOf(['secondary', 'primary'])]), + /** + * Callback fired when the value changes. + * + * @param {object} event The event source of the callback + * @param {number} value We default to the index of the child + */ + onChange: _propTypes2.default.func, + /** + * True invokes scrolling properties and allow for horizontally scrolling + * (or swiping) the tab bar. + */ + scrollable: _propTypes2.default.bool, + /** + * Determine behavior of scroll buttons when tabs are set to scroll + * `auto` will only present them on medium and larger viewports + * `on` will always present them + * `off` will never present them + */ + scrollButtons: _propTypes2.default.oneOf(['auto', 'on', 'off']), + /** + * The component used to render the scroll buttons. + */ + TabScrollButton: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * Determines the color of the `Tab`. + */ + textColor: _propTypes2.default.oneOf(['secondary', 'primary', 'inherit']), + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The value of the currently selected `Tab`. + * If you don't want any selected `Tab`, you can set this property to `false`. + */ + value: _propTypes2.default.any +} : {}; + +Tabs.defaultProps = { + centered: false, + fullWidth: false, + indicatorColor: 'secondary', + scrollable: false, + scrollButtons: 'auto', + TabScrollButton: _TabScrollButton2.default, + textColor: 'inherit' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTabs', withTheme: true })(Tabs); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Tabs/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Tabs = __webpack_require__("./node_modules/material-ui/Tabs/Tabs.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Tabs).default; + } +}); + +var _Tab = __webpack_require__("./node_modules/material-ui/Tabs/Tab.js"); + +Object.defineProperty(exports, 'Tab', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Tab).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/TextField/TextField.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _Input = __webpack_require__("./node_modules/material-ui/Input/index.js"); + +var _Input2 = _interopRequireDefault(_Input); + +var _FormControl = __webpack_require__("./node_modules/material-ui/Form/FormControl.js"); + +var _FormControl2 = _interopRequireDefault(_FormControl); + +var _FormHelperText = __webpack_require__("./node_modules/material-ui/Form/FormHelperText.js"); + +var _FormHelperText2 = _interopRequireDefault(_FormHelperText); + +var _Select = __webpack_require__("./node_modules/material-ui/Select/Select.js"); + +var _Select2 = _interopRequireDefault(_Select); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * The `TextField` is a convenience wrapper for the most common cases (80%). + * It cannot be all things to all people, otherwise the API would grow out of control. + * + * ## Advanced Configuration + * + * It's important to understand that the text field is a simple abstraction + * on top of the following components: + * - [FormControl](/api/form-control) + * - [InputLabel](/api/input-label) + * - [Input](/api/input) + * - [FormHelperText](/api/form-helper-text) + * + * If you wish to alter the properties applied to the native input, you can do as follow: + * + * ```jsx + * const inputProps = { + * step: 300, + * }; + * + * return ; + * ``` + * + * For advanced cases, please look at the source of TextField by clicking on the + * "Edit this page" button above. Consider either: + * - using the upper case props for passing values direct to the components. + * - using the underlying components directly as shown in the demos. + */ +function TextField(props) { + var autoComplete = props.autoComplete, + autoFocus = props.autoFocus, + children = props.children, + className = props.className, + defaultValue = props.defaultValue, + disabled = props.disabled, + error = props.error, + FormHelperTextProps = props.FormHelperTextProps, + fullWidth = props.fullWidth, + helperText = props.helperText, + helperTextClassName = props.helperTextClassName, + id = props.id, + InputLabelProps = props.InputLabelProps, + inputProps = props.inputProps, + InputProps = props.InputProps, + inputRef = props.inputRef, + label = props.label, + labelClassName = props.labelClassName, + multiline = props.multiline, + name = props.name, + onChange = props.onChange, + placeholder = props.placeholder, + required = props.required, + rows = props.rows, + rowsMax = props.rowsMax, + select = props.select, + SelectProps = props.SelectProps, + type = props.type, + value = props.value, + other = (0, _objectWithoutProperties3.default)(props, ['autoComplete', 'autoFocus', 'children', 'className', 'defaultValue', 'disabled', 'error', 'FormHelperTextProps', 'fullWidth', 'helperText', 'helperTextClassName', 'id', 'InputLabelProps', 'inputProps', 'InputProps', 'inputRef', 'label', 'labelClassName', 'multiline', 'name', 'onChange', 'placeholder', 'required', 'rows', 'rowsMax', 'select', 'SelectProps', 'type', 'value']); + + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!select || Boolean(children), 'Material-UI: `children` must be passed when using the `TextField` component with `select`.') : void 0; + + var helperTextId = helperText && id ? id + '-helper-text' : undefined; + var InputComponent = _react2.default.createElement(_Input2.default, (0, _extends3.default)({ + autoComplete: autoComplete, + autoFocus: autoFocus, + defaultValue: defaultValue, + disabled: disabled, + fullWidth: fullWidth, + multiline: multiline, + name: name, + rows: rows, + rowsMax: rowsMax, + type: type, + value: value, + id: id, + inputRef: inputRef, + onChange: onChange, + placeholder: placeholder, + inputProps: inputProps + }, InputProps)); + + return _react2.default.createElement( + _FormControl2.default, + (0, _extends3.default)({ + 'aria-describedby': helperTextId, + className: className, + error: error, + fullWidth: fullWidth, + required: required + }, other), + label && _react2.default.createElement( + _Input.InputLabel, + (0, _extends3.default)({ htmlFor: id, className: labelClassName }, InputLabelProps), + label + ), + select ? _react2.default.createElement( + _Select2.default, + (0, _extends3.default)({ value: value, input: InputComponent }, SelectProps), + children + ) : InputComponent, + helperText && _react2.default.createElement( + _FormHelperText2.default, + (0, _extends3.default)({ className: helperTextClassName, id: helperTextId }, FormHelperTextProps), + helperText + ) + ); +} // @inheritedComponent FormControl + +TextField.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * This property helps users to fill forms faster, especially on mobile devices. + * The name can be confusing, as it's more like an autofill. + * You can learn more about it here: + * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill + */ + autoComplete: _propTypes2.default.string, + /** + * If `true`, the input will be focused during the first mount. + */ + autoFocus: _propTypes2.default.bool, + /** + * @ignore + */ + children: _propTypes2.default.node, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The default value of the `Input` element. + */ + defaultValue: _propTypes2.default.string, + /** + * If `true`, the input will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the label will be displayed in an error state. + */ + error: _propTypes2.default.bool, + /** + * Properties applied to the `FormHelperText` element. + */ + FormHelperTextProps: _propTypes2.default.object, + /** + * If `true`, the input will take up the full width of its container. + */ + fullWidth: _propTypes2.default.bool, + /** + * The helper text content. + */ + helperText: _propTypes2.default.node, + /** + * The CSS class name of the helper text element. + */ + helperTextClassName: _propTypes2.default.string, + /** + * The id of the `input` element. + * Use that property to make `label` and `helperText` accessible for screen readers. + */ + id: _propTypes2.default.string, + /** + * Properties applied to the `InputLabel` element. + */ + InputLabelProps: _propTypes2.default.object, + /** + * Properties applied to the `Input` element. + */ + InputProps: _propTypes2.default.object, + /** + * Properties applied to the native `input` element. + */ + inputProps: _propTypes2.default.object, + /** + * Use that property to pass a ref callback to the native input component. + */ + inputRef: _propTypes2.default.func, + /** + * The label content. + */ + label: _propTypes2.default.node, + /** + * The CSS class name of the label element. + */ + labelClassName: _propTypes2.default.string, + /** + * If `dense` or `normal`, will adjust vertical spacing of this and contained components. + */ + margin: _propTypes2.default.oneOf(['none', 'dense', 'normal']), + /** + * If `true`, a textarea element will be rendered instead of an input. + */ + multiline: _propTypes2.default.bool, + /** + * Name attribute of the `input` element. + */ + name: _propTypes2.default.string, + /** + * Callback fired when the value is changed. + * + * @param {object} event The event source of the callback + */ + onChange: _propTypes2.default.func, + /** + * The short hint displayed in the input before the user enters a value. + */ + placeholder: _propTypes2.default.string, + /** + * If `true`, the label is displayed as required. + */ + required: _propTypes2.default.bool, + /** + * Number of rows to display when multiline option is set to true. + */ + rows: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * Maximum number of rows to display when multiline option is set to true. + */ + rowsMax: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + /** + * Render a `Select` element while passing the `Input` element to `Select` as `input` parameter. + * If this option is set you must pass the options of the select as children. + */ + select: _propTypes2.default.bool, + /** + * Properties applied to the `Select` element. + */ + SelectProps: _propTypes2.default.object, + /** + * Type attribute of the `Input` element. It should be a valid HTML5 input type. + */ + type: _propTypes2.default.string, + /** + * The value of the `Input` element, required for a controlled component. + */ + value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) +} : {}; + +TextField.defaultProps = { + required: false, + select: false +}; + +exports.default = TextField; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/TextField/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _TextField = __webpack_require__("./node_modules/material-ui/TextField/TextField.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TextField).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Toolbar/Toolbar.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: (0, _extends3.default)({ + position: 'relative', + display: 'flex', + alignItems: 'center' + }, theme.mixins.toolbar), + gutters: theme.mixins.gutters({}) + }; +}; + +function Toolbar(props) { + var children = props.children, + classes = props.classes, + classNameProp = props.className, + disableGutters = props.disableGutters, + other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'disableGutters']); + + + var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.gutters, !disableGutters), classNameProp); + + return _react2.default.createElement( + 'div', + (0, _extends3.default)({ className: className }, other), + children + ); +} + +Toolbar.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * If `true`, disables gutter padding. + */ + disableGutters: _propTypes2.default.bool +} : {}; + +Toolbar.defaultProps = { + disableGutters: false +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiToolbar' })(Toolbar); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Toolbar/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Toolbar = __webpack_require__("./node_modules/material-ui/Toolbar/Toolbar.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Toolbar).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Tooltip/Tooltip.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _reactPopper = __webpack_require__("./node_modules/react-popper/lib/react-popper.js"); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +var _RefHolder = __webpack_require__("./node_modules/material-ui/internal/RefHolder.js"); + +var _RefHolder2 = _interopRequireDefault(_RefHolder); + +var _common = __webpack_require__("./node_modules/material-ui/colors/common.js"); + +var _common2 = _interopRequireDefault(_common); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* eslint-disable react/no-multi-comp, no-underscore-dangle */ + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'inline', + flexDirection: 'inherit' // Makes the wrapper more transparent. + }, + popper: { + zIndex: theme.zIndex.tooltip + }, + popperClose: { + pointerEvents: 'none' + }, + tooltip: (0, _defineProperty3.default)({ + backgroundColor: theme.palette.grey[700], + borderRadius: 2, + color: _common2.default.white, + fontFamily: theme.typography.fontFamily, + opacity: 0, + transform: 'scale(0)', + transition: theme.transitions.create(['opacity', 'transform'], { + duration: theme.transitions.duration.shortest + }), + minHeight: 0, + padding: theme.spacing.unit, + fontSize: theme.typography.pxToRem(14), + lineHeight: theme.typography.round(16 / 14) + 'em' + }, theme.breakpoints.up('sm'), { + padding: theme.spacing.unit / 2 + 'px ' + theme.spacing.unit + 'px', + fontSize: theme.typography.pxToRem(10), + lineHeight: theme.typography.round(14 / 10) + 'em' + }), + tooltipLeft: (0, _defineProperty3.default)({ + transformOrigin: 'right center', + margin: '0 ' + theme.spacing.unit * 3 + 'px' + }, theme.breakpoints.up('sm'), { + margin: '0 14px' + }), + tooltipRight: (0, _defineProperty3.default)({ + transformOrigin: 'left center', + margin: '0 ' + theme.spacing.unit * 3 + 'px' + }, theme.breakpoints.up('sm'), { + margin: '0 14px' + }), + tooltipTop: (0, _defineProperty3.default)({ + transformOrigin: 'center bottom', + margin: theme.spacing.unit * 3 + 'px 0' + }, theme.breakpoints.up('sm'), { + margin: '14px 0' + }), + tooltipBottom: (0, _defineProperty3.default)({ + transformOrigin: 'center top', + margin: theme.spacing.unit * 3 + 'px 0' + }, theme.breakpoints.up('sm'), { + margin: '14px 0' + }), + tooltipOpen: { + opacity: 0.9, + transform: 'scale(1)' + } + }; +}; + +function flipPlacement(placement) { + switch (placement) { + case 'bottom-end': + return 'bottom-start'; + case 'bottom-start': + return 'bottom-end'; + case 'top-end': + return 'top-start'; + case 'top-start': + return 'top-end'; + default: + return placement; + } +} + +var Tooltip = function (_React$Component) { + (0, _inherits3.default)(Tooltip, _React$Component); + + function Tooltip() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Tooltip); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Tooltip.__proto__ || (0, _getPrototypeOf2.default)(Tooltip)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this.enterTimer = null, _this.leaveTimer = null, _this.touchTimer = null, _this.isControlled = null, _this.popper = null, _this.children = null, _this.ignoreNonTouchEvents = false, _this.handleResize = (0, _debounce2.default)(function () { + if (_this.popper) { + _this.popper._popper.scheduleUpdate(); + } + }, 166), _this.handleRequestOpen = function (event) { + var children = _this.props.children; + + var childrenProps = children.props; + + if (event.type === 'focus' && childrenProps.onFocus) { + childrenProps.onFocus(event); + } + + if (event.type === 'mouseover' && childrenProps.onMouseOver) { + childrenProps.onMouseOver(event); + } + + if (_this.ignoreNonTouchEvents && event.type !== 'touchstart') { + return; + } + + clearTimeout(_this.leaveTimer); + if (_this.props.enterDelay > 0) { + _this.leaveTimer = setTimeout(function () { + _this.requestOpen(event); + }, _this.props.enterDelay); + } else { + _this.requestOpen(event); + } + }, _this.requestOpen = function (event) { + if (!_this.isControlled) { + _this.setState({ open: true }); + } + + if (_this.props.onOpen) { + _this.props.onOpen(event, true); + } + }, _this.handleClose = function (event) { + var children = _this.props.children; + + var childrenProps = children.props; + + if (event.type === 'blur' && childrenProps.onBlur) { + childrenProps.onBlur(event); + } + + if (event.type === 'mouseleave' && childrenProps.onMouseLeave) { + childrenProps.onMouseLeave(event); + } + + clearTimeout(_this.leaveTimer); + if (_this.props.leaveDelay) { + _this.leaveTimer = setTimeout(function () { + _this.requestClose(event); + }, _this.props.leaveDelay); + } else { + _this.requestClose(event); + } + }, _this.requestClose = function (event) { + _this.ignoreNonTouchEvents = false; + + if (!_this.isControlled) { + _this.setState({ open: false }); + } + + if (_this.props.onClose) { + _this.props.onClose(event, false); + } + }, _this.handleTouchStart = function (event) { + _this.ignoreNonTouchEvents = true; + var children = _this.props.children; + + var childrenProps = children.props; + + if (childrenProps.onTouchStart) { + childrenProps.onTouchStart(event); + } + + clearTimeout(_this.touchTimer); + event.persist(); + _this.touchTimer = setTimeout(function () { + _this.handleRequestOpen(event); + }, 1e3); + }, _this.handleTouchEnd = function (event) { + var children = _this.props.children; + + var childrenProps = children.props; + + if (childrenProps.onTouchEnd) { + childrenProps.onTouchEnd(event); + } + + clearTimeout(_this.touchTimer); + clearTimeout(_this.leaveTimer); + event.persist(); + _this.leaveTimer = setTimeout(function () { + _this.requestClose(event); + }, 1500 + _this.props.leaveDelay); + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Tooltip, [{ + key: 'componentWillMount', + value: function componentWillMount() { + var props = this.props; + + + this.isControlled = props.open != null; + + if (!this.isControlled) { + // not controlled, use internal state + this.setState({ + open: false + }); + } + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!this.children || !this.children.disabled || !this.children.tagName.toLowerCase() === 'button', ['Material-UI: you are providing a disabled button children to the Tooltip component.', 'A disabled element do not fire events.', 'But the Tooltip needs to listen to the children element events to display the title.', '', 'Place a `div` over top of the element.'].join('\n')) : void 0; + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearTimeout(this.enterTimer); + clearTimeout(this.leaveTimer); + this.handleResize.cancel(); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + childrenProp = _props.children, + classes = _props.classes, + className = _props.className, + disableTriggerFocus = _props.disableTriggerFocus, + disableTriggerHover = _props.disableTriggerHover, + disableTriggerTouch = _props.disableTriggerTouch, + enterDelay = _props.enterDelay, + id = _props.id, + leaveDelay = _props.leaveDelay, + onClose = _props.onClose, + onOpen = _props.onOpen, + openProp = _props.open, + rawPlacement = _props.placement, + _props$PopperProps = _props.PopperProps; + _props$PopperProps = _props$PopperProps === undefined ? {} : _props$PopperProps; + var PopperClassName = _props$PopperProps.PopperClassName, + PopperOther = (0, _objectWithoutProperties3.default)(_props$PopperProps, ['PopperClassName']), + theme = _props.theme, + title = _props.title, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'disableTriggerFocus', 'disableTriggerHover', 'disableTriggerTouch', 'enterDelay', 'id', 'leaveDelay', 'onClose', 'onOpen', 'open', 'placement', 'PopperProps', 'theme', 'title']); + + + var placement = theme.direction === 'rtl' ? flipPlacement(rawPlacement) : rawPlacement; + var open = this.isControlled ? openProp : this.state.open; + var childrenProps = {}; + + if (title === '') { + open = false; + } + + childrenProps['aria-describedby'] = id; + + if (!disableTriggerTouch) { + childrenProps.onTouchStart = this.handleTouchStart; + childrenProps.onTouchEnd = this.handleTouchEnd; + } + + if (!disableTriggerHover) { + childrenProps.onMouseOver = this.handleRequestOpen; + childrenProps.onMouseLeave = this.handleClose; + } + + if (!disableTriggerFocus) { + childrenProps.onFocus = this.handleRequestOpen; + childrenProps.onBlur = this.handleClose; + } + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!childrenProp.props.title, ['Material-UI: you have been providing a `title` property to the child of .', 'Remove this title property `' + childrenProp.props.title + '` or the Tooltip component.'].join('\n')) : void 0; + + return _react2.default.createElement( + _reactEventListener2.default, + { target: 'window', onResize: this.handleResize }, + _react2.default.createElement( + _reactPopper.Manager, + (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), + _react2.default.createElement( + _reactPopper.Target, + null, + function (_ref2) { + var targetProps = _ref2.targetProps; + return _react2.default.createElement( + _RefHolder2.default, + { + ref: function ref(node) { + _this2.children = (0, _reactDom.findDOMNode)(node); + targetProps.ref(_this2.children); + } + }, + _react2.default.cloneElement(childrenProp, childrenProps) + ); + } + ), + _react2.default.createElement( + _reactPopper.Popper, + (0, _extends3.default)({ + placement: placement, + eventsEnabled: open, + className: (0, _classnames2.default)(classes.popper, (0, _defineProperty3.default)({}, classes.popperClose, !open), PopperClassName) + }, PopperOther, { + ref: function ref(node) { + _this2.popper = node; + } + }), + function (_ref3) { + var popperProps = _ref3.popperProps, + restProps = _ref3.restProps; + + var actualPlacement = popperProps['data-placement'] || placement; + return _react2.default.createElement( + 'div', + (0, _extends3.default)({}, popperProps, restProps, { + style: (0, _extends3.default)({}, popperProps.style, { + top: popperProps.style.top || 0, + left: popperProps.style.left || 0 + }, restProps.style) + }), + _react2.default.createElement( + 'div', + { + id: id, + role: 'tooltip', + 'aria-hidden': !open, + className: (0, _classnames2.default)(classes.tooltip, (0, _defineProperty3.default)({}, classes.tooltipOpen, open), classes['tooltip' + (0, _helpers.capitalize)(actualPlacement.split('-')[0])]) + }, + title + ) + ); + } + ) + ) + ); + } + }]); + return Tooltip; +}(_react2.default.Component); + +Tooltip.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Tooltip reference element. + */ + children: _propTypes2.default.element.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * Do not respond to focus events. + */ + disableTriggerFocus: _propTypes2.default.bool, + /** + * Do not respond to hover events. + */ + disableTriggerHover: _propTypes2.default.bool, + /** + * Do not respond to long press touch events. + */ + disableTriggerTouch: _propTypes2.default.bool, + /** + * The number of milliseconds to wait before showing the tooltip. + */ + enterDelay: _propTypes2.default.number, + /** + * The relationship between the tooltip and the wrapper component is not clear from the DOM. + * By providing this property, we can use aria-describedby to solve the accessibility issue. + */ + id: _propTypes2.default.string, + /** + * The number of milliseconds to wait before hidding the tooltip. + */ + leaveDelay: _propTypes2.default.number, + /** + * Callback fired when the tooltip requests to be closed. + * + * @param {object} event The event source of the callback + */ + onClose: _propTypes2.default.func, + /** + * Callback fired when the tooltip requests to be open. + * + * @param {object} event The event source of the callback + */ + onOpen: _propTypes2.default.func, + /** + * If `true`, the tooltip is shown. + */ + open: _propTypes2.default.bool, + /** + * Tooltip placement + */ + placement: _propTypes2.default.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']), + /** + * Properties applied to the `Popper` element. + */ + PopperProps: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * Tooltip title. Zero-length titles string are never displayed. + */ + title: _propTypes2.default.node.isRequired +} : {}; + +Tooltip.defaultProps = { + disableTriggerFocus: false, + disableTriggerHover: false, + disableTriggerTouch: false, + enterDelay: 0, + leaveDelay: 0, + placement: 'bottom' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTooltip', withTheme: true })(Tooltip); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Tooltip/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Tooltip = __webpack_require__("./node_modules/material-ui/Tooltip/Tooltip.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Tooltip).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/Typography/Typography.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + root: { + display: 'block', + margin: 0 + }, + display4: theme.typography.display4, + display3: theme.typography.display3, + display2: theme.typography.display2, + display1: theme.typography.display1, + headline: theme.typography.headline, + title: theme.typography.title, + subheading: theme.typography.subheading, + body2: theme.typography.body2, + body1: theme.typography.body1, + caption: theme.typography.caption, + button: theme.typography.button, + alignLeft: { + textAlign: 'left' + }, + alignCenter: { + textAlign: 'center' + }, + alignRight: { + textAlign: 'right' + }, + alignJustify: { + textAlign: 'justify' + }, + noWrap: { + overflow: 'hidden', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap' + }, + gutterBottom: { + marginBottom: '0.35em' + }, + paragraph: { + marginBottom: theme.spacing.unit * 2 + }, + colorInherit: { + color: 'inherit' + }, + colorPrimary: { + color: theme.palette.primary.main + }, + colorSecondary: { + color: theme.palette.secondary.main + }, + colorTextSecondary: { + color: theme.palette.text.secondary + }, + colorError: { + color: theme.palette.error.main + } + }; +}; + +function Typography(props) { + var _classNames; + + var align = props.align, + classes = props.classes, + classNameProp = props.className, + componentProp = props.component, + color = props.color, + gutterBottom = props.gutterBottom, + headlineMapping = props.headlineMapping, + noWrap = props.noWrap, + paragraph = props.paragraph, + variant = props.variant, + other = (0, _objectWithoutProperties3.default)(props, ['align', 'classes', 'className', 'component', 'color', 'gutterBottom', 'headlineMapping', 'noWrap', 'paragraph', 'variant']); + + + var className = (0, _classnames2.default)(classes.root, classes[variant], (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default'), (0, _defineProperty3.default)(_classNames, classes.noWrap, noWrap), (0, _defineProperty3.default)(_classNames, classes.gutterBottom, gutterBottom), (0, _defineProperty3.default)(_classNames, classes.paragraph, paragraph), (0, _defineProperty3.default)(_classNames, classes['align' + (0, _helpers.capitalize)(align)], align !== 'inherit'), _classNames), classNameProp); + + var Component = componentProp || (paragraph ? 'p' : headlineMapping[variant]) || 'span'; + + return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); +} + +Typography.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Set the text-align on the component. + */ + align: _propTypes2.default.oneOf(['inherit', 'left', 'center', 'right', 'justify']), + /** + * The content of the component. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: _propTypes2.default.oneOf(['inherit', 'primary', 'textSecondary', 'secondary', 'error', 'default']), + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + * By default, it maps the variant to a good default headline component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the text will have a bottom margin. + */ + gutterBottom: _propTypes2.default.bool, + /** + * We are empirically mapping the variant property to a range of different DOM element types. + * For instance, h1 to h6. If you wish to change that mapping, you can provide your own. + * Alternatively, you can use the `component` property. + */ + headlineMapping: _propTypes2.default.object, + /** + * If `true`, the text will not wrap, but instead will truncate with an ellipsis. + */ + noWrap: _propTypes2.default.bool, + /** + * If `true`, the text will have a bottom margin. + */ + paragraph: _propTypes2.default.bool, + /** + * Applies the theme typography styles. + */ + variant: _propTypes2.default.oneOf(['display4', 'display3', 'display2', 'display1', 'headline', 'title', 'subheading', 'body2', 'body1', 'caption', 'button']) +} : {}; + +Typography.defaultProps = { + align: 'inherit', + color: 'default', + gutterBottom: false, + headlineMapping: { + display4: 'h1', + display3: 'h1', + display2: 'h1', + display1: 'h1', + headline: 'h1', + title: 'h2', + subheading: 'h3', + body2: 'aside', + body1: 'p' + }, + noWrap: false, + paragraph: false, + variant: 'body1' +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTypography' })(Typography); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/Typography/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Typography = __webpack_require__("./node_modules/material-ui/Typography/Typography.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Typography).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/colors/amber.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var amber = { + 50: '#fff8e1', + 100: '#ffecb3', + 200: '#ffe082', + 300: '#ffd54f', + 400: '#ffca28', + 500: '#ffc107', + 600: '#ffb300', + 700: '#ffa000', + 800: '#ff8f00', + 900: '#ff6f00', + A100: '#ffe57f', + A200: '#ffd740', + A400: '#ffc400', + A700: '#ffab00' +}; + +exports.default = amber; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/blue.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var blue = { + 50: '#e3f2fd', + 100: '#bbdefb', + 200: '#90caf9', + 300: '#64b5f6', + 400: '#42a5f5', + 500: '#2196f3', + 600: '#1e88e5', + 700: '#1976d2', + 800: '#1565c0', + 900: '#0d47a1', + A100: '#82b1ff', + A200: '#448aff', + A400: '#2979ff', + A700: '#2962ff' +}; + +exports.default = blue; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/blueGrey.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var blueGrey = { + 50: '#eceff1', + 100: '#cfd8dc', + 200: '#b0bec5', + 300: '#90a4ae', + 400: '#78909c', + 500: '#607d8b', + 600: '#546e7a', + 700: '#455a64', + 800: '#37474f', + 900: '#263238', + A100: '#cfd8dc', + A200: '#b0bec5', + A400: '#78909c', + A700: '#455a64' +}; + +exports.default = blueGrey; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/brown.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var brown = { + 50: '#efebe9', + 100: '#d7ccc8', + 200: '#bcaaa4', + 300: '#a1887f', + 400: '#8d6e63', + 500: '#795548', + 600: '#6d4c41', + 700: '#5d4037', + 800: '#4e342e', + 900: '#3e2723', + A100: '#d7ccc8', + A200: '#bcaaa4', + A400: '#8d6e63', + A700: '#5d4037' +}; + +exports.default = brown; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/common.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var common = { + black: '#000', + white: '#fff' +}; + +exports.default = common; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/cyan.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var cyan = { + 50: '#e0f7fa', + 100: '#b2ebf2', + 200: '#80deea', + 300: '#4dd0e1', + 400: '#26c6da', + 500: '#00bcd4', + 600: '#00acc1', + 700: '#0097a7', + 800: '#00838f', + 900: '#006064', + A100: '#84ffff', + A200: '#18ffff', + A400: '#00e5ff', + A700: '#00b8d4' +}; + +exports.default = cyan; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/deepOrange.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var deepOrange = { + 50: '#fbe9e7', + 100: '#ffccbc', + 200: '#ffab91', + 300: '#ff8a65', + 400: '#ff7043', + 500: '#ff5722', + 600: '#f4511e', + 700: '#e64a19', + 800: '#d84315', + 900: '#bf360c', + A100: '#ff9e80', + A200: '#ff6e40', + A400: '#ff3d00', + A700: '#dd2c00' +}; + +exports.default = deepOrange; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/deepPurple.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var deepPurple = { + 50: '#ede7f6', + 100: '#d1c4e9', + 200: '#b39ddb', + 300: '#9575cd', + 400: '#7e57c2', + 500: '#673ab7', + 600: '#5e35b1', + 700: '#512da8', + 800: '#4527a0', + 900: '#311b92', + A100: '#b388ff', + A200: '#7c4dff', + A400: '#651fff', + A700: '#6200ea' +}; + +exports.default = deepPurple; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/green.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var green = { + 50: '#e8f5e9', + 100: '#c8e6c9', + 200: '#a5d6a7', + 300: '#81c784', + 400: '#66bb6a', + 500: '#4caf50', + 600: '#43a047', + 700: '#388e3c', + 800: '#2e7d32', + 900: '#1b5e20', + A100: '#b9f6ca', + A200: '#69f0ae', + A400: '#00e676', + A700: '#00c853' +}; + +exports.default = green; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/grey.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var grey = { + 50: '#fafafa', + 100: '#f5f5f5', + 200: '#eeeeee', + 300: '#e0e0e0', + 400: '#bdbdbd', + 500: '#9e9e9e', + 600: '#757575', + 700: '#616161', + 800: '#424242', + 900: '#212121', + A100: '#d5d5d5', + A200: '#aaaaaa', + A400: '#303030', + A700: '#616161' +}; + +exports.default = grey; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _common = __webpack_require__("./node_modules/material-ui/colors/common.js"); + +Object.defineProperty(exports, 'common', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_common).default; + } +}); + +var _red = __webpack_require__("./node_modules/material-ui/colors/red.js"); + +Object.defineProperty(exports, 'red', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_red).default; + } +}); + +var _pink = __webpack_require__("./node_modules/material-ui/colors/pink.js"); + +Object.defineProperty(exports, 'pink', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_pink).default; + } +}); + +var _purple = __webpack_require__("./node_modules/material-ui/colors/purple.js"); + +Object.defineProperty(exports, 'purple', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_purple).default; + } +}); + +var _deepPurple = __webpack_require__("./node_modules/material-ui/colors/deepPurple.js"); + +Object.defineProperty(exports, 'deepPurple', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_deepPurple).default; + } +}); + +var _indigo = __webpack_require__("./node_modules/material-ui/colors/indigo.js"); + +Object.defineProperty(exports, 'indigo', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_indigo).default; + } +}); + +var _blue = __webpack_require__("./node_modules/material-ui/colors/blue.js"); + +Object.defineProperty(exports, 'blue', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_blue).default; + } +}); + +var _lightBlue = __webpack_require__("./node_modules/material-ui/colors/lightBlue.js"); + +Object.defineProperty(exports, 'lightBlue', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_lightBlue).default; + } +}); + +var _cyan = __webpack_require__("./node_modules/material-ui/colors/cyan.js"); + +Object.defineProperty(exports, 'cyan', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_cyan).default; + } +}); + +var _teal = __webpack_require__("./node_modules/material-ui/colors/teal.js"); + +Object.defineProperty(exports, 'teal', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_teal).default; + } +}); + +var _green = __webpack_require__("./node_modules/material-ui/colors/green.js"); + +Object.defineProperty(exports, 'green', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_green).default; + } +}); + +var _lightGreen = __webpack_require__("./node_modules/material-ui/colors/lightGreen.js"); + +Object.defineProperty(exports, 'lightGreen', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_lightGreen).default; + } +}); + +var _lime = __webpack_require__("./node_modules/material-ui/colors/lime.js"); + +Object.defineProperty(exports, 'lime', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_lime).default; + } +}); + +var _yellow = __webpack_require__("./node_modules/material-ui/colors/yellow.js"); + +Object.defineProperty(exports, 'yellow', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_yellow).default; + } +}); + +var _amber = __webpack_require__("./node_modules/material-ui/colors/amber.js"); + +Object.defineProperty(exports, 'amber', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_amber).default; + } +}); + +var _orange = __webpack_require__("./node_modules/material-ui/colors/orange.js"); + +Object.defineProperty(exports, 'orange', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_orange).default; + } +}); + +var _deepOrange = __webpack_require__("./node_modules/material-ui/colors/deepOrange.js"); + +Object.defineProperty(exports, 'deepOrange', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_deepOrange).default; + } +}); + +var _brown = __webpack_require__("./node_modules/material-ui/colors/brown.js"); + +Object.defineProperty(exports, 'brown', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_brown).default; + } +}); + +var _grey = __webpack_require__("./node_modules/material-ui/colors/grey.js"); + +Object.defineProperty(exports, 'grey', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_grey).default; + } +}); + +var _blueGrey = __webpack_require__("./node_modules/material-ui/colors/blueGrey.js"); + +Object.defineProperty(exports, 'blueGrey', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_blueGrey).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/colors/indigo.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var indigo = { + 50: '#e8eaf6', + 100: '#c5cae9', + 200: '#9fa8da', + 300: '#7986cb', + 400: '#5c6bc0', + 500: '#3f51b5', + 600: '#3949ab', + 700: '#303f9f', + 800: '#283593', + 900: '#1a237e', + A100: '#8c9eff', + A200: '#536dfe', + A400: '#3d5afe', + A700: '#304ffe' +}; + +exports.default = indigo; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/lightBlue.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var lightBlue = { + 50: '#e1f5fe', + 100: '#b3e5fc', + 200: '#81d4fa', + 300: '#4fc3f7', + 400: '#29b6f6', + 500: '#03a9f4', + 600: '#039be5', + 700: '#0288d1', + 800: '#0277bd', + 900: '#01579b', + A100: '#80d8ff', + A200: '#40c4ff', + A400: '#00b0ff', + A700: '#0091ea' +}; + +exports.default = lightBlue; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/lightGreen.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var lightGreen = { + 50: '#f1f8e9', + 100: '#dcedc8', + 200: '#c5e1a5', + 300: '#aed581', + 400: '#9ccc65', + 500: '#8bc34a', + 600: '#7cb342', + 700: '#689f38', + 800: '#558b2f', + 900: '#33691e', + A100: '#ccff90', + A200: '#b2ff59', + A400: '#76ff03', + A700: '#64dd17' +}; + +exports.default = lightGreen; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/lime.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var lime = { + 50: '#f9fbe7', + 100: '#f0f4c3', + 200: '#e6ee9c', + 300: '#dce775', + 400: '#d4e157', + 500: '#cddc39', + 600: '#c0ca33', + 700: '#afb42b', + 800: '#9e9d24', + 900: '#827717', + A100: '#f4ff81', + A200: '#eeff41', + A400: '#c6ff00', + A700: '#aeea00' +}; + +exports.default = lime; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/orange.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var orange = { + 50: '#fff3e0', + 100: '#ffe0b2', + 200: '#ffcc80', + 300: '#ffb74d', + 400: '#ffa726', + 500: '#ff9800', + 600: '#fb8c00', + 700: '#f57c00', + 800: '#ef6c00', + 900: '#e65100', + A100: '#ffd180', + A200: '#ffab40', + A400: '#ff9100', + A700: '#ff6d00' +}; + +exports.default = orange; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/pink.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var pink = { + 50: '#fce4ec', + 100: '#f8bbd0', + 200: '#f48fb1', + 300: '#f06292', + 400: '#ec407a', + 500: '#e91e63', + 600: '#d81b60', + 700: '#c2185b', + 800: '#ad1457', + 900: '#880e4f', + A100: '#ff80ab', + A200: '#ff4081', + A400: '#f50057', + A700: '#c51162' +}; + +exports.default = pink; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/purple.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var purple = { + 50: '#f3e5f5', + 100: '#e1bee7', + 200: '#ce93d8', + 300: '#ba68c8', + 400: '#ab47bc', + 500: '#9c27b0', + 600: '#8e24aa', + 700: '#7b1fa2', + 800: '#6a1b9a', + 900: '#4a148c', + A100: '#ea80fc', + A200: '#e040fb', + A400: '#d500f9', + A700: '#aa00ff' +}; + +exports.default = purple; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/red.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var red = { + 50: '#ffebee', + 100: '#ffcdd2', + 200: '#ef9a9a', + 300: '#e57373', + 400: '#ef5350', + 500: '#f44336', + 600: '#e53935', + 700: '#d32f2f', + 800: '#c62828', + 900: '#b71c1c', + A100: '#ff8a80', + A200: '#ff5252', + A400: '#ff1744', + A700: '#d50000' +}; + +exports.default = red; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/teal.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var teal = { + 50: '#e0f2f1', + 100: '#b2dfdb', + 200: '#80cbc4', + 300: '#4db6ac', + 400: '#26a69a', + 500: '#009688', + 600: '#00897b', + 700: '#00796b', + 800: '#00695c', + 900: '#004d40', + A100: '#a7ffeb', + A200: '#64ffda', + A400: '#1de9b6', + A700: '#00bfa5' +}; + +exports.default = teal; + +/***/ }), + +/***/ "./node_modules/material-ui/colors/yellow.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var yellow = { + 50: '#fffde7', + 100: '#fff9c4', + 200: '#fff59d', + 300: '#fff176', + 400: '#ffee58', + 500: '#ffeb3b', + 600: '#fdd835', + 700: '#fbc02d', + 800: '#f9a825', + 900: '#f57f17', + A100: '#ffff8d', + A200: '#ffff00', + A400: '#ffea00', + A700: '#ffd600' +}; + +exports.default = yellow; + +/***/ }), + +/***/ "./node_modules/material-ui/es/Button/Button.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__ = __webpack_require__("./node_modules/material-ui/es/styles/colorManipulator.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ButtonBase__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_helpers__ = __webpack_require__("./node_modules/material-ui/es/utils/helpers.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_reactHelpers__ = __webpack_require__("./node_modules/material-ui/es/utils/reactHelpers.js"); + + +// @inheritedComponent ButtonBase + + + + + + + + + + +const styles = theme => ({ + root: __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, theme.typography.button, { + lineHeight: '1.4em', // Improve readability for multiline button. + boxSizing: 'border-box', + minWidth: theme.spacing.unit * 11, + minHeight: 36, + padding: `${theme.spacing.unit}px ${theme.spacing.unit * 2}px`, + borderRadius: 2, + color: theme.palette.text.primary, + transition: theme.transitions.create(['background-color', 'box-shadow'], { + duration: theme.transitions.duration.short + }), + '&:hover': { + textDecoration: 'none', + // Reset on mouse devices + backgroundColor: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__["a" /* fade */])(theme.palette.text.primary, 0.12), + '@media (hover: none)': { + backgroundColor: 'transparent' + }, + '&$disabled': { + backgroundColor: 'transparent' + } + } + }), + label: { + width: '100%', + display: 'inherit', + alignItems: 'inherit', + justifyContent: 'inherit' + }, + flatPrimary: { + color: theme.palette.primary.main, + '&:hover': { + backgroundColor: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__["a" /* fade */])(theme.palette.primary.main, 0.12), + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: 'transparent' + } + } + }, + flatSecondary: { + color: theme.palette.secondary.main, + '&:hover': { + backgroundColor: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__["a" /* fade */])(theme.palette.secondary.main, 0.12), + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: 'transparent' + } + } + }, + colorInherit: { + color: 'inherit' + }, + raised: { + color: theme.palette.getContrastText(theme.palette.grey[300]), + backgroundColor: theme.palette.grey[300], + boxShadow: theme.shadows[2], + '&$keyboardFocused': { + boxShadow: theme.shadows[6] + }, + '&:active': { + boxShadow: theme.shadows[8] + }, + '&$disabled': { + boxShadow: theme.shadows[0], + backgroundColor: theme.palette.action.disabledBackground + }, + '&:hover': { + backgroundColor: theme.palette.grey.A100, + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: theme.palette.grey[300] + }, + '&$disabled': { + backgroundColor: theme.palette.action.disabledBackground + } + } + }, + keyboardFocused: {}, + raisedPrimary: { + color: theme.palette.primary.contrastText, + backgroundColor: theme.palette.primary.main, + '&:hover': { + backgroundColor: theme.palette.primary.dark, + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: theme.palette.primary.main + } + } + }, + raisedSecondary: { + color: theme.palette.secondary.contrastText, + backgroundColor: theme.palette.secondary.main, + '&:hover': { + backgroundColor: theme.palette.secondary.dark, + // Reset on mouse devices + '@media (hover: none)': { + backgroundColor: theme.palette.secondary.main + } + } + }, + disabled: { + color: theme.palette.action.disabled + }, + fab: { + borderRadius: '50%', + padding: 0, + minWidth: 0, + width: 56, + fontSize: 24, + height: 56, + boxShadow: theme.shadows[6], + '&:active': { + boxShadow: theme.shadows[12] + } + }, + mini: { + width: 40, + height: 40 + }, + sizeSmall: { + padding: `${theme.spacing.unit - 1}px ${theme.spacing.unit}px`, + minWidth: theme.spacing.unit * 8, + minHeight: 32, + fontSize: theme.typography.pxToRem(theme.typography.fontSize - 1) + }, + sizeLarge: { + padding: `${theme.spacing.unit}px ${theme.spacing.unit * 3}px`, + minWidth: theme.spacing.unit * 14, + minHeight: 40, + fontSize: theme.typography.pxToRem(theme.typography.fontSize + 1) + }, + fullWidth: { + width: '100%' + } +}); +/* harmony export (immutable) */ __webpack_exports__["styles"] = styles; + + +function Button(props) { + const { + children: childrenProp, + classes, + className: classNameProp, + color, + disabled, + disableFocusRipple, + fullWidth, + mini, + size, + variant + } = props, + other = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default()(props, ['children', 'classes', 'className', 'color', 'disabled', 'disableFocusRipple', 'fullWidth', 'mini', 'size', 'variant']); + + const fab = variant === 'fab'; + const raised = variant === 'raised'; + const flat = !raised && !fab; + const className = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.root, { + [classes.raised]: raised || fab, + [classes.fab]: fab, + [classes.mini]: fab && mini, + [classes.colorInherit]: color === 'inherit', + [classes.flatPrimary]: flat && color === 'primary', + [classes.flatSecondary]: flat && color === 'secondary', + [classes.raisedPrimary]: !flat && color === 'primary', + [classes.raisedSecondary]: !flat && color === 'secondary', + [classes[`size${__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__utils_helpers__["a" /* capitalize */])(size)}`]]: size !== 'medium', + [classes.disabled]: disabled, + [classes.fullWidth]: fullWidth + }, classNameProp); + + let children = childrenProp; + + if (fab) { + children = __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.map(children, child => { + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_reactHelpers__["a" /* isMuiElement */])(child, ['Icon', 'SvgIcon'])) { + return __WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(child, { fontSize: true }); + } + return child; + }); + } + + return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( + __WEBPACK_IMPORTED_MODULE_7__ButtonBase__["a" /* default */], + __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ + className: className, + disabled: disabled, + focusRipple: !disableFocusRipple, + keyboardFocusedClassName: classes.keyboardFocused + }, other), + __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( + 'span', + { className: classes.label }, + children + ) + ); +} + +Button.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the button. + */ + children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node.isRequired, + /** + * Useful to extend the style applied to components. + */ + classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, + /** + * @ignore + */ + className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + color: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['default', 'inherit', 'primary', 'secondary']), + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + * The default value is a `button`. + */ + component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]), + /** + * If `true`, the button will be disabled. + */ + disabled: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * If `true`, the keyboard focus ripple will be disabled. + * `disableRipple` must also be true. + */ + disableFocusRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * If `true`, the button will take up the full width of its container. + */ + fullWidth: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * The URL to link to when the button is clicked. + * If defined, an `a` element will be used as the root node. + */ + href: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, + /** + * If `true`, and `fab` is `true`, will use mini floating action button styling. + */ + mini: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * The size of the button. + * `small` is equivalent to the dense button styling. + */ + size: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['small', 'medium', 'large']), + /** + * @ignore + */ + type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, + /** + * The color of the component. It supports those theme colors that make sense for this component. + */ + variant: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['flat', 'raised', 'fab']) +} : {}; + +Button.defaultProps = { + color: 'default', + disabled: false, + disableFocusRipple: false, + disableRipple: false, + fullWidth: false, + mini: false, + size: 'medium', + type: 'button', + variant: 'flat' +}; + +/* harmony default export */ __webpack_exports__["default"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__styles_withStyles__["a" /* default */])(styles, { name: 'MuiButton' })(Button)); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/ButtonBase/ButtonBase.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom__ = __webpack_require__("./node_modules/react-dom/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_dom__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_keycode__ = __webpack_require__("./node_modules/keycode/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_keycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_keycode__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow__ = __webpack_require__("./node_modules/dom-helpers/ownerWindow.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__ = __webpack_require__("./node_modules/material-ui/es/utils/keyboardFocus.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__TouchRipple__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/TouchRipple.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__createRippleHandler__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/createRippleHandler.js"); + + + + + + + + + + + + + +const styles = { + root: { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + position: 'relative', + // Remove grey highlight + WebkitTapHighlightColor: 'transparent', + backgroundColor: 'transparent', // Reset default value + outline: 'none', + border: 0, + margin: 0, // Remove the margin in Safari + borderRadius: 0, + padding: 0, // Remove the padding in Firefox + cursor: 'pointer', + userSelect: 'none', + verticalAlign: 'middle', + '-moz-appearance': 'none', // Reset + '-webkit-appearance': 'none', // Reset + textDecoration: 'none', + // So we take precedent over the style of a native element. + color: 'inherit', + '&::-moz-focus-inner': { + borderStyle: 'none' // Remove Firefox dotted outline. + } + }, + disabled: { + pointerEvents: 'none', // Disable link interactions + cursor: 'default' + } +}; +/* unused harmony export styles */ + + +// Don't automatically add the role="button" property on these components. +// It's invalid HTML syntax. +const INVALID_COMPONENT_ROLE = ['a']; + +/** + * `ButtonBase` contains as few styles as possible. + * It aims to be a simple building block for creating a button. + * It contains a load of style reset and some focus/ripple logic. + */ +class ButtonBase extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.Component { + constructor(...args) { + var _temp; + + return _temp = super(...args), this.state = { + keyboardFocused: false + }, this.onKeyboardFocusHandler = event => { + this.keyDown = false; + this.setState({ keyboardFocused: true }); + + if (this.props.onKeyboardFocus) { + this.props.onKeyboardFocus(event); + } + }, this.onRippleRef = node => { + this.ripple = node; + }, this.ripple = null, this.keyDown = false, this.button = null, this.keyboardFocusTimeout = null, this.keyboardFocusCheckTime = 50, this.keyboardFocusMaxCheckTimes = 5, this.handleKeyDown = event => { + const { component, focusRipple, onKeyDown, onClick } = this.props; + const key = __WEBPACK_IMPORTED_MODULE_6_keycode___default()(event); + + // Check if key is already down to avoid repeats being counted as multiple activations + if (focusRipple && !this.keyDown && this.state.keyboardFocused && this.ripple && key === 'space') { + this.keyDown = true; + event.persist(); + this.ripple.stop(event, () => { + this.ripple.start(event); + }); + } + + if (onKeyDown) { + onKeyDown(event); + } + + // Keyboard accessibility for non interactive elements + if (event.target === this.button && onClick && component && component !== 'a' && component !== 'button' && (key === 'space' || key === 'enter')) { + event.preventDefault(); + onClick(event); + } + }, this.handleKeyUp = event => { + if (this.props.focusRipple && __WEBPACK_IMPORTED_MODULE_6_keycode___default()(event) === 'space' && this.ripple && this.state.keyboardFocused) { + this.keyDown = false; + event.persist(); + this.ripple.stop(event, () => this.ripple.pulsate(event)); + } + if (this.props.onKeyUp) { + this.props.onKeyUp(event); + } + }, this.handleMouseDown = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'MouseDown', 'start', () => { + clearTimeout(this.keyboardFocusTimeout); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["a" /* focusKeyPressed */])(false); + if (this.state.keyboardFocused) { + this.setState({ keyboardFocused: false }); + } + }), this.handleMouseUp = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'MouseUp', 'stop'), this.handleMouseLeave = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'MouseLeave', 'stop', event => { + if (this.state.keyboardFocused) { + event.preventDefault(); + } + }), this.handleTouchStart = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'TouchStart', 'start'), this.handleTouchEnd = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'TouchEnd', 'stop'), this.handleTouchMove = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'TouchEnd', 'stop'), this.handleBlur = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'Blur', 'stop', () => { + clearTimeout(this.keyboardFocusTimeout); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["a" /* focusKeyPressed */])(false); + this.setState({ keyboardFocused: false }); + }), this.handleFocus = event => { + if (this.props.disabled) { + return; + } + + // Fix for https://github.com/facebook/react/issues/7769 + if (!this.button) { + this.button = event.currentTarget; + } + + event.persist(); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["b" /* detectKeyboardFocus */])(this, this.button, () => { + this.onKeyboardFocusHandler(event); + }); + + if (this.props.onFocus) { + this.props.onFocus(event); + } + }, _temp; + } + + componentDidMount() { + this.button = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_react_dom__["findDOMNode"])(this); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["c" /* listenForFocusKeys */])(__WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow___default()(this.button)); + } + + componentWillReceiveProps(nextProps) { + // The blur won't fire when the disabled state is set on a focused input. + // We need to book keep the focused state manually. + if (!this.props.disabled && nextProps.disabled && this.state.keyboardFocused) { + this.setState({ + keyboardFocused: false + }); + } + } + + componentWillUpdate(nextProps, nextState) { + if (this.props.focusRipple && nextState.keyboardFocused && !this.state.keyboardFocused && !this.props.disableRipple) { + this.ripple.pulsate(); + } + } + + componentWillUnmount() { + this.button = null; + clearTimeout(this.keyboardFocusTimeout); + } // Used to help track keyboard activation keyDown + + + render() { + const _props = this.props, + { + buttonRef, + centerRipple, + children, + classes, + className: classNameProp, + component, + disabled, + disableRipple, + focusRipple, + keyboardFocusedClassName, + onBlur, + onFocus, + onKeyboardFocus, + onKeyDown, + onKeyUp, + onMouseDown, + onMouseLeave, + onMouseUp, + onTouchEnd, + onTouchMove, + onTouchStart, + tabIndex, + type + } = _props, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['buttonRef', 'centerRipple', 'children', 'classes', 'className', 'component', 'disabled', 'disableRipple', 'focusRipple', 'keyboardFocusedClassName', 'onBlur', 'onFocus', 'onKeyboardFocus', 'onKeyDown', 'onKeyUp', 'onMouseDown', 'onMouseLeave', 'onMouseUp', 'onTouchEnd', 'onTouchMove', 'onTouchStart', 'tabIndex', 'type']); + + const className = __WEBPACK_IMPORTED_MODULE_5_classnames___default()(classes.root, { + [classes.disabled]: disabled, + [keyboardFocusedClassName || '']: this.state.keyboardFocused + }, classNameProp); + + const buttonProps = {}; + + let ComponentProp = component; + + if (!ComponentProp) { + if (other.href) { + ComponentProp = 'a'; + } else { + ComponentProp = 'button'; + } + } + + if (ComponentProp === 'button') { + buttonProps.type = type || 'button'; + buttonProps.disabled = disabled; + } else if (INVALID_COMPONENT_ROLE.indexOf(ComponentProp) === -1) { + buttonProps.role = 'button'; + } + + return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( + ComponentProp, + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + onBlur: this.handleBlur, + onFocus: this.handleFocus, + onKeyDown: this.handleKeyDown, + onKeyUp: this.handleKeyUp, + onMouseDown: this.handleMouseDown, + onMouseLeave: this.handleMouseLeave, + onMouseUp: this.handleMouseUp, + onTouchEnd: this.handleTouchEnd, + onTouchMove: this.handleTouchMove, + onTouchStart: this.handleTouchStart, + tabIndex: disabled ? -1 : tabIndex, + className: className, + ref: buttonRef + }, buttonProps, other), + children, + !disableRipple && !disabled ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__TouchRipple__["a" /* default */], { innerRef: this.onRippleRef, center: centerRipple }) : null + ); + } +} + +ButtonBase.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Use that property to pass a ref callback to the native button component. + */ + buttonRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * If `true`, the ripples will be centered. + * They won't start at the cursor interaction position. + */ + centerRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * The content of the component. + */ + children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node, + /** + * Useful to extend the style applied to components. + */ + classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, + /** + * @ignore + */ + className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + * The default value is a `button`. + */ + component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]), + /** + * If `true`, the base button will be disabled. + */ + disabled: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * If `true`, the base button will have a keyboard focus ripple. + * `disableRipple` must also be `false`. + */ + focusRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * The CSS class applied while the component is keyboard focused. + */ + keyboardFocusedClassName: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, + /** + * @ignore + */ + onBlur: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onClick: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onFocus: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * Callback fired when the component is focused with a keyboard. + * We trigger a `onFocus` callback too. + */ + onKeyboardFocus: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onKeyDown: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onKeyUp: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onMouseDown: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onMouseLeave: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onMouseUp: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onTouchEnd: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onTouchMove: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + onTouchStart: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, + /** + * @ignore + */ + role: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, + /** + * @ignore + */ + tabIndex: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]), + /** + * @ignore + */ + type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string +} : {}; + +ButtonBase.defaultProps = { + centerRipple: false, + disableRipple: false, + focusRipple: false, + tabIndex: 0, + type: 'button' +}; + +/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__styles_withStyles__["a" /* default */])(styles, { name: 'MuiButtonBase' })(ButtonBase)); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/ButtonBase/Ripple.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition__ = __webpack_require__("./node_modules/react-transition-group/Transition.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition__); + + + + + + + +/** + * @ignore - internal component. + */ +class Ripple extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.Component { + constructor(...args) { + var _temp; + + return _temp = super(...args), this.state = { + rippleVisible: false, + rippleLeaving: false + }, this.handleEnter = () => { + this.setState({ + rippleVisible: true + }); + }, this.handleExit = () => { + this.setState({ + rippleLeaving: true + }); + }, _temp; + } + + render() { + const _props = this.props, + { + classes, + className: classNameProp, + pulsate, + rippleX, + rippleY, + rippleSize + } = _props, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['classes', 'className', 'pulsate', 'rippleX', 'rippleY', 'rippleSize']); + const { rippleVisible, rippleLeaving } = this.state; + + const className = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.wrapper, { + [classes.wrapperLeaving]: rippleLeaving, + [classes.wrapperPulsating]: pulsate + }, classNameProp); + + const rippleClassName = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.ripple, { + [classes.rippleVisible]: rippleVisible, + [classes.rippleFast]: pulsate + }); + + const rippleStyles = { + width: rippleSize, + height: rippleSize, + top: -(rippleSize / 2) + rippleY, + left: -(rippleSize / 2) + rippleX + }; + + return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( + __WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition___default.a, + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ onEnter: this.handleEnter, onExit: this.handleExit }, other), + __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( + 'span', + { className: className }, + __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('span', { className: rippleClassName, style: rippleStyles }) + ) + ); + } +} + +Ripple.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, + /** + * @ignore + */ + className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, + /** + * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element. + */ + pulsate: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * Diameter of the ripple. + */ + rippleSize: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, + /** + * Horizontal position of the ripple center. + */ + rippleX: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, + /** + * Vertical position of the ripple center. + */ + rippleY: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number +} : {}; + +Ripple.defaultProps = { + pulsate: false +}; + +/* harmony default export */ __webpack_exports__["a"] = (Ripple); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/ButtonBase/TouchRipple.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom__ = __webpack_require__("./node_modules/react-dom/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_dom__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup__ = __webpack_require__("./node_modules/react-transition-group/TransitionGroup.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Ripple__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/Ripple.js"); + + + + + + + + + + +const DURATION = 550; +const DELAY_RIPPLE = 80; +/* unused harmony export DELAY_RIPPLE */ + + +const styles = theme => ({ + root: { + display: 'block', + position: 'absolute', + overflow: 'hidden', + borderRadius: 'inherit', + width: '100%', + height: '100%', + left: 0, + top: 0, + pointerEvents: 'none', + zIndex: 0 + }, + wrapper: { + opacity: 1 + }, + wrapperLeaving: { + opacity: 0, + animation: `mui-ripple-exit ${DURATION}ms ${theme.transitions.easing.easeInOut}` + }, + wrapperPulsating: { + position: 'absolute', + left: 0, + top: 0, + display: 'block', + width: '100%', + height: '100%', + animation: `mui-ripple-pulsate 2500ms ${theme.transitions.easing.easeInOut} 200ms infinite` + }, + '@keyframes mui-ripple-enter': { + '0%': { + transform: 'scale(0)' + }, + '100%': { + transform: 'scale(1)' + } + }, + '@keyframes mui-ripple-exit': { + '0%': { + opacity: 1 + }, + '100%': { + opacity: 0 + } + }, + '@keyframes mui-ripple-pulsate': { + '0%': { + transform: 'scale(1)' + }, + '50%': { + transform: 'scale(0.92)' + }, + '100%': { + transform: 'scale(1)' + } + }, + ripple: { + width: 50, + height: 50, + left: 0, + top: 0, + opacity: 0, + position: 'absolute', + borderRadius: '50%', + background: 'currentColor' + }, + rippleVisible: { + opacity: 0.3, + transform: 'scale(1)', + animation: `mui-ripple-enter ${DURATION}ms ${theme.transitions.easing.easeInOut}` + }, + rippleFast: { + animationDuration: '200ms' + } +}); +/* unused harmony export styles */ + + +/** + * @ignore - internal component. + */ +class TouchRipple extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.Component { + constructor(...args) { + var _temp; + + return _temp = super(...args), this.state = { + nextKey: 0, + ripples: [] + }, this.ignoringMouseDown = false, this.startTimer = null, this.startTimerCommit = null, this.pulsate = () => { + this.start({}, { pulsate: true }); + }, this.start = (event = {}, options = {}, cb) => { + const { + pulsate = false, + center = this.props.center || options.pulsate, + fakeElement = false // For test purposes + } = options; + + if (event.type === 'mousedown' && this.ignoringMouseDown) { + this.ignoringMouseDown = false; + return; + } + + if (event.type === 'touchstart') { + this.ignoringMouseDown = true; + } + + const element = fakeElement ? null : __WEBPACK_IMPORTED_MODULE_4_react_dom___default.a.findDOMNode(this); + const rect = element ? element.getBoundingClientRect() : { + width: 0, + height: 0, + left: 0, + top: 0 + }; + + // Get the size of the ripple + let rippleX; + let rippleY; + let rippleSize; + + if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) { + rippleX = Math.round(rect.width / 2); + rippleY = Math.round(rect.height / 2); + } else { + const clientX = event.clientX ? event.clientX : event.touches[0].clientX; + const clientY = event.clientY ? event.clientY : event.touches[0].clientY; + rippleX = Math.round(clientX - rect.left); + rippleY = Math.round(clientY - rect.top); + } + + if (center) { + rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); + + // For some reason the animation is broken on Mobile Chrome if the size if even. + if (rippleSize % 2 === 0) { + rippleSize += 1; + } + } else { + const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2; + const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2; + rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2)); + } + + // Touche devices + if (event.touches) { + // Prepare the ripple effect. + this.startTimerCommit = () => { + this.startCommit({ pulsate, rippleX, rippleY, rippleSize, cb }); + }; + // Deplay the execution of the ripple effect. + this.startTimer = setTimeout(() => { + this.startTimerCommit(); + this.startTimerCommit = null; + }, DELAY_RIPPLE); // We have to make a tradeoff with this value. + } else { + this.startCommit({ pulsate, rippleX, rippleY, rippleSize, cb }); + } + }, this.startCommit = params => { + const { pulsate, rippleX, rippleY, rippleSize, cb } = params; + let ripples = this.state.ripples; + + // Add a ripple to the ripples array. + ripples = [...ripples, __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__Ripple__["a" /* default */], { + key: this.state.nextKey, + classes: this.props.classes, + timeout: { + exit: DURATION, + enter: DURATION + }, + pulsate: pulsate, + rippleX: rippleX, + rippleY: rippleY, + rippleSize: rippleSize + })]; + + this.setState({ + nextKey: this.state.nextKey + 1, + ripples + }, cb); + }, this.stop = (event, cb) => { + clearTimeout(this.startTimer); + const { ripples } = this.state; + + // The touch interaction occures to quickly. + // We still want to show ripple effect. + if (event.type === 'touchend' && this.startTimerCommit) { + event.persist(); + this.startTimerCommit(); + this.startTimerCommit = null; + this.startTimer = setTimeout(() => { + this.stop(event, cb); + }, 0); + return; + } + + this.startTimerCommit = null; + + if (ripples && ripples.length) { + this.setState({ + ripples: ripples.slice(1) + }, cb); + } + }, _temp; + } + + componentWillUnmount() { + clearTimeout(this.startTimer); + } + + // Used to filter out mouse emulated events on mobile. + + // We use a timer in order to only show the ripples for touch "click" like events. + // We don't want to display the ripple for touch scroll events. + + // This is the hook called once the previous timeout is ready. + + + render() { + const _props = this.props, + { center, classes, className } = _props, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['center', 'classes', 'className']); + + return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( + __WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup___default.a, + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + component: 'span', + enter: true, + exit: true, + className: __WEBPACK_IMPORTED_MODULE_6_classnames___default()(classes.root, className) + }, other), + this.state.ripples + ); + } +} + +TouchRipple.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the ripple starts at the center of the component + * rather than at the point of interaction. + */ + center: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, + /** + * Useful to extend the style applied to components. + */ + classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, + /** + * @ignore + */ + className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string +} : {}; + +TouchRipple.defaultProps = { + center: false +}; + +/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__styles_withStyles__["a" /* default */])(styles, { flip: false, name: 'MuiTouchRipple' })(TouchRipple)); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/ButtonBase/createRippleHandler.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +function createRippleHandler(instance, eventName, action, cb) { + return function handleEvent(event) { + if (cb) { + cb.call(instance, event); + } + + if (event.defaultPrevented) { + return false; + } + + if (instance.ripple) { + instance.ripple[action](event); + } + + if (instance.props && typeof instance.props[`on${eventName}`] === 'function') { + instance.props[`on${eventName}`](event); + } + + return true; + }; +} + +/* harmony default export */ __webpack_exports__["a"] = (createRippleHandler); + +/***/ }), + +/***/ "./node_modules/material-ui/es/ButtonBase/index.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ButtonBase__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/ButtonBase.js"); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__ButtonBase__["a"]; }); + + +/***/ }), + +/***/ "./node_modules/material-ui/es/List/ListItemSecondaryAction.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); + + + + + + + +const styles = theme => ({ + root: { + position: 'absolute', + right: 4, + top: '50%', + marginTop: -theme.spacing.unit * 3 + } +}); +/* harmony export (immutable) */ __webpack_exports__["styles"] = styles; + + +function ListItemSecondaryAction(props) { + const { children, classes, className } = props, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(props, ['children', 'classes', 'className']); + + return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( + 'div', + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.root, className) }, other), + children + ); +} + +ListItemSecondaryAction.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content of the component, normally an `IconButton` or selection control. + */ + children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node, + /** + * Useful to extend the style applied to components. + */ + classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, + /** + * @ignore + */ + className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string +} : {}; + +ListItemSecondaryAction.muiName = 'ListItemSecondaryAction'; + +/* harmony default export */ __webpack_exports__["default"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__styles_withStyles__["a" /* default */])(styles, { name: 'MuiListItemSecondaryAction' })(ListItemSecondaryAction)); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/colors/common.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +const common = { + black: '#000', + white: '#fff' +}; + +/* harmony default export */ __webpack_exports__["a"] = (common); + +/***/ }), + +/***/ "./node_modules/material-ui/es/colors/grey.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +const grey = { + 50: '#fafafa', + 100: '#f5f5f5', + 200: '#eeeeee', + 300: '#e0e0e0', + 400: '#bdbdbd', + 500: '#9e9e9e', + 600: '#757575', + 700: '#616161', + 800: '#424242', + 900: '#212121', + A100: '#d5d5d5', + A200: '#aaaaaa', + A400: '#303030', + A700: '#616161' +}; + +/* harmony default export */ __webpack_exports__["a"] = (grey); + +/***/ }), + +/***/ "./node_modules/material-ui/es/colors/indigo.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +const indigo = { + 50: '#e8eaf6', + 100: '#c5cae9', + 200: '#9fa8da', + 300: '#7986cb', + 400: '#5c6bc0', + 500: '#3f51b5', + 600: '#3949ab', + 700: '#303f9f', + 800: '#283593', + 900: '#1a237e', + A100: '#8c9eff', + A200: '#536dfe', + A400: '#3d5afe', + A700: '#304ffe' +}; + +/* harmony default export */ __webpack_exports__["a"] = (indigo); + +/***/ }), + +/***/ "./node_modules/material-ui/es/colors/pink.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +const pink = { + 50: '#fce4ec', + 100: '#f8bbd0', + 200: '#f48fb1', + 300: '#f06292', + 400: '#ec407a', + 500: '#e91e63', + 600: '#d81b60', + 700: '#c2185b', + 800: '#ad1457', + 900: '#880e4f', + A100: '#ff80ab', + A200: '#ff4081', + A400: '#f50057', + A700: '#c51162' +}; + +/* harmony default export */ __webpack_exports__["a"] = (pink); + +/***/ }), + +/***/ "./node_modules/material-ui/es/colors/red.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +const red = { + 50: '#ffebee', + 100: '#ffcdd2', + 200: '#ef9a9a', + 300: '#e57373', + 400: '#ef5350', + 500: '#f44336', + 600: '#e53935', + 700: '#d32f2f', + 800: '#c62828', + 900: '#b71c1c', + A100: '#ff8a80', + A200: '#ff5252', + A400: '#ff1744', + A700: '#d50000' +}; + +/* harmony default export */ __webpack_exports__["a"] = (red); + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/colorManipulator.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export convertHexToRGB */ +/* unused harmony export decomposeColor */ +/* unused harmony export recomposeColor */ +/* harmony export (immutable) */ __webpack_exports__["d"] = getContrastRatio; +/* unused harmony export getLuminance */ +/* unused harmony export emphasize */ +/* harmony export (immutable) */ __webpack_exports__["a"] = fade; +/* harmony export (immutable) */ __webpack_exports__["c"] = darken; +/* harmony export (immutable) */ __webpack_exports__["b"] = lighten; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__); +// weak +/* eslint-disable no-use-before-define */ + + + +/** + * Returns a number whose value is limited to the given range. + * + * @param {number} value The value to be clamped + * @param {number} min The lower boundary of the output range + * @param {number} max The upper boundary of the output range + * @returns {number} A number in the range [min, max] + */ +function clamp(value, min = 0, max = 1) { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(value >= min && value <= max, `Material-UI: the value provided ${value} is out of range [${min}, ${max}].`) : void 0; + + if (value < min) { + return min; + } + if (value > max) { + return max; + } + return value; +} + +/** + * Converts a color from CSS hex format to CSS rgb format. + * + * @param {string} color - Hex color, i.e. #nnn or #nnnnnn + * @returns {string} A CSS rgb color string + */ +function convertHexToRGB(color) { + color = color.substr(1); + + const re = new RegExp(`.{1,${color.length / 3}}`, 'g'); + let colors = color.match(re); + + if (colors && colors[0].length === 1) { + colors = colors.map(n => n + n); + } + + return colors ? `rgb(${colors.map(n => parseInt(n, 16)).join(', ')})` : ''; +} + +/** + * Returns an object with the type and values of a color. + * + * Note: Does not support rgb % values. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @returns {object} - A MUI color object: {type: string, values: number[]} + */ +function decomposeColor(color) { + if (color.charAt(0) === '#') { + return decomposeColor(convertHexToRGB(color)); + } + + const marker = color.indexOf('('); + const type = color.substring(0, marker); + let values = color.substring(marker + 1, color.length - 1).split(','); + values = values.map(value => parseFloat(value)); + + return { type, values }; +} + +/** + * Converts a color object with type and values to a string. + * + * @param {object} color - Decomposed color + * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla' + * @param {array} color.values - [n,n,n] or [n,n,n,n] + * @returns {string} A CSS color string + */ +function recomposeColor(color) { + const { type } = color; + let { values } = color; + + if (type.indexOf('rgb') > -1) { + // Only convert the first 3 values to int (i.e. not alpha) + values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n); + } + + if (type.indexOf('hsl') > -1) { + values[1] = `${values[1]}%`; + values[2] = `${values[2]}%`; + } + + return `${color.type}(${values.join(', ')})`; +} + +/** + * Calculates the contrast ratio between two colors. + * + * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests + * + * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @returns {number} A contrast ratio value in the range 0 - 21. + */ +function getContrastRatio(foreground, background) { + const lumA = getLuminance(foreground); + const lumB = getLuminance(background); + return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05); +} + +/** + * The relative brightness of any point in a color space, + * normalized to 0 for darkest black and 1 for lightest white. + * + * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @returns {number} The relative brightness of the color in the range 0 - 1 + */ +function getLuminance(color) { + const decomposedColor = decomposeColor(color); + + if (decomposedColor.type.indexOf('rgb') > -1) { + const rgb = decomposedColor.values.map(val => { + val /= 255; // normalized + return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4); + }); + // Truncate at 3 digits + return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3)); + } else if (decomposedColor.type.indexOf('hsl') > -1) { + return decomposedColor.values[2] / 100; + } + + throw new Error(`Material-UI: unsupported \`${color}\` color.`); +} + +/** + * Darken or lighten a colour, depending on its luminance. + * Light colors are darkened, dark colors are lightened. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} coefficient=0.15 - multiplier in the range 0 - 1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function emphasize(color, coefficient = 0.15) { + return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient); +} + +/** + * Set the absolute transparency of a color. + * Any existing alpha values are overwritten. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} value - value to set the alpha channel to in the range 0 -1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function fade(color, value) { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(color, `Material-UI: missing color argument in fade(${color}, ${value}).`) : void 0; + + if (!color) return color; + + color = decomposeColor(color); + value = clamp(value); + + if (color.type === 'rgb' || color.type === 'hsl') { + color.type += 'a'; + } + color.values[3] = value; + + return recomposeColor(color); +} + +/** + * Darkens a color. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} coefficient - multiplier in the range 0 - 1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function darken(color, coefficient) { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(color, `Material-UI: missing color argument in darken(${color}, ${coefficient}).`) : void 0; + + if (!color) return color; + + color = decomposeColor(color); + coefficient = clamp(coefficient); + + if (color.type.indexOf('hsl') > -1) { + color.values[2] *= 1 - coefficient; + } else if (color.type.indexOf('rgb') > -1) { + for (let i = 0; i < 3; i += 1) { + color.values[i] *= 1 - coefficient; + } + } + return recomposeColor(color); +} + +/** + * Lightens a color. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} coefficient - multiplier in the range 0 - 1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function lighten(color, coefficient) { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(color, `Material-UI: missing color argument in lighten(${color}, ${coefficient}).`) : void 0; + + if (!color) return color; + + color = decomposeColor(color); + coefficient = clamp(coefficient); + + if (color.type.indexOf('hsl') > -1) { + color.values[2] += (100 - color.values[2]) * coefficient; + } else if (color.type.indexOf('rgb') > -1) { + for (let i = 0; i < 3; i += 1) { + color.values[i] += (255 - color.values[i]) * coefficient; + } + } + + return recomposeColor(color); +} +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/createBreakpoints.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = createBreakpoints; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); + + +// Sorted ASC by size. That's important. +// It can't be configured as it's used statically for propTypes. +const keys = ['xs', 'sm', 'md', 'lg', 'xl']; +/* unused harmony export keys */ + + +// Keep in mind that @media is inclusive by the CSS specification. +function createBreakpoints(breakpoints) { + const { + // The breakpoint **start** at this value. + // For instance with the first breakpoint xs: [xs, sm[. + values = { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920 + }, + unit = 'px', + step = 5 + } = breakpoints, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(breakpoints, ['values', 'unit', 'step']); + + function up(key) { + const value = typeof values[key] === 'number' ? values[key] : key; + return `@media (min-width:${value}${unit})`; + } + + function down(key) { + const endIndex = keys.indexOf(key) + 1; + const upperbound = values[keys[endIndex]]; + + if (endIndex === keys.length) { + // xl down applies to all sizes + return up('xs'); + } + + const value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key; + return `@media (max-width:${value - step / 100}${unit})`; + } + + function between(start, end) { + const endIndex = keys.indexOf(end) + 1; + + if (endIndex === keys.length) { + return up(start); + } + + return `@media (min-width:${values[start]}${unit}) and ` + `(max-width:${values[keys[endIndex]] - step / 100}${unit})`; + } + + function only(key) { + return between(key, key); + } + + function width(key) { + return values[key]; + } + + return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + keys, + values, + up, + down, + between, + only, + width + }, other); +} + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/createGenerateClassName.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = createGenerateClassName; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__); + + +let generatorCounter = 0; + +// Returns a function which generates unique class names based on counters. +// When new generator function is created, rule counter is reset. +// We need to reset the rule counter for SSR for each request. +// +// It's inspired by +// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js +function createGenerateClassName(options = {}) { + const { dangerouslyUseGlobalCSS = false, productionPrefix = 'jss' } = options; + const escapeRegex = /([[\].#*$><+~=|^:(),"'`\s])/g; + let ruleCounter = 0; + + // - HMR can lead to many class name generators being instantiated, + // so the warning is only triggered in production. + // - We expect a class name generator to be instantiated per new request on the server, + // so the warning is only triggered client side. + // - You can get away with having multiple class name generators + // by modifying the `productionPrefix`. + if (process.env.NODE_ENV === 'production' && typeof window !== 'undefined' && productionPrefix === 'jss') { + generatorCounter += 1; + + if (generatorCounter > 2) { + // eslint-disable-next-line no-console + console.error(['Material-UI: we have detected more than needed creation of the class name generator.', 'You should only use one class name generator on the client side.', 'If you do otherwise, you take the risk to have conflicting class names in production.'].join('\n')); + } + } + + return (rule, styleSheet) => { + ruleCounter += 1; + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(ruleCounter < 1e10, ['Material-UI: you might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join('')) : void 0; + + // Code branch the whole block at the expense of more code. + if (dangerouslyUseGlobalCSS) { + if (styleSheet && styleSheet.options.classNamePrefix) { + let prefix = styleSheet.options.classNamePrefix; + // Sanitize the string as will be used to prefix the generated class name. + prefix = prefix.replace(escapeRegex, '-'); + + if (prefix.match(/^Mui/)) { + return `${prefix}-${rule.key}`; + } + + if (process.env.NODE_ENV !== 'production') { + return `${prefix}-${rule.key}-${ruleCounter}`; + } + } + + if (process.env.NODE_ENV === 'production') { + return `${productionPrefix}${ruleCounter}`; + } + + return `${rule.key}-${ruleCounter}`; + } + + if (process.env.NODE_ENV === 'production') { + return `${productionPrefix}${ruleCounter}`; + } + + if (styleSheet && styleSheet.options.classNamePrefix) { + let prefix = styleSheet.options.classNamePrefix; + // Sanitize the string as will be used to prefix the generated class name. + prefix = prefix.replace(escapeRegex, '-'); + + return `${prefix}-${rule.key}-${ruleCounter}`; + } + + return `${rule.key}-${ruleCounter}`; + }; +} +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/createMixins.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = createMixins; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); + +function createMixins(breakpoints, spacing, mixins) { + return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + gutters: styles => { + return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + paddingLeft: spacing.unit * 2, + paddingRight: spacing.unit * 2 + }, styles, { + [breakpoints.up('sm')]: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + paddingLeft: spacing.unit * 3, + paddingRight: spacing.unit * 3 + }, styles[breakpoints.up('sm')]) + }); + }, + toolbar: { + minHeight: 56, + [`${breakpoints.up('xs')} and (orientation: landscape)`]: { + minHeight: 48 + }, + [breakpoints.up('sm')]: { + minHeight: 64 + } + } + }, mixins); +} + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/createMuiTheme.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTypography__ = __webpack_require__("./node_modules/material-ui/es/styles/createTypography.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__createBreakpoints__ = __webpack_require__("./node_modules/material-ui/es/styles/createBreakpoints.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__createPalette__ = __webpack_require__("./node_modules/material-ui/es/styles/createPalette.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__createMixins__ = __webpack_require__("./node_modules/material-ui/es/styles/createMixins.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__shadows__ = __webpack_require__("./node_modules/material-ui/es/styles/shadows.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__transitions__ = __webpack_require__("./node_modules/material-ui/es/styles/transitions.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__zIndex__ = __webpack_require__("./node_modules/material-ui/es/styles/zIndex.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__spacing__ = __webpack_require__("./node_modules/material-ui/es/styles/spacing.js"); + + + // < 1kb payload overhead when lodash/merge is > 3kb. + + + + + + + + + + +function createMuiTheme(options = {}) { + const { + palette: paletteInput = {}, + breakpoints: breakpointsInput = {}, + mixins: mixinsInput = {}, + typography: typographyInput = {}, + shadows: shadowsInput + } = options, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(options, ['palette', 'breakpoints', 'mixins', 'typography', 'shadows']); + + const palette = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__createPalette__["a" /* default */])(paletteInput); + const breakpoints = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__createBreakpoints__["a" /* default */])(breakpointsInput); + + const muiTheme = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + direction: 'ltr', + palette, + typography: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__createTypography__["a" /* default */])(palette, typographyInput), + mixins: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__createMixins__["a" /* default */])(breakpoints, __WEBPACK_IMPORTED_MODULE_11__spacing__["a" /* default */], mixinsInput), + breakpoints, + shadows: shadowsInput || __WEBPACK_IMPORTED_MODULE_8__shadows__["a" /* default */] + }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_deepmerge__["default"])({ + transitions: __WEBPACK_IMPORTED_MODULE_9__transitions__["a" /* default */], + spacing: __WEBPACK_IMPORTED_MODULE_11__spacing__["a" /* default */], + zIndex: __WEBPACK_IMPORTED_MODULE_10__zIndex__["a" /* default */] + }, other)); + + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(muiTheme.shadows.length === 25, 'Material-UI: the shadows array provided to createMuiTheme should support 25 elevations.') : void 0; + + return muiTheme; +} + +/* harmony default export */ __webpack_exports__["a"] = (createMuiTheme); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/createPalette.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = createPalette; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__colors_indigo__ = __webpack_require__("./node_modules/material-ui/es/colors/indigo.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__colors_pink__ = __webpack_require__("./node_modules/material-ui/es/colors/pink.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__colors_grey__ = __webpack_require__("./node_modules/material-ui/es/colors/grey.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__colors_red__ = __webpack_require__("./node_modules/material-ui/es/colors/red.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__colors_common__ = __webpack_require__("./node_modules/material-ui/es/colors/common.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__colorManipulator__ = __webpack_require__("./node_modules/material-ui/es/styles/colorManipulator.js"); + + + + // < 1kb payload overhead when lodash/merge is > 3kb. + + + + + + + +const light = { + // The colors used to style the text. + text: { + // The most important text. + primary: 'rgba(0, 0, 0, 0.87)', + // Secondary text. + secondary: 'rgba(0, 0, 0, 0.54)', + // Disabled text have even lower visual prominence. + disabled: 'rgba(0, 0, 0, 0.38)', + // Text hints. + hint: 'rgba(0, 0, 0, 0.38)' + }, + // The color used to divide different elements. + divider: 'rgba(0, 0, 0, 0.12)', + // The background colors used to style the surfaces. + // Consistency between these values is important. + background: { + paper: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */].white, + default: __WEBPACK_IMPORTED_MODULE_6__colors_grey__["a" /* default */][50] + }, + // The colors used to style the action elements. + action: { + // The color of an active action like an icon button. + active: 'rgba(0, 0, 0, 0.54)', + // The color of an hovered action. + hover: 'rgba(0, 0, 0, 0.08)', + // The color of a selected action. + selected: 'rgba(0, 0, 0, 0.14)', + // The color of a disabled action. + disabled: 'rgba(0, 0, 0, 0.26)', + // The background color of a disabled action. + disabledBackground: 'rgba(0, 0, 0, 0.12)' + } +}; +/* unused harmony export light */ + + +const dark = { + text: { + primary: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */].white, + secondary: 'rgba(255, 255, 255, 0.7)', + disabled: 'rgba(255, 255, 255, 0.5)', + hint: 'rgba(255, 255, 255, 0.5)', + icon: 'rgba(255, 255, 255, 0.5)' + }, + divider: 'rgba(255, 255, 255, 0.12)', + background: { + paper: __WEBPACK_IMPORTED_MODULE_6__colors_grey__["a" /* default */][800], + default: '#303030' + }, + action: { + active: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */].white, + hover: 'rgba(255, 255, 255, 0.1)', + selected: 'rgba(255, 255, 255, 0.2)', + disabled: 'rgba(255, 255, 255, 0.3)', + disabledBackground: 'rgba(255, 255, 255, 0.12)' + } +}; +/* unused harmony export dark */ + + +function addLightOrDark(intent, direction, shade, tonalOffset) { + if (!intent[direction]) { + if (intent.hasOwnProperty(shade)) { + intent[direction] = intent[shade]; + } else if (direction === 'light') { + intent.light = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["b" /* lighten */])(intent.main, tonalOffset); + } else if (direction === 'dark') { + intent.dark = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["c" /* darken */])(intent.main, tonalOffset * 1.5); + } + } +} + +function createPalette(palette) { + const { + primary = { + light: __WEBPACK_IMPORTED_MODULE_4__colors_indigo__["a" /* default */][300], + main: __WEBPACK_IMPORTED_MODULE_4__colors_indigo__["a" /* default */][500], + dark: __WEBPACK_IMPORTED_MODULE_4__colors_indigo__["a" /* default */][700] + }, + secondary = { + light: __WEBPACK_IMPORTED_MODULE_5__colors_pink__["a" /* default */].A200, + main: __WEBPACK_IMPORTED_MODULE_5__colors_pink__["a" /* default */].A400, + dark: __WEBPACK_IMPORTED_MODULE_5__colors_pink__["a" /* default */].A700 + }, + error = { + light: __WEBPACK_IMPORTED_MODULE_7__colors_red__["a" /* default */][300], + main: __WEBPACK_IMPORTED_MODULE_7__colors_red__["a" /* default */][500], + dark: __WEBPACK_IMPORTED_MODULE_7__colors_red__["a" /* default */][700] + }, + type = 'light', + contrastThreshold = 3, + tonalOffset = 0.2 + } = palette, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(palette, ['primary', 'secondary', 'error', 'type', 'contrastThreshold', 'tonalOffset']); + + function getContrastText(background) { + // Use the same logic as + // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59 + // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54 + const contrastText = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["d" /* getContrastRatio */])(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary; + + if (process.env.NODE_ENV !== 'production') { + const contrast = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["d" /* getContrastRatio */])(background, contrastText); + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_2_warning___default()(contrast >= 3, [`Material-UI: the contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WACG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\n')) : void 0; + } + + return contrastText; + } + + function augmentColor(color, mainShade, lightShade, darkShade) { + if (!color.main && color[mainShade]) { + color.main = color[mainShade]; + } + addLightOrDark(color, 'light', lightShade, tonalOffset); + addLightOrDark(color, 'dark', darkShade, tonalOffset); + if (!color.contrastText) { + color.contrastText = getContrastText(color.main); + } + } + + augmentColor(primary, 500, 300, 700); + augmentColor(secondary, 'A400', 'A200', 'A700'); + augmentColor(error, 500, 300, 700); + + const types = { dark, light }; + + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_2_warning___default()(types[type], `Material-UI: the palette type \`${type}\` is not supported.`) : void 0; + + const paletteOutput = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_deepmerge__["default"])(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + // A collection of common colors. + common: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */], + // The palette type, can be light or dark. + type, + // The colors used to represent primary interface elements for a user. + primary, + // The colors used to represent secondary interface elements for a user. + secondary, + // The colors used to represent interface elements that the user should be made aware of. + error, + // The grey colors. + grey: __WEBPACK_IMPORTED_MODULE_6__colors_grey__["a" /* default */], + // Used by `getContrastText()` to maximize the contrast between the background and + // the text. + contrastThreshold, + // Take a background color and return the color of the text to maximize the contrast. + getContrastText, + // Used by the functions below to shift a color's luminance by approximately + // two indexes within its tonal palette. + // E.g., shift from Red 500 to Red 300 or Red 700. + tonalOffset + }, types[type]), other, { + clone: false // No need to clone deep + }); + + return paletteOutput; +} +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/createTypography.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = createTypography; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); + + // < 1kb payload overhead when lodash/merge is > 3kb. + +function round(value) { + return Math.round(value * 1e5) / 1e5; +} + +function createTypography(palette, typography) { + const _ref = typeof typography === 'function' ? typography(palette) : typography, + { + fontFamily = '"Roboto", "Helvetica", "Arial", sans-serif', + fontSize = 14, // px + fontWeightLight = 300, + fontWeightRegular = 400, + fontWeightMedium = 500, + htmlFontSize = 16 } = _ref, + other = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default()(_ref, ['fontFamily', 'fontSize', 'fontWeightLight', 'fontWeightRegular', 'fontWeightMedium', 'htmlFontSize']); + + function pxToRem(value) { + return `${value / htmlFontSize}rem`; + } + + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_deepmerge__["default"])({ + pxToRem, + round, + fontFamily, + fontSize, + fontWeightLight, + fontWeightRegular, + fontWeightMedium, + display4: { + fontSize: pxToRem(112), + fontWeight: fontWeightLight, + fontFamily, + letterSpacing: '-.04em', + lineHeight: `${round(128 / 112)}em`, + marginLeft: '-.06em', + color: palette.text.secondary + }, + display3: { + fontSize: pxToRem(56), + fontWeight: fontWeightRegular, + fontFamily, + letterSpacing: '-.02em', + lineHeight: `${round(73 / 56)}em`, + marginLeft: '-.04em', + color: palette.text.secondary + }, + display2: { + fontSize: pxToRem(45), + fontWeight: fontWeightRegular, + fontFamily, + lineHeight: `${round(48 / 45)}em`, + marginLeft: '-.04em', + color: palette.text.secondary + }, + display1: { + fontSize: pxToRem(34), + fontWeight: fontWeightRegular, + fontFamily, + lineHeight: `${round(41 / 34)}em`, + marginLeft: '-.04em', + color: palette.text.secondary + }, + headline: { + fontSize: pxToRem(24), + fontWeight: fontWeightRegular, + fontFamily, + lineHeight: `${round(32.5 / 24)}em`, + color: palette.text.primary + }, + title: { + fontSize: pxToRem(21), + fontWeight: fontWeightMedium, + fontFamily, + lineHeight: `${round(24.5 / 21)}em`, + color: palette.text.primary + }, + subheading: { + fontSize: pxToRem(16), + fontWeight: fontWeightRegular, + fontFamily, + lineHeight: `${round(24 / 16)}em`, + color: palette.text.primary + }, + body2: { + fontSize: pxToRem(14), + fontWeight: fontWeightMedium, + fontFamily, + lineHeight: `${round(24 / 14)}em`, + color: palette.text.primary + }, + body1: { + fontSize: pxToRem(14), + fontWeight: fontWeightRegular, + fontFamily, + lineHeight: `${round(20.5 / 14)}em`, + color: palette.text.primary + }, + caption: { + fontSize: pxToRem(12), + fontWeight: fontWeightRegular, + fontFamily, + lineHeight: `${round(16.5 / 12)}em`, + color: palette.text.secondary + }, + button: { + fontSize: pxToRem(fontSize), + textTransform: 'uppercase', + fontWeight: fontWeightMedium, + fontFamily + } + }, other, { + clone: false // No need to clone deep + }); +} + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/getStylesCreator.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); + + + + // < 1kb payload overhead when lodash/merge is > 3kb. + +function getStylesCreator(stylesOrCreator) { + const themingEnabled = typeof stylesOrCreator === 'function'; + + function create(theme, name) { + const styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator; + + if (!theme.overrides || !name || !theme.overrides[name]) { + return styles; + } + + const overrides = theme.overrides[name]; + const stylesWithOverrides = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, styles); + + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(overrides).forEach(key => { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_2_warning___default()(stylesWithOverrides[key], ['Material-UI: you are trying to override a style that does not exist.', `Fix the \`${key}\` key of \`theme.overrides.${name}\`.`].join('\n')) : void 0; + stylesWithOverrides[key] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_deepmerge__["default"])(stylesWithOverrides[key], overrides[key]); + }); + + return stylesWithOverrides; + } + + return { + create, + options: {}, + themingEnabled + }; +} + +/* harmony default export */ __webpack_exports__["a"] = (getStylesCreator); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/jssPreset.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jss_global__ = __webpack_require__("./node_modules/jss-global/lib/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jss_global___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jss_global__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_jss_nested__ = __webpack_require__("./node_modules/jss-nested/lib/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_jss_nested___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_jss_nested__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_jss_camel_case__ = __webpack_require__("./node_modules/jss-camel-case/lib/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_jss_camel_case___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_jss_camel_case__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_jss_default_unit__ = __webpack_require__("./node_modules/jss-default-unit/lib/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_jss_default_unit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_jss_default_unit__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer__ = __webpack_require__("./node_modules/jss-vendor-prefixer/lib/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_jss_props_sort__ = __webpack_require__("./node_modules/jss-props-sort/lib/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_jss_props_sort___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_jss_props_sort__); + + + + + + + +// Subset of jss-preset-default with only the plugins the Material-UI +// components are using. +function jssPreset() { + return { + plugins: [__WEBPACK_IMPORTED_MODULE_0_jss_global___default()(), __WEBPACK_IMPORTED_MODULE_1_jss_nested___default()(), __WEBPACK_IMPORTED_MODULE_2_jss_camel_case___default()(), __WEBPACK_IMPORTED_MODULE_3_jss_default_unit___default()(), __WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer___default()(), __WEBPACK_IMPORTED_MODULE_5_jss_props_sort___default()()] + }; +} + +/* harmony default export */ __webpack_exports__["a"] = (jssPreset); + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/shadows.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +const shadowKeyUmbraOpacity = 0.2; +const shadowKeyPenumbraOpacity = 0.14; +const shadowAmbientShadowOpacity = 0.12; + +function createShadow(...px) { + return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0, 0, 0, ${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0, 0, 0, ${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0, 0, 0, ${shadowAmbientShadowOpacity})`].join(','); +} + +const shadows = ['none', createShadow(0, 1, 3, 0, 0, 1, 1, 0, 0, 2, 1, -1), createShadow(0, 1, 5, 0, 0, 2, 2, 0, 0, 3, 1, -2), createShadow(0, 1, 8, 0, 0, 3, 4, 0, 0, 3, 3, -2), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)]; + +/* harmony default export */ __webpack_exports__["a"] = (shadows); + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/spacing.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony default export */ __webpack_exports__["a"] = ({ + // All components align to an 8dp square baseline grid for mobile, tablet, and desktop. + // https://material.io/guidelines/layout/metrics-keylines.html#metrics-keylines-baseline-grids + unit: 8 +}); + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/themeListener.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__); + + +// Same value used by react-jss +const CHANNEL = '__THEMING__'; +/* unused harmony export CHANNEL */ + + +const themeListener = { + contextTypes: { + [CHANNEL]: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.object + }, + initial: context => { + if (!context[CHANNEL]) { + return null; + } + + return context[CHANNEL].getState(); + }, + subscribe: (context, cb) => { + if (!context[CHANNEL]) { + return null; + } + + return context[CHANNEL].subscribe(cb); + }, + unsubscribe(context, subscriptionId) { + if (context[CHANNEL]) { + context[CHANNEL].unsubscribe(subscriptionId); + } + } +}; + +/* harmony default export */ __webpack_exports__["a"] = (themeListener); + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/transitions.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan__ = __webpack_require__("./node_modules/babel-runtime/core-js/number/is-nan.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_warning__); + + + + +/* eslint-disable no-param-reassign */ + + + +// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves +// to learn the context in which each easing should be used. +const easing = { + // This is the most common easing curve. + easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)', + // Objects enter the screen at full velocity from off-screen and + // slowly decelerate to a resting point. + easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)', + // Objects leave the screen at full velocity. They do not decelerate when off-screen. + easeIn: 'cubic-bezier(0.4, 0, 1, 1)', + // The sharp curve is used by objects that may return to the screen at any time. + sharp: 'cubic-bezier(0.4, 0, 0.6, 1)' +}; +/* unused harmony export easing */ + + +// Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations +// to learn when use what timing +const duration = { + shortest: 150, + shorter: 200, + short: 250, + // most basic recommended timing + standard: 300, + // this is to be used in complex animations + complex: 375, + // recommended when something is entering screen + enteringScreen: 225, + // recommended when something is leaving screen + leavingScreen: 195 +}; +/* unused harmony export duration */ + + +const formatMs = milliseconds => `${Math.round(milliseconds)}ms`; +/* unused harmony export formatMs */ + +const isString = value => typeof value === 'string'; +/* unused harmony export isString */ + +const isNumber = value => !__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan___default()(parseFloat(value)); +/* unused harmony export isNumber */ + + +/** + * @param {string|Array} props + * @param {object} param + * @param {string} param.prop + * @param {number} param.duration + * @param {string} param.easing + * @param {number} param.delay + */ +/* harmony default export */ __webpack_exports__["a"] = ({ + easing, + duration, + create(props = ['all'], options = {}) { + const { + duration: durationOption = duration.standard, + easing: easingOption = easing.easeInOut, + delay = 0 + } = options, + other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(options, ['duration', 'easing', 'delay']); + + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isString(props) || Array.isArray(props), 'Material-UI: argument "props" must be a string or Array.') : void 0; + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isNumber(durationOption) || isString(durationOption), `Material-UI: argument "duration" must be a number or a string but found ${durationOption}.`) : void 0; + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isString(easingOption), 'Material-UI: argument "easing" must be a string.') : void 0; + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isNumber(delay) || isString(delay), 'Material-UI: argument "delay" must be a number or a string.') : void 0; + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(other).length === 0, `Material-UI: unrecognized argument(s) [${__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(other).join(',')}]`) : void 0; + + return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(','); + }, + getAutoHeightDuration(height) { + if (!height) { + return 0; + } + + const constant = height / 36; + + // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10 + return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10); + } +}); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/withStyles.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map__ = __webpack_require__("./node_modules/babel-runtime/core-js/map.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer__ = __webpack_require__("./node_modules/babel-runtime/core-js/number/min-safe-integer.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__("./node_modules/react/react.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics__ = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName__ = __webpack_require__("./node_modules/recompose/getDisplayName.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName__ = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes__ = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_jss__ = __webpack_require__("./node_modules/jss/lib/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_jss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_jss__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__ = __webpack_require__("./node_modules/react-jss/lib/ns.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__jssPreset__ = __webpack_require__("./node_modules/material-ui/es/styles/jssPreset.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__createMuiTheme__ = __webpack_require__("./node_modules/material-ui/es/styles/createMuiTheme.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__themeListener__ = __webpack_require__("./node_modules/material-ui/es/styles/themeListener.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__createGenerateClassName__ = __webpack_require__("./node_modules/material-ui/es/styles/createGenerateClassName.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__getStylesCreator__ = __webpack_require__("./node_modules/material-ui/es/styles/getStylesCreator.js"); + + + + + + + + + + + + + + + + + + + + +// New JSS instance. +const jss = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12_jss__["create"])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__jssPreset__["a" /* default */])()); + +// Use a singleton or the provided one by the context. +const generateClassName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__createGenerateClassName__["a" /* default */])(); + +// Global index counter to preserve source order. +// As we create the style sheet during componentWillMount lifecycle, +// children are handled after the parents, so the order of style elements would +// be parent->child. It is a problem though when a parent passes a className +// which needs to override any childs styles. StyleSheet of the child has a higher +// specificity, because of the source order. +// So our solution is to render sheets them in the reverse order child->sheet, so +// that parent has a higher specificity. +let indexCounter = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer___default.a; + +const sheetsManager = new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map___default.a(); +/* unused harmony export sheetsManager */ + + +// We use the same empty object to ref count the styles that don't need a theme object. +const noopTheme = {}; + +// In order to have self-supporting components, we rely on default theme when not provided. +let defaultTheme; + +function getDefaultTheme() { + if (defaultTheme) { + return defaultTheme; + } + + defaultTheme = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__createMuiTheme__["a" /* default */])(); + return defaultTheme; +} + +// Link a style sheet with a component. +// It does not modify the component passed to it; +// instead, it returns a new component, with a `classes` property. +const withStyles = (stylesOrCreator, options = {}) => Component => { + const { withTheme = false, flip = null, name } = options, + styleSheetOptions = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties___default()(options, ['withTheme', 'flip', 'name']); + const stylesCreator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__getStylesCreator__["a" /* default */])(stylesOrCreator); + const listenToTheme = stylesCreator.themingEnabled || withTheme || typeof name === 'string'; + + indexCounter += 1; + stylesCreator.options.index = indexCounter; + + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_7_warning___default()(indexCounter < 0, ['Material-UI: you might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join(' ')) : void 0; + + class WithStyles extends __WEBPACK_IMPORTED_MODULE_5_react___default.a.Component { + constructor(props, context) { + super(props, context); + + this.state = {}; + this.disableStylesGeneration = false; + this.jss = null; + this.sheetOptions = null; + this.sheetsManager = sheetsManager; + this.stylesCreatorSaved = null; + this.theme = null; + this.unsubscribeId = null; + this.jss = this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["jss"]] || jss; + + const { muiThemeProviderOptions } = this.context; + if (muiThemeProviderOptions) { + if (muiThemeProviderOptions.sheetsManager) { + this.sheetsManager = muiThemeProviderOptions.sheetsManager; + } + + this.disableStylesGeneration = muiThemeProviderOptions.disableStylesGeneration; + } + + // Attach the stylesCreator to the instance of the component as in the context + // of react-hot-loader the hooks can be executed in a different closure context: + // https://github.com/gaearon/react-hot-loader/blob/master/src/patch.dev.js#L107 + this.stylesCreatorSaved = stylesCreator; + this.sheetOptions = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ + generateClassName + }, this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["sheetOptions"]]); + // We use || as the function call is lazy evaluated. + this.theme = listenToTheme ? __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].initial(context) || getDefaultTheme() : noopTheme; + } + + componentWillMount() { + this.attach(this.theme); + } + + componentDidMount() { + if (!listenToTheme) { + return; + } + + this.unsubscribeId = __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].subscribe(this.context, theme => { + const oldTheme = this.theme; + this.theme = theme; + this.attach(this.theme); + + // Rerender the component so the underlying component gets the theme update. + // By theme update we mean receiving and applying the new class names. + this.setState({}, () => { + this.detach(oldTheme); + }); + }); + } + + componentWillReceiveProps() { + // react-hot-loader specific logic + if (this.stylesCreatorSaved === stylesCreator || process.env.NODE_ENV === 'production') { + return; + } + + this.detach(this.theme); + this.stylesCreatorSaved = stylesCreator; + this.attach(this.theme); + } + + componentWillUnmount() { + this.detach(this.theme); + + if (this.unsubscribeId !== null) { + __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].unsubscribe(this.context, this.unsubscribeId); + } + } + + attach(theme) { + if (this.disableStylesGeneration) { + return; + } + + const stylesCreatorSaved = this.stylesCreatorSaved; + let sheetManager = this.sheetsManager.get(stylesCreatorSaved); + + if (!sheetManager) { + sheetManager = new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map___default.a(); + this.sheetsManager.set(stylesCreatorSaved, sheetManager); + } + + let sheetManagerTheme = sheetManager.get(theme); + + if (!sheetManagerTheme) { + sheetManagerTheme = { + refs: 0, + sheet: null + }; + sheetManager.set(theme, sheetManagerTheme); + } + + if (sheetManagerTheme.refs === 0) { + const styles = stylesCreatorSaved.create(theme, name); + let meta = name; + + if (process.env.NODE_ENV !== 'production' && !meta) { + meta = __WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default()(Component); + } + + const sheet = this.jss.createStyleSheet(styles, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ + meta, + classNamePrefix: meta, + flip: typeof flip === 'boolean' ? flip : theme.direction === 'rtl', + link: false + }, this.sheetOptions, stylesCreatorSaved.options, { + name + }, styleSheetOptions)); + + sheetManagerTheme.sheet = sheet; + sheet.attach(); + + const sheetsRegistry = this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["sheetsRegistry"]]; + if (sheetsRegistry) { + sheetsRegistry.add(sheet); + } + } + + sheetManagerTheme.refs += 1; + } + + detach(theme) { + if (this.disableStylesGeneration) { + return; + } + + const stylesCreatorSaved = this.stylesCreatorSaved; + const sheetManager = this.sheetsManager.get(stylesCreatorSaved); + const sheetManagerTheme = sheetManager.get(theme); + + sheetManagerTheme.refs -= 1; + + if (sheetManagerTheme.refs === 0) { + sheetManager.delete(theme); + this.jss.removeStyleSheet(sheetManagerTheme.sheet); + const sheetsRegistry = this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["sheetsRegistry"]]; + if (sheetsRegistry) { + sheetsRegistry.remove(sheetManagerTheme.sheet); + } + } + } + + render() { + const _props = this.props, + { classes: classesProp, innerRef } = _props, + other = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['classes', 'innerRef']); + + let classes; + let renderedClasses = {}; + + if (!this.disableStylesGeneration) { + const sheetManager = this.sheetsManager.get(this.stylesCreatorSaved); + const sheetsManagerTheme = sheetManager.get(this.theme); + renderedClasses = sheetsManagerTheme.sheet.classes; + } + + if (classesProp) { + classes = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, renderedClasses, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(classesProp).reduce((accumulator, key) => { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_7_warning___default()(renderedClasses[key] || this.disableStylesGeneration, [`Material-UI: the key \`${key}\` ` + `provided to the classes property is not implemented in ${__WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default()(Component)}.`, `You can only override one of the following: ${__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(renderedClasses).join(',')}`].join('\n')) : void 0; + + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_7_warning___default()(!classesProp[key] || typeof classesProp[key] === 'string', [`Material-UI: the key \`${key}\` ` + `provided to the classes property is not valid for ${__WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default()(Component)}.`, `You need to provide a non empty string instead of: ${classesProp[key]}.`].join('\n')) : void 0; + + if (classesProp[key]) { + accumulator[key] = `${renderedClasses[key]} ${classesProp[key]}`; + } + + return accumulator; + }, {})); + } else { + classes = renderedClasses; + } + + const more = {}; + + // Provide the theme to the wrapped component. + // So we don't have to use the `withTheme()` Higher-order Component. + if (withTheme) { + more.theme = this.theme; + } + + return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(Component, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ classes: classes }, more, other, { ref: innerRef })); + } + } + + WithStyles.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, + /** + * Use that property to pass a ref callback to the decorated component. + */ + innerRef: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func + } : {}; + + WithStyles.contextTypes = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ + muiThemeProviderOptions: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object + }, __WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes___default.a, listenToTheme ? __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].contextTypes : {}); + + if (process.env.NODE_ENV !== 'production') { + WithStyles.displayName = __WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName___default()(Component, 'WithStyles'); + } + + __WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics___default()(WithStyles, Component); + + if (process.env.NODE_ENV !== 'production') { + // Exposed for test purposes. + WithStyles.Naked = Component; + WithStyles.options = options; + } + + return WithStyles; +}; + +/* harmony default export */ __webpack_exports__["a"] = (withStyles); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/styles/zIndex.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +// We need to centralize the zIndex definitions as they work +// like global values in the browser. +const zIndex = { + mobileStepper: 1000, + appBar: 1100, + drawer: 1200, + modal: 1300, + snackbar: 1400, + tooltip: 1500 +}; + +/* harmony default export */ __webpack_exports__["a"] = (zIndex); + +/***/ }), + +/***/ "./node_modules/material-ui/es/utils/helpers.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = capitalize; +/* unused harmony export contains */ +/* unused harmony export findIndex */ +/* unused harmony export find */ +/* unused harmony export createChainedFunction */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_warning__); + +// weak + + + +function capitalize(string) { + if (process.env.NODE_ENV !== 'production' && typeof string !== 'string') { + throw new Error('Material-UI: capitalize(string) expects a string argument.'); + } + + return string.charAt(0).toUpperCase() + string.slice(1); +} + +function contains(obj, pred) { + return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(pred).every(key => { + return obj.hasOwnProperty(key) && obj[key] === pred[key]; + }); +} + +function findIndex(arr, pred) { + const predType = typeof pred; + for (let i = 0; i < arr.length; i += 1) { + if (predType === 'function' && !!pred(arr[i], i, arr) === true) { + return i; + } + if (predType === 'object' && contains(arr[i], pred)) { + return i; + } + if (['string', 'number', 'boolean'].indexOf(predType) !== -1) { + return arr.indexOf(pred); + } + } + return -1; +} + +function find(arr, pred) { + const index = findIndex(arr, pred); + return index > -1 ? arr[index] : undefined; +} + +/** + * Safe chained function + * + * Will only create a new function if needed, + * otherwise will pass back existing functions or null. + * + * @param {function} functions to chain + * @returns {function|null} + */ +function createChainedFunction(...funcs) { + return funcs.filter(func => func != null).reduce((acc, func) => { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_1_warning___default()(typeof func === 'function', 'Material-UI: invalid Argument Type, must only provide functions, undefined, or null.') : void 0; + + return function chainedFunction(...args) { + acc.apply(this, args); + func.apply(this, args); + }; + }, () => {}); +} +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/utils/keyboardFocus.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = focusKeyPressed; +/* harmony export (immutable) */ __webpack_exports__["b"] = detectKeyboardFocus; +/* harmony export (immutable) */ __webpack_exports__["c"] = listenForFocusKeys; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_keycode__ = __webpack_require__("./node_modules/keycode/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_keycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_keycode__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning__ = __webpack_require__("./node_modules/warning/browser.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains__ = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument__ = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument__); +// weak + + + + + + +const internal = { + focusKeyPressed: false +}; + +function focusKeyPressed(pressed) { + if (typeof pressed !== 'undefined') { + internal.focusKeyPressed = Boolean(pressed); + } + + return internal.focusKeyPressed; +} + +function detectKeyboardFocus(instance, element, callback, attempt = 1) { + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_1_warning___default()(instance.keyboardFocusCheckTime, 'Material-UI: missing instance.keyboardFocusCheckTime') : void 0; + process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_1_warning___default()(instance.keyboardFocusMaxCheckTimes, 'Material-UI: missing instance.keyboardFocusMaxCheckTimes') : void 0; + + instance.keyboardFocusTimeout = setTimeout(() => { + const doc = __WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument___default()(element); + + if (focusKeyPressed() && (doc.activeElement === element || __WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains___default()(element, doc.activeElement))) { + callback(); + } else if (attempt < instance.keyboardFocusMaxCheckTimes) { + detectKeyboardFocus(instance, element, callback, attempt + 1); + } + }, instance.keyboardFocusCheckTime); +} + +const FOCUS_KEYS = ['tab', 'enter', 'space', 'esc', 'up', 'down', 'left', 'right']; + +function isFocusKey(event) { + return FOCUS_KEYS.indexOf(__WEBPACK_IMPORTED_MODULE_0_keycode___default()(event)) !== -1; +} + +const handleKeyUpEvent = event => { + if (isFocusKey(event)) { + internal.focusKeyPressed = true; + } +}; + +function listenForFocusKeys(win) { + // The event listener will only be added once per window. + // Duplicate event listeners will be ignored by addEventListener. + // Also, this logic is client side only, we don't need a teardown. + win.addEventListener('keyup', handleKeyUpEvent); +} +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/es/utils/reactHelpers.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export cloneChildrenWithClassName */ +/* harmony export (immutable) */ __webpack_exports__["a"] = isMuiElement; +/* unused harmony export isMuiComponent */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__("./node_modules/react/react.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_classnames__); + +/* eslint-disable import/prefer-default-export */ + + + + + +function cloneChildrenWithClassName(children, className) { + return __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.map(children, child => { + return __WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child) && __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(child, { + className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()(child.props.className, className) + }); + }); +} + +function isMuiElement(element, muiNames) { + return __WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1; +} + +function isMuiComponent(element, muiNames) { + return muiNames.indexOf(element.muiName) !== -1; +} + +/***/ }), + +/***/ "./node_modules/material-ui/index.es.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AppBar__ = __webpack_require__("./node_modules/material-ui/AppBar/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AppBar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__AppBar__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "AppBar", function() { return __WEBPACK_IMPORTED_MODULE_0__AppBar___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Avatar__ = __webpack_require__("./node_modules/material-ui/Avatar/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Avatar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__Avatar__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Avatar", function() { return __WEBPACK_IMPORTED_MODULE_1__Avatar___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Badge__ = __webpack_require__("./node_modules/material-ui/Badge/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Badge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__Badge__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Badge", function() { return __WEBPACK_IMPORTED_MODULE_2__Badge___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__BottomNavigation__ = __webpack_require__("./node_modules/material-ui/BottomNavigation/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__BottomNavigation___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__BottomNavigation__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BottomNavigation", function() { return __WEBPACK_IMPORTED_MODULE_3__BottomNavigation___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_3__BottomNavigation__, "BottomNavigationAction")) __webpack_require__.d(__webpack_exports__, "BottomNavigationAction", function() { return __WEBPACK_IMPORTED_MODULE_3__BottomNavigation__["BottomNavigationAction"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Button__ = __webpack_require__("./node_modules/material-ui/Button/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Button___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Button__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return __WEBPACK_IMPORTED_MODULE_4__Button___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ButtonBase__ = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ButtonBase___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__ButtonBase__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "ButtonBase", function() { return __WEBPACK_IMPORTED_MODULE_5__ButtonBase___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Card__ = __webpack_require__("./node_modules/material-ui/Card/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Card___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__Card__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Card", function() { return __WEBPACK_IMPORTED_MODULE_6__Card___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardActions")) __webpack_require__.d(__webpack_exports__, "CardActions", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardActions"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardContent")) __webpack_require__.d(__webpack_exports__, "CardContent", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardContent"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardHeader")) __webpack_require__.d(__webpack_exports__, "CardHeader", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardHeader"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardMedia")) __webpack_require__.d(__webpack_exports__, "CardMedia", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardMedia"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Checkbox__ = __webpack_require__("./node_modules/material-ui/Checkbox/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Checkbox___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__Checkbox__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return __WEBPACK_IMPORTED_MODULE_7__Checkbox___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Chip__ = __webpack_require__("./node_modules/material-ui/Chip/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Chip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__Chip__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Chip", function() { return __WEBPACK_IMPORTED_MODULE_8__Chip___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener__ = __webpack_require__("./node_modules/material-ui/utils/ClickAwayListener.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "ClickAwayListener", function() { return __WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Dialog__ = __webpack_require__("./node_modules/material-ui/Dialog/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Dialog___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__Dialog__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogActions")) __webpack_require__.d(__webpack_exports__, "DialogActions", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogActions"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogContent")) __webpack_require__.d(__webpack_exports__, "DialogContent", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogContent"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogContentText")) __webpack_require__.d(__webpack_exports__, "DialogContentText", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogContentText"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogTitle")) __webpack_require__.d(__webpack_exports__, "DialogTitle", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogTitle"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "withMobileDialog")) __webpack_require__.d(__webpack_exports__, "withMobileDialog", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["withMobileDialog"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Divider__ = __webpack_require__("./node_modules/material-ui/Divider/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Divider___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__Divider__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Divider", function() { return __WEBPACK_IMPORTED_MODULE_11__Divider___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Drawer__ = __webpack_require__("./node_modules/material-ui/Drawer/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Drawer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12__Drawer__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Drawer", function() { return __WEBPACK_IMPORTED_MODULE_12__Drawer___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__ = __webpack_require__("./node_modules/material-ui/ExpansionPanel/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "ExpansionPanel", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__, "ExpansionPanelActions")) __webpack_require__.d(__webpack_exports__, "ExpansionPanelActions", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__["ExpansionPanelActions"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__, "ExpansionPanelDetails")) __webpack_require__.d(__webpack_exports__, "ExpansionPanelDetails", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__["ExpansionPanelDetails"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__, "ExpansionPanelSummary")) __webpack_require__.d(__webpack_exports__, "ExpansionPanelSummary", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__["ExpansionPanelSummary"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Form__ = __webpack_require__("./node_modules/material-ui/Form/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Form___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__Form__); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormControl")) __webpack_require__.d(__webpack_exports__, "FormControl", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormControl"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormGroup")) __webpack_require__.d(__webpack_exports__, "FormGroup", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormGroup"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormLabel")) __webpack_require__.d(__webpack_exports__, "FormLabel", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormLabel"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormHelperText")) __webpack_require__.d(__webpack_exports__, "FormHelperText", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormHelperText"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormControlLabel")) __webpack_require__.d(__webpack_exports__, "FormControlLabel", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormControlLabel"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Hidden__ = __webpack_require__("./node_modules/material-ui/Hidden/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Hidden___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15__Hidden__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Hidden", function() { return __WEBPACK_IMPORTED_MODULE_15__Hidden___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__Icon__ = __webpack_require__("./node_modules/material-ui/Icon/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__Icon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_16__Icon__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Icon", function() { return __WEBPACK_IMPORTED_MODULE_16__Icon___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__IconButton__ = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__IconButton___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_17__IconButton__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "IconButton", function() { return __WEBPACK_IMPORTED_MODULE_17__IconButton___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Input__ = __webpack_require__("./node_modules/material-ui/Input/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Input___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_18__Input__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return __WEBPACK_IMPORTED_MODULE_18__Input___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_18__Input__, "InputLabel")) __webpack_require__.d(__webpack_exports__, "InputLabel", function() { return __WEBPACK_IMPORTED_MODULE_18__Input__["InputLabel"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_18__Input__, "InputAdornment")) __webpack_require__.d(__webpack_exports__, "InputAdornment", function() { return __WEBPACK_IMPORTED_MODULE_18__Input__["InputAdornment"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__Grid__ = __webpack_require__("./node_modules/material-ui/Grid/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__Grid___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_19__Grid__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return __WEBPACK_IMPORTED_MODULE_19__Grid___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__GridList__ = __webpack_require__("./node_modules/material-ui/GridList/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__GridList___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_20__GridList__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "GridList", function() { return __WEBPACK_IMPORTED_MODULE_20__GridList___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_20__GridList__, "GridListTile")) __webpack_require__.d(__webpack_exports__, "GridListTile", function() { return __WEBPACK_IMPORTED_MODULE_20__GridList__["GridListTile"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_20__GridList__, "GridListTileBar")) __webpack_require__.d(__webpack_exports__, "GridListTileBar", function() { return __WEBPACK_IMPORTED_MODULE_20__GridList__["GridListTileBar"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__List__ = __webpack_require__("./node_modules/material-ui/List/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__List___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_21__List__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "List", function() { return __WEBPACK_IMPORTED_MODULE_21__List___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItem")) __webpack_require__.d(__webpack_exports__, "ListItem", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItem"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemAvatar")) __webpack_require__.d(__webpack_exports__, "ListItemAvatar", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemAvatar"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemIcon")) __webpack_require__.d(__webpack_exports__, "ListItemIcon", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemIcon"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemSecondaryAction")) __webpack_require__.d(__webpack_exports__, "ListItemSecondaryAction", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemSecondaryAction"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemText")) __webpack_require__.d(__webpack_exports__, "ListItemText", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemText"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListSubheader")) __webpack_require__.d(__webpack_exports__, "ListSubheader", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListSubheader"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__Menu__ = __webpack_require__("./node_modules/material-ui/Menu/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__Menu___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_22__Menu__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Menu", function() { return __WEBPACK_IMPORTED_MODULE_22__Menu___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_22__Menu__, "MenuItem")) __webpack_require__.d(__webpack_exports__, "MenuItem", function() { return __WEBPACK_IMPORTED_MODULE_22__Menu__["MenuItem"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_22__Menu__, "MenuList")) __webpack_require__.d(__webpack_exports__, "MenuList", function() { return __WEBPACK_IMPORTED_MODULE_22__Menu__["MenuList"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__MobileStepper__ = __webpack_require__("./node_modules/material-ui/MobileStepper/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__MobileStepper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_23__MobileStepper__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "MobileStepper", function() { return __WEBPACK_IMPORTED_MODULE_23__MobileStepper___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__Modal__ = __webpack_require__("./node_modules/material-ui/Modal/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__Modal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_24__Modal__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return __WEBPACK_IMPORTED_MODULE_24__Modal___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_24__Modal__, "Backdrop")) __webpack_require__.d(__webpack_exports__, "Backdrop", function() { return __WEBPACK_IMPORTED_MODULE_24__Modal__["Backdrop"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_24__Modal__, "ModalManager")) __webpack_require__.d(__webpack_exports__, "ModalManager", function() { return __WEBPACK_IMPORTED_MODULE_24__Modal__["ModalManager"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__Paper__ = __webpack_require__("./node_modules/material-ui/Paper/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__Paper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_25__Paper__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Paper", function() { return __WEBPACK_IMPORTED_MODULE_25__Paper___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__Popover__ = __webpack_require__("./node_modules/material-ui/Popover/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__Popover___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_26__Popover__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return __WEBPACK_IMPORTED_MODULE_26__Popover___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__Portal__ = __webpack_require__("./node_modules/material-ui/Portal/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__Portal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_27__Portal__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Portal", function() { return __WEBPACK_IMPORTED_MODULE_27__Portal___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__Progress__ = __webpack_require__("./node_modules/material-ui/Progress/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__Progress___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_28__Progress__); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_28__Progress__, "CircularProgress")) __webpack_require__.d(__webpack_exports__, "CircularProgress", function() { return __WEBPACK_IMPORTED_MODULE_28__Progress__["CircularProgress"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_28__Progress__, "LinearProgress")) __webpack_require__.d(__webpack_exports__, "LinearProgress", function() { return __WEBPACK_IMPORTED_MODULE_28__Progress__["LinearProgress"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__Radio__ = __webpack_require__("./node_modules/material-ui/Radio/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__Radio___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_29__Radio__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Radio", function() { return __WEBPACK_IMPORTED_MODULE_29__Radio___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_29__Radio__, "RadioGroup")) __webpack_require__.d(__webpack_exports__, "RadioGroup", function() { return __WEBPACK_IMPORTED_MODULE_29__Radio__["RadioGroup"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__Reboot__ = __webpack_require__("./node_modules/material-ui/Reboot/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__Reboot___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_30__Reboot__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Reboot", function() { return __WEBPACK_IMPORTED_MODULE_30__Reboot___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__Select__ = __webpack_require__("./node_modules/material-ui/Select/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__Select___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_31__Select__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Select", function() { return __WEBPACK_IMPORTED_MODULE_31__Select___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__Snackbar__ = __webpack_require__("./node_modules/material-ui/Snackbar/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__Snackbar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_32__Snackbar__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Snackbar", function() { return __WEBPACK_IMPORTED_MODULE_32__Snackbar___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_32__Snackbar__, "SnackbarContent")) __webpack_require__.d(__webpack_exports__, "SnackbarContent", function() { return __WEBPACK_IMPORTED_MODULE_32__Snackbar__["SnackbarContent"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__Stepper__ = __webpack_require__("./node_modules/material-ui/Stepper/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__Stepper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_33__Stepper__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Stepper", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "Step")) __webpack_require__.d(__webpack_exports__, "Step", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["Step"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepButton")) __webpack_require__.d(__webpack_exports__, "StepButton", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepButton"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepIcon")) __webpack_require__.d(__webpack_exports__, "StepIcon", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepIcon"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepContent")) __webpack_require__.d(__webpack_exports__, "StepContent", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepContent"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepLabel")) __webpack_require__.d(__webpack_exports__, "StepLabel", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepLabel"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__styles__ = __webpack_require__("./node_modules/material-ui/styles/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__styles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_34__styles__); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "MuiThemeProvider")) __webpack_require__.d(__webpack_exports__, "MuiThemeProvider", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["MuiThemeProvider"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "withStyles")) __webpack_require__.d(__webpack_exports__, "withStyles", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["withStyles"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "withTheme")) __webpack_require__.d(__webpack_exports__, "withTheme", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["withTheme"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "createMuiTheme")) __webpack_require__.d(__webpack_exports__, "createMuiTheme", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["createMuiTheme"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "jssPreset")) __webpack_require__.d(__webpack_exports__, "jssPreset", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["jssPreset"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__colors__ = __webpack_require__("./node_modules/material-ui/colors/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__colors___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_35__colors__); +/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "colors", function() { return __WEBPACK_IMPORTED_MODULE_35__colors__; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__SvgIcon__ = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__SvgIcon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_36__SvgIcon__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "SvgIcon", function() { return __WEBPACK_IMPORTED_MODULE_36__SvgIcon___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__Switch__ = __webpack_require__("./node_modules/material-ui/Switch/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__Switch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_37__Switch__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return __WEBPACK_IMPORTED_MODULE_37__Switch___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__Table__ = __webpack_require__("./node_modules/material-ui/Table/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__Table___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_38__Table__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Table", function() { return __WEBPACK_IMPORTED_MODULE_38__Table___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableBody")) __webpack_require__.d(__webpack_exports__, "TableBody", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableBody"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableCell")) __webpack_require__.d(__webpack_exports__, "TableCell", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableCell"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableFooter")) __webpack_require__.d(__webpack_exports__, "TableFooter", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableFooter"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableHead")) __webpack_require__.d(__webpack_exports__, "TableHead", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableHead"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TablePagination")) __webpack_require__.d(__webpack_exports__, "TablePagination", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TablePagination"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableRow")) __webpack_require__.d(__webpack_exports__, "TableRow", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableRow"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableSortLabel")) __webpack_require__.d(__webpack_exports__, "TableSortLabel", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableSortLabel"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__Tabs__ = __webpack_require__("./node_modules/material-ui/Tabs/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__Tabs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_39__Tabs__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Tabs", function() { return __WEBPACK_IMPORTED_MODULE_39__Tabs___default.a; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_39__Tabs__, "Tab")) __webpack_require__.d(__webpack_exports__, "Tab", function() { return __WEBPACK_IMPORTED_MODULE_39__Tabs__["Tab"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__Typography__ = __webpack_require__("./node_modules/material-ui/Typography/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__Typography___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_40__Typography__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Typography", function() { return __WEBPACK_IMPORTED_MODULE_40__Typography___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__TextField__ = __webpack_require__("./node_modules/material-ui/TextField/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__TextField___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_41__TextField__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "TextField", function() { return __WEBPACK_IMPORTED_MODULE_41__TextField___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__Toolbar__ = __webpack_require__("./node_modules/material-ui/Toolbar/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__Toolbar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_42__Toolbar__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Toolbar", function() { return __WEBPACK_IMPORTED_MODULE_42__Toolbar___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__Tooltip__ = __webpack_require__("./node_modules/material-ui/Tooltip/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__Tooltip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_43__Tooltip__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return __WEBPACK_IMPORTED_MODULE_43__Tooltip___default.a; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__transitions__ = __webpack_require__("./node_modules/material-ui/transitions/index.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__transitions___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_44__transitions__); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Slide")) __webpack_require__.d(__webpack_exports__, "Slide", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Slide"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Grow")) __webpack_require__.d(__webpack_exports__, "Grow", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Grow"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Fade")) __webpack_require__.d(__webpack_exports__, "Fade", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Fade"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Collapse")) __webpack_require__.d(__webpack_exports__, "Collapse", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Collapse"]; }); +/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Zoom")) __webpack_require__.d(__webpack_exports__, "Zoom", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Zoom"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__utils_withWidth__ = __webpack_require__("./node_modules/material-ui/utils/withWidth.js"); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__utils_withWidth___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_45__utils_withWidth__); +/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "withWidth", function() { return __WEBPACK_IMPORTED_MODULE_45__utils_withWidth___default.a; }); +/** @license Material-UI v1.0.0-beta.34 + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// eslint-disable-next-line import/first + + + + + + + + + + + + + + + + + +/***/ }), + +/***/ "./node_modules/material-ui/internal/RefHolder.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + * + * Internal helper component to allow attaching a ref to a + * child element that may not accept refs (functional component). + */ +var RefHolder = function (_React$Component) { + (0, _inherits3.default)(RefHolder, _React$Component); + + function RefHolder() { + (0, _classCallCheck3.default)(this, RefHolder); + return (0, _possibleConstructorReturn3.default)(this, (RefHolder.__proto__ || (0, _getPrototypeOf2.default)(RefHolder)).apply(this, arguments)); + } + + (0, _createClass3.default)(RefHolder, [{ + key: 'render', + value: function render() { + return this.props.children; + } + }]); + return RefHolder; +}(_react2.default.Component); + +RefHolder.propTypes = process.env.NODE_ENV !== "production" ? { + children: _propTypes2.default.node +} : {}; + +exports.default = RefHolder; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/internal/SwitchBase.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _CheckBoxOutlineBlank = __webpack_require__("./node_modules/material-ui/internal/svg-icons/CheckBoxOutlineBlank.js"); + +var _CheckBoxOutlineBlank2 = _interopRequireDefault(_CheckBoxOutlineBlank); + +var _CheckBox = __webpack_require__("./node_modules/material-ui/internal/svg-icons/CheckBox.js"); + +var _CheckBox2 = _interopRequireDefault(_CheckBox); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); + +var _IconButton2 = _interopRequireDefault(_IconButton); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = { + root: { + display: 'inline-flex', + alignItems: 'center', + transition: 'none' + }, + input: { + cursor: 'inherit', + position: 'absolute', + opacity: 0, + width: '100%', + height: '100%', + top: 0, + left: 0, + margin: 0, + padding: 0 + }, + default: {}, + checked: {}, + disabled: {} +}; + +/** + * @ignore - internal component. + */ + +var SwitchBase = function (_React$Component) { + (0, _inherits3.default)(SwitchBase, _React$Component); + + function SwitchBase() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, SwitchBase); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = SwitchBase.__proto__ || (0, _getPrototypeOf2.default)(SwitchBase)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this.input = null, _this.isControlled = null, _this.handleInputChange = function (event) { + var checked = event.target.checked; + + if (!_this.isControlled) { + _this.setState({ checked: checked }); + } + + if (_this.props.onChange) { + _this.props.onChange(event, checked); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(SwitchBase, [{ + key: 'componentWillMount', + value: function componentWillMount() { + var props = this.props; + + + this.isControlled = props.checked != null; + + if (!this.isControlled) { + // not controlled, use internal state + this.setState({ + checked: props.defaultChecked !== undefined ? props.defaultChecked : false + }); + } + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _props = this.props, + checkedProp = _props.checked, + checkedIcon = _props.checkedIcon, + classes = _props.classes, + classNameProp = _props.className, + disabledProp = _props.disabled, + iconProp = _props.icon, + id = _props.id, + inputProps = _props.inputProps, + inputRef = _props.inputRef, + name = _props.name, + onChange = _props.onChange, + tabIndex = _props.tabIndex, + type = _props.type, + value = _props.value, + other = (0, _objectWithoutProperties3.default)(_props, ['checked', 'checkedIcon', 'classes', 'className', 'disabled', 'icon', 'id', 'inputProps', 'inputRef', 'name', 'onChange', 'tabIndex', 'type', 'value']); + var muiFormControl = this.context.muiFormControl; + + var disabled = disabledProp; + + if (muiFormControl) { + if (typeof disabled === 'undefined') { + disabled = muiFormControl.disabled; + } + } + + var checked = this.isControlled ? checkedProp : this.state.checked; + var className = (0, _classnames2.default)(classes.root, classes.default, classNameProp, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checked, checked), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), _classNames)); + + var icon = checked ? checkedIcon : iconProp; + + var hasLabelFor = type === 'checkbox' || type === 'radio'; + + return _react2.default.createElement( + _IconButton2.default, + (0, _extends3.default)({ + component: 'span', + className: className, + disabled: disabled, + tabIndex: null, + role: undefined + }, other), + icon, + _react2.default.createElement('input', (0, _extends3.default)({ + id: hasLabelFor && id, + type: type, + name: name, + checked: checkedProp, + onChange: this.handleInputChange, + className: classes.input, + disabled: disabled, + tabIndex: tabIndex, + value: value, + ref: inputRef + }, inputProps)) + ); + } + }]); + return SwitchBase; +}(_react2.default.Component); + +// NB: If changed, please update Checkbox, Switch and Radio +// so that the API documentation is updated. + + +SwitchBase.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * If `true`, the component is checked. + */ + checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), + /** + * The icon to display when the component is checked. + */ + checkedIcon: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * @ignore + */ + defaultChecked: _propTypes2.default.bool, + /** + * If `true`, the switch will be disabled. + */ + disabled: _propTypes2.default.bool, + /** + * If `true`, the ripple effect will be disabled. + */ + disableRipple: _propTypes2.default.bool, + /** + * The icon to display when the component is unchecked. + */ + icon: _propTypes2.default.node, + /** + * The id of the `input` element. + */ + id: _propTypes2.default.string, + /** + * If `true`, the component appears indeterminate. + */ + indeterminate: _propTypes2.default.bool, + /** + * The icon to display when the component is indeterminate. + */ + indeterminateIcon: _propTypes2.default.node, + /** + * Properties applied to the `input` element. + */ + inputProps: _propTypes2.default.object, + /** + * Use that property to pass a ref callback to the native input component. + */ + inputRef: _propTypes2.default.func, + /* + * @ignore + */ + name: _propTypes2.default.string, + /** + * Callback fired when the state is changed. + * + * @param {object} event The event source of the callback + * @param {boolean} checked The `checked` value of the switch + */ + onChange: _propTypes2.default.func, + /** + * @ignore + */ + tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), + /** + * The input component property `type`. + */ + type: _propTypes2.default.string, + /** + * The value of the component. + */ + value: _propTypes2.default.string +} : {}; + +SwitchBase.defaultProps = { + checkedIcon: _react2.default.createElement(_CheckBox2.default, null), + disableRipple: false, + icon: _react2.default.createElement(_CheckBoxOutlineBlank2.default, null), + type: 'checkbox' +}; + +SwitchBase.contextTypes = { + muiFormControl: _propTypes2.default.object +}; + +exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSwitchBase' })(SwitchBase); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/ArrowDownward.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z' }); + +var ArrowDownward = function ArrowDownward(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; + +ArrowDownward = (0, _pure2.default)(ArrowDownward); +ArrowDownward.muiName = 'SvgIcon'; + +exports.default = ArrowDownward; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/ArrowDropDown.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M7 10l5 5 5-5z' }); + +var ArrowDropDown = function ArrowDropDown(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; + +ArrowDropDown = (0, _pure2.default)(ArrowDropDown); +ArrowDropDown.muiName = 'SvgIcon'; + +exports.default = ArrowDropDown; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/Cancel.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z' }); + +var Cancel = function Cancel(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +Cancel = (0, _pure2.default)(Cancel); +Cancel.muiName = 'SvgIcon'; + +exports.default = Cancel; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/CheckBox.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z' }); + +var CheckBox = function CheckBox(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +CheckBox = (0, _pure2.default)(CheckBox); +CheckBox.muiName = 'SvgIcon'; + +exports.default = CheckBox; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/CheckBoxOutlineBlank.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z' }); + +var CheckBoxOutlineBlank = function CheckBoxOutlineBlank(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +CheckBoxOutlineBlank = (0, _pure2.default)(CheckBoxOutlineBlank); +CheckBoxOutlineBlank.muiName = 'SvgIcon'; + +exports.default = CheckBoxOutlineBlank; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/CheckCircle.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z' }); + +var CheckCircle = function CheckCircle(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +CheckCircle = (0, _pure2.default)(CheckCircle); +CheckCircle.muiName = 'SvgIcon'; + +exports.default = CheckCircle; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/IndeterminateCheckBox.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z' }); + +var IndeterminateCheckBox = function IndeterminateCheckBox(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +IndeterminateCheckBox = (0, _pure2.default)(IndeterminateCheckBox); +IndeterminateCheckBox.muiName = 'SvgIcon'; + +exports.default = IndeterminateCheckBox; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/KeyboardArrowLeft.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z' }); + +var KeyboardArrowLeft = function KeyboardArrowLeft(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +KeyboardArrowLeft = (0, _pure2.default)(KeyboardArrowLeft); +KeyboardArrowLeft.muiName = 'SvgIcon'; + +exports.default = KeyboardArrowLeft; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/KeyboardArrowRight.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z' }); + +var KeyboardArrowRight = function KeyboardArrowRight(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +KeyboardArrowRight = (0, _pure2.default)(KeyboardArrowRight); +KeyboardArrowRight.muiName = 'SvgIcon'; + +exports.default = KeyboardArrowRight; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/RadioButtonChecked.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z' }); + +var RadioButtonChecked = function RadioButtonChecked(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +RadioButtonChecked = (0, _pure2.default)(RadioButtonChecked); +RadioButtonChecked.muiName = 'SvgIcon'; + +exports.default = RadioButtonChecked; + +/***/ }), + +/***/ "./node_modules/material-ui/internal/svg-icons/RadioButtonUnchecked.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _pure = __webpack_require__("./node_modules/recompose/pure.js"); + +var _pure2 = _interopRequireDefault(_pure); + +var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); + +var _SvgIcon2 = _interopRequireDefault(_SvgIcon); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * @ignore - internal component. + */ +var _ref = _react2.default.createElement('path', { d: 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z' }); + +var RadioButtonUnchecked = function RadioButtonUnchecked(props) { + return _react2.default.createElement( + _SvgIcon2.default, + props, + _ref + ); +}; +RadioButtonUnchecked = (0, _pure2.default)(RadioButtonUnchecked); +RadioButtonUnchecked.muiName = 'SvgIcon'; + +exports.default = RadioButtonUnchecked; + +/***/ }), + +/***/ "./node_modules/material-ui/styles/MuiThemeProvider.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _brcast = __webpack_require__("./node_modules/brcast/dist/brcast.es.js"); + +var _brcast2 = _interopRequireDefault(_brcast); + +var _themeListener = __webpack_require__("./node_modules/material-ui/styles/themeListener.js"); + +var _themeListener2 = _interopRequireDefault(_themeListener); + +var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); + +var _exactProp2 = _interopRequireDefault(_exactProp); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * This component takes a `theme` property. + * It makes the `theme` available down the React tree thanks to React context. + * This component should preferably be used at **the root of your component tree**. + */ +var MuiThemeProvider = function (_React$Component) { + (0, _inherits3.default)(MuiThemeProvider, _React$Component); + + function MuiThemeProvider(props, context) { + (0, _classCallCheck3.default)(this, MuiThemeProvider); + + // Get the outer theme from the context, can be null + var _this = (0, _possibleConstructorReturn3.default)(this, (MuiThemeProvider.__proto__ || (0, _getPrototypeOf2.default)(MuiThemeProvider)).call(this, props, context)); + + _this.broadcast = (0, _brcast2.default)(); + _this.unsubscribeId = null; + _this.outerTheme = null; + _this.outerTheme = _themeListener2.default.initial(context); + // Propagate the theme so it can be accessed by the children + _this.broadcast.setState(_this.mergeOuterLocalTheme(_this.props.theme)); + return _this; + } + + (0, _createClass3.default)(MuiThemeProvider, [{ + key: 'getChildContext', + value: function getChildContext() { + var _ref; + + var _props = this.props, + sheetsManager = _props.sheetsManager, + disableStylesGeneration = _props.disableStylesGeneration; + + var muiThemeProviderOptions = this.context.muiThemeProviderOptions || {}; + + if (sheetsManager !== undefined) { + muiThemeProviderOptions.sheetsManager = sheetsManager; + } + + if (disableStylesGeneration !== undefined) { + muiThemeProviderOptions.disableStylesGeneration = disableStylesGeneration; + } + + return _ref = {}, (0, _defineProperty3.default)(_ref, _themeListener.CHANNEL, this.broadcast), (0, _defineProperty3.default)(_ref, 'muiThemeProviderOptions', muiThemeProviderOptions), _ref; + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + // Subscribe on the outer theme, if present + this.unsubscribeId = _themeListener2.default.subscribe(this.context, function (outerTheme) { + _this2.outerTheme = outerTheme; + // Forward the parent theme update to the children + _this2.broadcast.setState(_this2.mergeOuterLocalTheme(_this2.props.theme)); + }); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + // Propagate a local theme update + if (this.props.theme !== nextProps.theme) { + this.broadcast.setState(this.mergeOuterLocalTheme(nextProps.theme)); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.unsubscribeId !== null) { + _themeListener2.default.unsubscribe(this.context, this.unsubscribeId); + } + } + // We are not using the React state in order to avoid unnecessary rerender. + + }, { + key: 'mergeOuterLocalTheme', + + + // Simple merge between the outer theme and the local theme + value: function mergeOuterLocalTheme(localTheme) { + // To support composition of theme. + if (typeof localTheme === 'function') { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(this.outerTheme, ['Material-UI: you are providing a theme function property ' + 'to the MuiThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\n')) : void 0; + return localTheme(this.outerTheme); + } + + if (!this.outerTheme) { + return localTheme; + } + + return (0, _extends3.default)({}, this.outerTheme, localTheme); + } + }, { + key: 'render', + value: function render() { + return this.props.children; + } + }]); + return MuiThemeProvider; +}(_react2.default.Component); + +MuiThemeProvider.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * You can only provide a single element with react@15, a node with react@16. + */ + children: _propTypes2.default.node.isRequired, + /** + * You can disable the generation of the styles with this option. + * It can be useful when traversing the React tree outside of the HTML + * rendering step on the server. + * Let's say you are using react-apollo to extract all + * the queries made by the interface server side. + * You can significantly speed up the traversal with this property. + */ + disableStylesGeneration: _propTypes2.default.bool, + /** + * The sheetsManager is used to deduplicate style sheet injection in the page. + * It's deduplicating using the (theme, styles) couple. + * On the server, you should provide a new instance for each request. + */ + sheetsManager: _propTypes2.default.object, + /** + * A theme object. + */ + theme: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]).isRequired +} : {}; + +MuiThemeProvider.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(MuiThemeProvider.propTypes, 'MuiThemeProvider') : {}; + +MuiThemeProvider.childContextTypes = (0, _extends3.default)({}, _themeListener2.default.contextTypes, { + muiThemeProviderOptions: _propTypes2.default.object +}); + +MuiThemeProvider.contextTypes = (0, _extends3.default)({}, _themeListener2.default.contextTypes, { + muiThemeProviderOptions: _propTypes2.default.object +}); + +exports.default = MuiThemeProvider; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/colorManipulator.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.convertHexToRGB = convertHexToRGB; +exports.decomposeColor = decomposeColor; +exports.recomposeColor = recomposeColor; +exports.getContrastRatio = getContrastRatio; +exports.getLuminance = getLuminance; +exports.emphasize = emphasize; +exports.fade = fade; +exports.darken = darken; +exports.lighten = lighten; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Returns a number whose value is limited to the given range. + * + * @param {number} value The value to be clamped + * @param {number} min The lower boundary of the output range + * @param {number} max The upper boundary of the output range + * @returns {number} A number in the range [min, max] + */ +function clamp(value) { + var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(value >= min && value <= max, 'Material-UI: the value provided ' + value + ' is out of range [' + min + ', ' + max + '].') : void 0; + + if (value < min) { + return min; + } + if (value > max) { + return max; + } + return value; +} + +/** + * Converts a color from CSS hex format to CSS rgb format. + * + * @param {string} color - Hex color, i.e. #nnn or #nnnnnn + * @returns {string} A CSS rgb color string + */ +// weak +/* eslint-disable no-use-before-define */ + +function convertHexToRGB(color) { + color = color.substr(1); + + var re = new RegExp('.{1,' + color.length / 3 + '}', 'g'); + var colors = color.match(re); + + if (colors && colors[0].length === 1) { + colors = colors.map(function (n) { + return n + n; + }); + } + + return colors ? 'rgb(' + colors.map(function (n) { + return parseInt(n, 16); + }).join(', ') + ')' : ''; +} + +/** + * Returns an object with the type and values of a color. + * + * Note: Does not support rgb % values. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @returns {object} - A MUI color object: {type: string, values: number[]} + */ +function decomposeColor(color) { + if (color.charAt(0) === '#') { + return decomposeColor(convertHexToRGB(color)); + } + + var marker = color.indexOf('('); + var type = color.substring(0, marker); + var values = color.substring(marker + 1, color.length - 1).split(','); + values = values.map(function (value) { + return parseFloat(value); + }); + + return { type: type, values: values }; +} + +/** + * Converts a color object with type and values to a string. + * + * @param {object} color - Decomposed color + * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla' + * @param {array} color.values - [n,n,n] or [n,n,n,n] + * @returns {string} A CSS color string + */ +function recomposeColor(color) { + var type = color.type; + var values = color.values; + + + if (type.indexOf('rgb') > -1) { + // Only convert the first 3 values to int (i.e. not alpha) + values = values.map(function (n, i) { + return i < 3 ? parseInt(n, 10) : n; + }); + } + + if (type.indexOf('hsl') > -1) { + values[1] = values[1] + '%'; + values[2] = values[2] + '%'; + } + + return color.type + '(' + values.join(', ') + ')'; +} + +/** + * Calculates the contrast ratio between two colors. + * + * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests + * + * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @returns {number} A contrast ratio value in the range 0 - 21. + */ +function getContrastRatio(foreground, background) { + var lumA = getLuminance(foreground); + var lumB = getLuminance(background); + return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05); +} + +/** + * The relative brightness of any point in a color space, + * normalized to 0 for darkest black and 1 for lightest white. + * + * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @returns {number} The relative brightness of the color in the range 0 - 1 + */ +function getLuminance(color) { + var decomposedColor = decomposeColor(color); + + if (decomposedColor.type.indexOf('rgb') > -1) { + var rgb = decomposedColor.values.map(function (val) { + val /= 255; // normalized + return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4); + }); + // Truncate at 3 digits + return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3)); + } else if (decomposedColor.type.indexOf('hsl') > -1) { + return decomposedColor.values[2] / 100; + } + + throw new Error('Material-UI: unsupported `' + color + '` color.'); +} + +/** + * Darken or lighten a colour, depending on its luminance. + * Light colors are darkened, dark colors are lightened. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} coefficient=0.15 - multiplier in the range 0 - 1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function emphasize(color) { + var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15; + + return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient); +} + +/** + * Set the absolute transparency of a color. + * Any existing alpha values are overwritten. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} value - value to set the alpha channel to in the range 0 -1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function fade(color, value) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(color, 'Material-UI: missing color argument in fade(' + color + ', ' + value + ').') : void 0; + + if (!color) return color; + + color = decomposeColor(color); + value = clamp(value); + + if (color.type === 'rgb' || color.type === 'hsl') { + color.type += 'a'; + } + color.values[3] = value; + + return recomposeColor(color); +} + +/** + * Darkens a color. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} coefficient - multiplier in the range 0 - 1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function darken(color, coefficient) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(color, 'Material-UI: missing color argument in darken(' + color + ', ' + coefficient + ').') : void 0; + + if (!color) return color; + + color = decomposeColor(color); + coefficient = clamp(coefficient); + + if (color.type.indexOf('hsl') > -1) { + color.values[2] *= 1 - coefficient; + } else if (color.type.indexOf('rgb') > -1) { + for (var i = 0; i < 3; i += 1) { + color.values[i] *= 1 - coefficient; + } + } + return recomposeColor(color); +} + +/** + * Lightens a color. + * + * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() + * @param {number} coefficient - multiplier in the range 0 - 1 + * @returns {string} A CSS color string. Hex input values are returned as rgb + */ +function lighten(color, coefficient) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(color, 'Material-UI: missing color argument in lighten(' + color + ', ' + coefficient + ').') : void 0; + + if (!color) return color; + + color = decomposeColor(color); + coefficient = clamp(coefficient); + + if (color.type.indexOf('hsl') > -1) { + color.values[2] += (100 - color.values[2]) * coefficient; + } else if (color.type.indexOf('rgb') > -1) { + for (var i = 0; i < 3; i += 1) { + color.values[i] += (255 - color.values[i]) * coefficient; + } + } + + return recomposeColor(color); +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/createBreakpoints.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.keys = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +exports.default = createBreakpoints; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Sorted ASC by size. That's important. +// It can't be configured as it's used statically for propTypes. +var keys = exports.keys = ['xs', 'sm', 'md', 'lg', 'xl']; + +// Keep in mind that @media is inclusive by the CSS specification. +function createBreakpoints(breakpoints) { + var _breakpoints$values = breakpoints.values, + values = _breakpoints$values === undefined ? { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920 + } : _breakpoints$values, + _breakpoints$unit = breakpoints.unit, + unit = _breakpoints$unit === undefined ? 'px' : _breakpoints$unit, + _breakpoints$step = breakpoints.step, + step = _breakpoints$step === undefined ? 5 : _breakpoints$step, + other = (0, _objectWithoutProperties3.default)(breakpoints, ['values', 'unit', 'step']); + + + function up(key) { + var value = typeof values[key] === 'number' ? values[key] : key; + return '@media (min-width:' + value + unit + ')'; + } + + function down(key) { + var endIndex = keys.indexOf(key) + 1; + var upperbound = values[keys[endIndex]]; + + if (endIndex === keys.length) { + // xl down applies to all sizes + return up('xs'); + } + + var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key; + return '@media (max-width:' + (value - step / 100) + unit + ')'; + } + + function between(start, end) { + var endIndex = keys.indexOf(end) + 1; + + if (endIndex === keys.length) { + return up(start); + } + + return '@media (min-width:' + values[start] + unit + ') and ' + ('(max-width:' + (values[keys[endIndex]] - step / 100) + unit + ')'); + } + + function only(key) { + return between(key, key); + } + + function width(key) { + return values[key]; + } + + return (0, _extends3.default)({ + keys: keys, + values: values, + up: up, + down: down, + between: between, + only: only, + width: width + }, other); +} + +/***/ }), + +/***/ "./node_modules/material-ui/styles/createGenerateClassName.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = createGenerateClassName; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var generatorCounter = 0; + +// Returns a function which generates unique class names based on counters. +// When new generator function is created, rule counter is reset. +// We need to reset the rule counter for SSR for each request. +// +// It's inspired by +// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js +function createGenerateClassName() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _options$dangerouslyU = options.dangerouslyUseGlobalCSS, + dangerouslyUseGlobalCSS = _options$dangerouslyU === undefined ? false : _options$dangerouslyU, + _options$productionPr = options.productionPrefix, + productionPrefix = _options$productionPr === undefined ? 'jss' : _options$productionPr; + + var escapeRegex = /([[\].#*$><+~=|^:(),"'`\s])/g; + var ruleCounter = 0; + + // - HMR can lead to many class name generators being instantiated, + // so the warning is only triggered in production. + // - We expect a class name generator to be instantiated per new request on the server, + // so the warning is only triggered client side. + // - You can get away with having multiple class name generators + // by modifying the `productionPrefix`. + if (process.env.NODE_ENV === 'production' && typeof window !== 'undefined' && productionPrefix === 'jss') { + generatorCounter += 1; + + if (generatorCounter > 2) { + // eslint-disable-next-line no-console + console.error(['Material-UI: we have detected more than needed creation of the class name generator.', 'You should only use one class name generator on the client side.', 'If you do otherwise, you take the risk to have conflicting class names in production.'].join('\n')); + } + } + + return function (rule, styleSheet) { + ruleCounter += 1; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(ruleCounter < 1e10, ['Material-UI: you might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join('')) : void 0; + + // Code branch the whole block at the expense of more code. + if (dangerouslyUseGlobalCSS) { + if (styleSheet && styleSheet.options.classNamePrefix) { + var prefix = styleSheet.options.classNamePrefix; + // Sanitize the string as will be used to prefix the generated class name. + prefix = prefix.replace(escapeRegex, '-'); + + if (prefix.match(/^Mui/)) { + return prefix + '-' + rule.key; + } + + if (process.env.NODE_ENV !== 'production') { + return prefix + '-' + rule.key + '-' + ruleCounter; + } + } + + if (process.env.NODE_ENV === 'production') { + return '' + productionPrefix + ruleCounter; + } + + return rule.key + '-' + ruleCounter; + } + + if (process.env.NODE_ENV === 'production') { + return '' + productionPrefix + ruleCounter; + } + + if (styleSheet && styleSheet.options.classNamePrefix) { + var _prefix = styleSheet.options.classNamePrefix; + // Sanitize the string as will be used to prefix the generated class name. + _prefix = _prefix.replace(escapeRegex, '-'); + + return _prefix + '-' + rule.key + '-' + ruleCounter; + } + + return rule.key + '-' + ruleCounter; + }; +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/createMixins.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _extends3 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends4 = _interopRequireDefault(_extends3); + +exports.default = createMixins; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function createMixins(breakpoints, spacing, mixins) { + var _toolbar; + + return (0, _extends4.default)({ + gutters: function gutters(styles) { + return (0, _extends4.default)({ + paddingLeft: spacing.unit * 2, + paddingRight: spacing.unit * 2 + }, styles, (0, _defineProperty3.default)({}, breakpoints.up('sm'), (0, _extends4.default)({ + paddingLeft: spacing.unit * 3, + paddingRight: spacing.unit * 3 + }, styles[breakpoints.up('sm')]))); + }, + toolbar: (_toolbar = { + minHeight: 56 + }, (0, _defineProperty3.default)(_toolbar, breakpoints.up('xs') + ' and (orientation: landscape)', { + minHeight: 48 + }), (0, _defineProperty3.default)(_toolbar, breakpoints.up('sm'), { + minHeight: 64 + }), _toolbar) + }, mixins); +} + +/***/ }), + +/***/ "./node_modules/material-ui/styles/createMuiTheme.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); + +var _deepmerge2 = _interopRequireDefault(_deepmerge); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _createTypography = __webpack_require__("./node_modules/material-ui/styles/createTypography.js"); + +var _createTypography2 = _interopRequireDefault(_createTypography); + +var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); + +var _createBreakpoints2 = _interopRequireDefault(_createBreakpoints); + +var _createPalette = __webpack_require__("./node_modules/material-ui/styles/createPalette.js"); + +var _createPalette2 = _interopRequireDefault(_createPalette); + +var _createMixins = __webpack_require__("./node_modules/material-ui/styles/createMixins.js"); + +var _createMixins2 = _interopRequireDefault(_createMixins); + +var _shadows = __webpack_require__("./node_modules/material-ui/styles/shadows.js"); + +var _shadows2 = _interopRequireDefault(_shadows); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +var _transitions2 = _interopRequireDefault(_transitions); + +var _zIndex = __webpack_require__("./node_modules/material-ui/styles/zIndex.js"); + +var _zIndex2 = _interopRequireDefault(_zIndex); + +var _spacing = __webpack_require__("./node_modules/material-ui/styles/spacing.js"); + +var _spacing2 = _interopRequireDefault(_spacing); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function createMuiTheme() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _options$palette = options.palette, + paletteInput = _options$palette === undefined ? {} : _options$palette, + _options$breakpoints = options.breakpoints, + breakpointsInput = _options$breakpoints === undefined ? {} : _options$breakpoints, + _options$mixins = options.mixins, + mixinsInput = _options$mixins === undefined ? {} : _options$mixins, + _options$typography = options.typography, + typographyInput = _options$typography === undefined ? {} : _options$typography, + shadowsInput = options.shadows, + other = (0, _objectWithoutProperties3.default)(options, ['palette', 'breakpoints', 'mixins', 'typography', 'shadows']); + + + var palette = (0, _createPalette2.default)(paletteInput); + var breakpoints = (0, _createBreakpoints2.default)(breakpointsInput); + + var muiTheme = (0, _extends3.default)({ + direction: 'ltr', + palette: palette, + typography: (0, _createTypography2.default)(palette, typographyInput), + mixins: (0, _createMixins2.default)(breakpoints, _spacing2.default, mixinsInput), + breakpoints: breakpoints, + shadows: shadowsInput || _shadows2.default + }, (0, _deepmerge2.default)({ + transitions: _transitions2.default, + spacing: _spacing2.default, + zIndex: _zIndex2.default + }, other)); + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(muiTheme.shadows.length === 25, 'Material-UI: the shadows array provided to createMuiTheme should support 25 elevations.') : void 0; + + return muiTheme; +} // < 1kb payload overhead when lodash/merge is > 3kb. +exports.default = createMuiTheme; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/createPalette.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.dark = exports.light = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +exports.default = createPalette; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); + +var _deepmerge2 = _interopRequireDefault(_deepmerge); + +var _indigo = __webpack_require__("./node_modules/material-ui/colors/indigo.js"); + +var _indigo2 = _interopRequireDefault(_indigo); + +var _pink = __webpack_require__("./node_modules/material-ui/colors/pink.js"); + +var _pink2 = _interopRequireDefault(_pink); + +var _grey = __webpack_require__("./node_modules/material-ui/colors/grey.js"); + +var _grey2 = _interopRequireDefault(_grey); + +var _red = __webpack_require__("./node_modules/material-ui/colors/red.js"); + +var _red2 = _interopRequireDefault(_red); + +var _common = __webpack_require__("./node_modules/material-ui/colors/common.js"); + +var _common2 = _interopRequireDefault(_common); + +var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// < 1kb payload overhead when lodash/merge is > 3kb. +var light = exports.light = { + // The colors used to style the text. + text: { + // The most important text. + primary: 'rgba(0, 0, 0, 0.87)', + // Secondary text. + secondary: 'rgba(0, 0, 0, 0.54)', + // Disabled text have even lower visual prominence. + disabled: 'rgba(0, 0, 0, 0.38)', + // Text hints. + hint: 'rgba(0, 0, 0, 0.38)' + }, + // The color used to divide different elements. + divider: 'rgba(0, 0, 0, 0.12)', + // The background colors used to style the surfaces. + // Consistency between these values is important. + background: { + paper: _common2.default.white, + default: _grey2.default[50] + }, + // The colors used to style the action elements. + action: { + // The color of an active action like an icon button. + active: 'rgba(0, 0, 0, 0.54)', + // The color of an hovered action. + hover: 'rgba(0, 0, 0, 0.08)', + // The color of a selected action. + selected: 'rgba(0, 0, 0, 0.14)', + // The color of a disabled action. + disabled: 'rgba(0, 0, 0, 0.26)', + // The background color of a disabled action. + disabledBackground: 'rgba(0, 0, 0, 0.12)' + } +}; + +var dark = exports.dark = { + text: { + primary: _common2.default.white, + secondary: 'rgba(255, 255, 255, 0.7)', + disabled: 'rgba(255, 255, 255, 0.5)', + hint: 'rgba(255, 255, 255, 0.5)', + icon: 'rgba(255, 255, 255, 0.5)' + }, + divider: 'rgba(255, 255, 255, 0.12)', + background: { + paper: _grey2.default[800], + default: '#303030' + }, + action: { + active: _common2.default.white, + hover: 'rgba(255, 255, 255, 0.1)', + selected: 'rgba(255, 255, 255, 0.2)', + disabled: 'rgba(255, 255, 255, 0.3)', + disabledBackground: 'rgba(255, 255, 255, 0.12)' + } +}; + +function addLightOrDark(intent, direction, shade, tonalOffset) { + if (!intent[direction]) { + if (intent.hasOwnProperty(shade)) { + intent[direction] = intent[shade]; + } else if (direction === 'light') { + intent.light = (0, _colorManipulator.lighten)(intent.main, tonalOffset); + } else if (direction === 'dark') { + intent.dark = (0, _colorManipulator.darken)(intent.main, tonalOffset * 1.5); + } + } +} + +function createPalette(palette) { + var _palette$primary = palette.primary, + primary = _palette$primary === undefined ? { + light: _indigo2.default[300], + main: _indigo2.default[500], + dark: _indigo2.default[700] + } : _palette$primary, + _palette$secondary = palette.secondary, + secondary = _palette$secondary === undefined ? { + light: _pink2.default.A200, + main: _pink2.default.A400, + dark: _pink2.default.A700 + } : _palette$secondary, + _palette$error = palette.error, + error = _palette$error === undefined ? { + light: _red2.default[300], + main: _red2.default[500], + dark: _red2.default[700] + } : _palette$error, + _palette$type = palette.type, + type = _palette$type === undefined ? 'light' : _palette$type, + _palette$contrastThre = palette.contrastThreshold, + contrastThreshold = _palette$contrastThre === undefined ? 3 : _palette$contrastThre, + _palette$tonalOffset = palette.tonalOffset, + tonalOffset = _palette$tonalOffset === undefined ? 0.2 : _palette$tonalOffset, + other = (0, _objectWithoutProperties3.default)(palette, ['primary', 'secondary', 'error', 'type', 'contrastThreshold', 'tonalOffset']); + + + function getContrastText(background) { + // Use the same logic as + // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59 + // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54 + var contrastText = (0, _colorManipulator.getContrastRatio)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary; + + if (process.env.NODE_ENV !== 'production') { + var contrast = (0, _colorManipulator.getContrastRatio)(background, contrastText); + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(contrast >= 3, ['Material-UI: the contrast ratio of ' + contrast + ':1 for ' + contrastText + ' on ' + background, 'falls below the WACG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\n')) : void 0; + } + + return contrastText; + } + + function augmentColor(color, mainShade, lightShade, darkShade) { + if (!color.main && color[mainShade]) { + color.main = color[mainShade]; + } + addLightOrDark(color, 'light', lightShade, tonalOffset); + addLightOrDark(color, 'dark', darkShade, tonalOffset); + if (!color.contrastText) { + color.contrastText = getContrastText(color.main); + } + } + + augmentColor(primary, 500, 300, 700); + augmentColor(secondary, 'A400', 'A200', 'A700'); + augmentColor(error, 500, 300, 700); + + var types = { dark: dark, light: light }; + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(types[type], 'Material-UI: the palette type `' + type + '` is not supported.') : void 0; + + var paletteOutput = (0, _deepmerge2.default)((0, _extends3.default)({ + // A collection of common colors. + common: _common2.default, + // The palette type, can be light or dark. + type: type, + // The colors used to represent primary interface elements for a user. + primary: primary, + // The colors used to represent secondary interface elements for a user. + secondary: secondary, + // The colors used to represent interface elements that the user should be made aware of. + error: error, + // The grey colors. + grey: _grey2.default, + // Used by `getContrastText()` to maximize the contrast between the background and + // the text. + contrastThreshold: contrastThreshold, + // Take a background color and return the color of the text to maximize the contrast. + getContrastText: getContrastText, + // Used by the functions below to shift a color's luminance by approximately + // two indexes within its tonal palette. + // E.g., shift from Red 500 to Red 300 or Red 700. + tonalOffset: tonalOffset + }, types[type]), other, { + clone: false // No need to clone deep + }); + + return paletteOutput; +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/createTypography.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +exports.default = createTypography; + +var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); + +var _deepmerge2 = _interopRequireDefault(_deepmerge); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// < 1kb payload overhead when lodash/merge is > 3kb. + +function round(value) { + return Math.round(value * 1e5) / 1e5; +} + +function createTypography(palette, typography) { + var _ref = typeof typography === 'function' ? typography(palette) : typography, + _ref$fontFamily = _ref.fontFamily, + fontFamily = _ref$fontFamily === undefined ? '"Roboto", "Helvetica", "Arial", sans-serif' : _ref$fontFamily, + _ref$fontSize = _ref.fontSize, + fontSize = _ref$fontSize === undefined ? 14 : _ref$fontSize, + _ref$fontWeightLight = _ref.fontWeightLight, + fontWeightLight = _ref$fontWeightLight === undefined ? 300 : _ref$fontWeightLight, + _ref$fontWeightRegula = _ref.fontWeightRegular, + fontWeightRegular = _ref$fontWeightRegula === undefined ? 400 : _ref$fontWeightRegula, + _ref$fontWeightMedium = _ref.fontWeightMedium, + fontWeightMedium = _ref$fontWeightMedium === undefined ? 500 : _ref$fontWeightMedium, + _ref$htmlFontSize = _ref.htmlFontSize, + htmlFontSize = _ref$htmlFontSize === undefined ? 16 : _ref$htmlFontSize, + other = (0, _objectWithoutProperties3.default)(_ref, ['fontFamily', 'fontSize', 'fontWeightLight', 'fontWeightRegular', 'fontWeightMedium', 'htmlFontSize']); + + function pxToRem(value) { + return value / htmlFontSize + 'rem'; + } + + return (0, _deepmerge2.default)({ + pxToRem: pxToRem, + round: round, + fontFamily: fontFamily, + fontSize: fontSize, + fontWeightLight: fontWeightLight, + fontWeightRegular: fontWeightRegular, + fontWeightMedium: fontWeightMedium, + display4: { + fontSize: pxToRem(112), + fontWeight: fontWeightLight, + fontFamily: fontFamily, + letterSpacing: '-.04em', + lineHeight: round(128 / 112) + 'em', + marginLeft: '-.06em', + color: palette.text.secondary + }, + display3: { + fontSize: pxToRem(56), + fontWeight: fontWeightRegular, + fontFamily: fontFamily, + letterSpacing: '-.02em', + lineHeight: round(73 / 56) + 'em', + marginLeft: '-.04em', + color: palette.text.secondary + }, + display2: { + fontSize: pxToRem(45), + fontWeight: fontWeightRegular, + fontFamily: fontFamily, + lineHeight: round(48 / 45) + 'em', + marginLeft: '-.04em', + color: palette.text.secondary + }, + display1: { + fontSize: pxToRem(34), + fontWeight: fontWeightRegular, + fontFamily: fontFamily, + lineHeight: round(41 / 34) + 'em', + marginLeft: '-.04em', + color: palette.text.secondary + }, + headline: { + fontSize: pxToRem(24), + fontWeight: fontWeightRegular, + fontFamily: fontFamily, + lineHeight: round(32.5 / 24) + 'em', + color: palette.text.primary + }, + title: { + fontSize: pxToRem(21), + fontWeight: fontWeightMedium, + fontFamily: fontFamily, + lineHeight: round(24.5 / 21) + 'em', + color: palette.text.primary + }, + subheading: { + fontSize: pxToRem(16), + fontWeight: fontWeightRegular, + fontFamily: fontFamily, + lineHeight: round(24 / 16) + 'em', + color: palette.text.primary + }, + body2: { + fontSize: pxToRem(14), + fontWeight: fontWeightMedium, + fontFamily: fontFamily, + lineHeight: round(24 / 14) + 'em', + color: palette.text.primary + }, + body1: { + fontSize: pxToRem(14), + fontWeight: fontWeightRegular, + fontFamily: fontFamily, + lineHeight: round(20.5 / 14) + 'em', + color: palette.text.primary + }, + caption: { + fontSize: pxToRem(12), + fontWeight: fontWeightRegular, + fontFamily: fontFamily, + lineHeight: round(16.5 / 12) + 'em', + color: palette.text.secondary + }, + button: { + fontSize: pxToRem(fontSize), + textTransform: 'uppercase', + fontWeight: fontWeightMedium, + fontFamily: fontFamily + } + }, other, { + clone: false // No need to clone deep + }); +} + +/***/ }), + +/***/ "./node_modules/material-ui/styles/getStylesCreator.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); + +var _deepmerge2 = _interopRequireDefault(_deepmerge); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// < 1kb payload overhead when lodash/merge is > 3kb. + +function getStylesCreator(stylesOrCreator) { + var themingEnabled = typeof stylesOrCreator === 'function'; + + function create(theme, name) { + var styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator; + + if (!theme.overrides || !name || !theme.overrides[name]) { + return styles; + } + + var overrides = theme.overrides[name]; + var stylesWithOverrides = (0, _extends3.default)({}, styles); + + (0, _keys2.default)(overrides).forEach(function (key) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(stylesWithOverrides[key], ['Material-UI: you are trying to override a style that does not exist.', 'Fix the `' + key + '` key of `theme.overrides.' + name + '`.'].join('\n')) : void 0; + stylesWithOverrides[key] = (0, _deepmerge2.default)(stylesWithOverrides[key], overrides[key]); + }); + + return stylesWithOverrides; + } + + return { + create: create, + options: {}, + themingEnabled: themingEnabled + }; +} + +exports.default = getStylesCreator; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createGenerateClassName = __webpack_require__("./node_modules/material-ui/styles/createGenerateClassName.js"); + +Object.defineProperty(exports, 'createGenerateClassName', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_createGenerateClassName).default; + } +}); + +var _createMuiTheme = __webpack_require__("./node_modules/material-ui/styles/createMuiTheme.js"); + +Object.defineProperty(exports, 'createMuiTheme', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_createMuiTheme).default; + } +}); + +var _jssPreset = __webpack_require__("./node_modules/material-ui/styles/jssPreset.js"); + +Object.defineProperty(exports, 'jssPreset', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_jssPreset).default; + } +}); + +var _MuiThemeProvider = __webpack_require__("./node_modules/material-ui/styles/MuiThemeProvider.js"); + +Object.defineProperty(exports, 'MuiThemeProvider', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_MuiThemeProvider).default; + } +}); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +Object.defineProperty(exports, 'withStyles', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_withStyles).default; + } +}); + +var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); + +Object.defineProperty(exports, 'withTheme', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_withTheme).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/styles/jssPreset.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jssGlobal = __webpack_require__("./node_modules/jss-global/lib/index.js"); + +var _jssGlobal2 = _interopRequireDefault(_jssGlobal); + +var _jssNested = __webpack_require__("./node_modules/jss-nested/lib/index.js"); + +var _jssNested2 = _interopRequireDefault(_jssNested); + +var _jssCamelCase = __webpack_require__("./node_modules/jss-camel-case/lib/index.js"); + +var _jssCamelCase2 = _interopRequireDefault(_jssCamelCase); + +var _jssDefaultUnit = __webpack_require__("./node_modules/jss-default-unit/lib/index.js"); + +var _jssDefaultUnit2 = _interopRequireDefault(_jssDefaultUnit); + +var _jssVendorPrefixer = __webpack_require__("./node_modules/jss-vendor-prefixer/lib/index.js"); + +var _jssVendorPrefixer2 = _interopRequireDefault(_jssVendorPrefixer); + +var _jssPropsSort = __webpack_require__("./node_modules/jss-props-sort/lib/index.js"); + +var _jssPropsSort2 = _interopRequireDefault(_jssPropsSort); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Subset of jss-preset-default with only the plugins the Material-UI +// components are using. +function jssPreset() { + return { + plugins: [(0, _jssGlobal2.default)(), (0, _jssNested2.default)(), (0, _jssCamelCase2.default)(), (0, _jssDefaultUnit2.default)(), (0, _jssVendorPrefixer2.default)(), (0, _jssPropsSort2.default)()] + }; +} + +exports.default = jssPreset; + +/***/ }), + +/***/ "./node_modules/material-ui/styles/shadows.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var shadowKeyUmbraOpacity = 0.2; +var shadowKeyPenumbraOpacity = 0.14; +var shadowAmbientShadowOpacity = 0.12; + +function createShadow() { + return [(arguments.length <= 0 ? undefined : arguments[0]) + 'px ' + (arguments.length <= 1 ? undefined : arguments[1]) + 'px ' + (arguments.length <= 2 ? undefined : arguments[2]) + 'px ' + (arguments.length <= 3 ? undefined : arguments[3]) + 'px rgba(0, 0, 0, ' + shadowKeyUmbraOpacity + ')', (arguments.length <= 4 ? undefined : arguments[4]) + 'px ' + (arguments.length <= 5 ? undefined : arguments[5]) + 'px ' + (arguments.length <= 6 ? undefined : arguments[6]) + 'px ' + (arguments.length <= 7 ? undefined : arguments[7]) + 'px rgba(0, 0, 0, ' + shadowKeyPenumbraOpacity + ')', (arguments.length <= 8 ? undefined : arguments[8]) + 'px ' + (arguments.length <= 9 ? undefined : arguments[9]) + 'px ' + (arguments.length <= 10 ? undefined : arguments[10]) + 'px ' + (arguments.length <= 11 ? undefined : arguments[11]) + 'px rgba(0, 0, 0, ' + shadowAmbientShadowOpacity + ')'].join(','); +} + +var shadows = ['none', createShadow(0, 1, 3, 0, 0, 1, 1, 0, 0, 2, 1, -1), createShadow(0, 1, 5, 0, 0, 2, 2, 0, 0, 3, 1, -2), createShadow(0, 1, 8, 0, 0, 3, 4, 0, 0, 3, 3, -2), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)]; + +exports.default = shadows; + +/***/ }), + +/***/ "./node_modules/material-ui/styles/spacing.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = { + // All components align to an 8dp square baseline grid for mobile, tablet, and desktop. + // https://material.io/guidelines/layout/metrics-keylines.html#metrics-keylines-baseline-grids + unit: 8 +}; + +/***/ }), + +/***/ "./node_modules/material-ui/styles/themeListener.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CHANNEL = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Same value used by react-jss +var CHANNEL = exports.CHANNEL = '__THEMING__'; + +var themeListener = { + contextTypes: (0, _defineProperty3.default)({}, CHANNEL, _propTypes2.default.object), + initial: function initial(context) { + if (!context[CHANNEL]) { + return null; + } + + return context[CHANNEL].getState(); + }, + subscribe: function subscribe(context, cb) { + if (!context[CHANNEL]) { + return null; + } + + return context[CHANNEL].subscribe(cb); + }, + unsubscribe: function unsubscribe(context, subscriptionId) { + if (context[CHANNEL]) { + context[CHANNEL].unsubscribe(subscriptionId); + } + } +}; + +exports.default = themeListener; + +/***/ }), + +/***/ "./node_modules/material-ui/styles/transitions.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isNumber = exports.isString = exports.formatMs = exports.duration = exports.easing = undefined; + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _isNan = __webpack_require__("./node_modules/babel-runtime/core-js/number/is-nan.js"); + +var _isNan2 = _interopRequireDefault(_isNan); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves +// to learn the context in which each easing should be used. +var easing = exports.easing = { + // This is the most common easing curve. + easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)', + // Objects enter the screen at full velocity from off-screen and + // slowly decelerate to a resting point. + easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)', + // Objects leave the screen at full velocity. They do not decelerate when off-screen. + easeIn: 'cubic-bezier(0.4, 0, 1, 1)', + // The sharp curve is used by objects that may return to the screen at any time. + sharp: 'cubic-bezier(0.4, 0, 0.6, 1)' +}; + +// Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations +// to learn when use what timing + +/* eslint-disable no-param-reassign */ + +var duration = exports.duration = { + shortest: 150, + shorter: 200, + short: 250, + // most basic recommended timing + standard: 300, + // this is to be used in complex animations + complex: 375, + // recommended when something is entering screen + enteringScreen: 225, + // recommended when something is leaving screen + leavingScreen: 195 +}; + +var formatMs = exports.formatMs = function formatMs(milliseconds) { + return Math.round(milliseconds) + 'ms'; +}; +var isString = exports.isString = function isString(value) { + return typeof value === 'string'; +}; +var isNumber = exports.isNumber = function isNumber(value) { + return !(0, _isNan2.default)(parseFloat(value)); +}; + +/** + * @param {string|Array} props + * @param {object} param + * @param {string} param.prop + * @param {number} param.duration + * @param {string} param.easing + * @param {number} param.delay + */ +exports.default = { + easing: easing, + duration: duration, + create: function create() { + var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all']; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _options$duration = options.duration, + durationOption = _options$duration === undefined ? duration.standard : _options$duration, + _options$easing = options.easing, + easingOption = _options$easing === undefined ? easing.easeInOut : _options$easing, + _options$delay = options.delay, + delay = _options$delay === undefined ? 0 : _options$delay, + other = (0, _objectWithoutProperties3.default)(options, ['duration', 'easing', 'delay']); + + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isString(props) || Array.isArray(props), 'Material-UI: argument "props" must be a string or Array.') : void 0; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isNumber(durationOption) || isString(durationOption), 'Material-UI: argument "duration" must be a number or a string but found ' + durationOption + '.') : void 0; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isString(easingOption), 'Material-UI: argument "easing" must be a string.') : void 0; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isNumber(delay) || isString(delay), 'Material-UI: argument "delay" must be a number or a string.') : void 0; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)((0, _keys2.default)(other).length === 0, 'Material-UI: unrecognized argument(s) [' + (0, _keys2.default)(other).join(',') + ']') : void 0; + + return (Array.isArray(props) ? props : [props]).map(function (animatedProp) { + return animatedProp + ' ' + (typeof durationOption === 'string' ? durationOption : formatMs(durationOption)) + ' ' + easingOption + ' ' + (typeof delay === 'string' ? delay : formatMs(delay)); + }).join(','); + }, + getAutoHeightDuration: function getAutoHeightDuration(height) { + if (!height) { + return 0; + } + + var constant = height / 36; + + // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10 + return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10); + } +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/withStyles.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.sheetsManager = undefined; + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _map = __webpack_require__("./node_modules/babel-runtime/core-js/map.js"); + +var _map2 = _interopRequireDefault(_map); + +var _minSafeInteger = __webpack_require__("./node_modules/babel-runtime/core-js/number/min-safe-integer.js"); + +var _minSafeInteger2 = _interopRequireDefault(_minSafeInteger); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); + +var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); + +var _getDisplayName = __webpack_require__("./node_modules/recompose/getDisplayName.js"); + +var _getDisplayName2 = _interopRequireDefault(_getDisplayName); + +var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); + +var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); + +var _contextTypes = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); + +var _contextTypes2 = _interopRequireDefault(_contextTypes); + +var _jss = __webpack_require__("./node_modules/jss/lib/index.js"); + +var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); + +var ns = _interopRequireWildcard(_ns); + +var _jssPreset = __webpack_require__("./node_modules/material-ui/styles/jssPreset.js"); + +var _jssPreset2 = _interopRequireDefault(_jssPreset); + +var _createMuiTheme = __webpack_require__("./node_modules/material-ui/styles/createMuiTheme.js"); + +var _createMuiTheme2 = _interopRequireDefault(_createMuiTheme); + +var _themeListener = __webpack_require__("./node_modules/material-ui/styles/themeListener.js"); + +var _themeListener2 = _interopRequireDefault(_themeListener); + +var _createGenerateClassName = __webpack_require__("./node_modules/material-ui/styles/createGenerateClassName.js"); + +var _createGenerateClassName2 = _interopRequireDefault(_createGenerateClassName); + +var _getStylesCreator = __webpack_require__("./node_modules/material-ui/styles/getStylesCreator.js"); + +var _getStylesCreator2 = _interopRequireDefault(_getStylesCreator); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// New JSS instance. +var jss = (0, _jss.create)((0, _jssPreset2.default)()); + +// Use a singleton or the provided one by the context. +var generateClassName = (0, _createGenerateClassName2.default)(); + +// Global index counter to preserve source order. +// As we create the style sheet during componentWillMount lifecycle, +// children are handled after the parents, so the order of style elements would +// be parent->child. It is a problem though when a parent passes a className +// which needs to override any childs styles. StyleSheet of the child has a higher +// specificity, because of the source order. +// So our solution is to render sheets them in the reverse order child->sheet, so +// that parent has a higher specificity. +var indexCounter = _minSafeInteger2.default; + +var sheetsManager = exports.sheetsManager = new _map2.default(); + +// We use the same empty object to ref count the styles that don't need a theme object. +var noopTheme = {}; + +// In order to have self-supporting components, we rely on default theme when not provided. +var defaultTheme = void 0; + +function getDefaultTheme() { + if (defaultTheme) { + return defaultTheme; + } + + defaultTheme = (0, _createMuiTheme2.default)(); + return defaultTheme; +} + +// Link a style sheet with a component. +// It does not modify the component passed to it; +// instead, it returns a new component, with a `classes` property. +var withStyles = function withStyles(stylesOrCreator) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + return function (Component) { + var _options$withTheme = options.withTheme, + withTheme = _options$withTheme === undefined ? false : _options$withTheme, + _options$flip = options.flip, + flip = _options$flip === undefined ? null : _options$flip, + name = options.name, + styleSheetOptions = (0, _objectWithoutProperties3.default)(options, ['withTheme', 'flip', 'name']); + + var stylesCreator = (0, _getStylesCreator2.default)(stylesOrCreator); + var listenToTheme = stylesCreator.themingEnabled || withTheme || typeof name === 'string'; + + indexCounter += 1; + stylesCreator.options.index = indexCounter; + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(indexCounter < 0, ['Material-UI: you might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join(' ')) : void 0; + + var WithStyles = function (_React$Component) { + (0, _inherits3.default)(WithStyles, _React$Component); + + function WithStyles(props, context) { + (0, _classCallCheck3.default)(this, WithStyles); + + var _this = (0, _possibleConstructorReturn3.default)(this, (WithStyles.__proto__ || (0, _getPrototypeOf2.default)(WithStyles)).call(this, props, context)); + + _this.state = {}; + _this.disableStylesGeneration = false; + _this.jss = null; + _this.sheetOptions = null; + _this.sheetsManager = sheetsManager; + _this.stylesCreatorSaved = null; + _this.theme = null; + _this.unsubscribeId = null; + + + _this.jss = _this.context[ns.jss] || jss; + + var muiThemeProviderOptions = _this.context.muiThemeProviderOptions; + + if (muiThemeProviderOptions) { + if (muiThemeProviderOptions.sheetsManager) { + _this.sheetsManager = muiThemeProviderOptions.sheetsManager; + } + + _this.disableStylesGeneration = muiThemeProviderOptions.disableStylesGeneration; + } + + // Attach the stylesCreator to the instance of the component as in the context + // of react-hot-loader the hooks can be executed in a different closure context: + // https://github.com/gaearon/react-hot-loader/blob/master/src/patch.dev.js#L107 + _this.stylesCreatorSaved = stylesCreator; + _this.sheetOptions = (0, _extends3.default)({ + generateClassName: generateClassName + }, _this.context[ns.sheetOptions]); + // We use || as the function call is lazy evaluated. + _this.theme = listenToTheme ? _themeListener2.default.initial(context) || getDefaultTheme() : noopTheme; + return _this; + } + + (0, _createClass3.default)(WithStyles, [{ + key: 'componentWillMount', + value: function componentWillMount() { + this.attach(this.theme); + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + if (!listenToTheme) { + return; + } + + this.unsubscribeId = _themeListener2.default.subscribe(this.context, function (theme) { + var oldTheme = _this2.theme; + _this2.theme = theme; + _this2.attach(_this2.theme); + + // Rerender the component so the underlying component gets the theme update. + // By theme update we mean receiving and applying the new class names. + _this2.setState({}, function () { + _this2.detach(oldTheme); + }); + }); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps() { + // react-hot-loader specific logic + if (this.stylesCreatorSaved === stylesCreator || process.env.NODE_ENV === 'production') { + return; + } + + this.detach(this.theme); + this.stylesCreatorSaved = stylesCreator; + this.attach(this.theme); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.detach(this.theme); + + if (this.unsubscribeId !== null) { + _themeListener2.default.unsubscribe(this.context, this.unsubscribeId); + } + } + }, { + key: 'attach', + value: function attach(theme) { + if (this.disableStylesGeneration) { + return; + } + + var stylesCreatorSaved = this.stylesCreatorSaved; + var sheetManager = this.sheetsManager.get(stylesCreatorSaved); + + if (!sheetManager) { + sheetManager = new _map2.default(); + this.sheetsManager.set(stylesCreatorSaved, sheetManager); + } + + var sheetManagerTheme = sheetManager.get(theme); + + if (!sheetManagerTheme) { + sheetManagerTheme = { + refs: 0, + sheet: null + }; + sheetManager.set(theme, sheetManagerTheme); + } + + if (sheetManagerTheme.refs === 0) { + var styles = stylesCreatorSaved.create(theme, name); + var meta = name; + + if (process.env.NODE_ENV !== 'production' && !meta) { + meta = (0, _getDisplayName2.default)(Component); + } + + var sheet = this.jss.createStyleSheet(styles, (0, _extends3.default)({ + meta: meta, + classNamePrefix: meta, + flip: typeof flip === 'boolean' ? flip : theme.direction === 'rtl', + link: false + }, this.sheetOptions, stylesCreatorSaved.options, { + name: name + }, styleSheetOptions)); + + sheetManagerTheme.sheet = sheet; + sheet.attach(); + + var sheetsRegistry = this.context[ns.sheetsRegistry]; + if (sheetsRegistry) { + sheetsRegistry.add(sheet); + } + } + + sheetManagerTheme.refs += 1; + } + }, { + key: 'detach', + value: function detach(theme) { + if (this.disableStylesGeneration) { + return; + } + + var stylesCreatorSaved = this.stylesCreatorSaved; + var sheetManager = this.sheetsManager.get(stylesCreatorSaved); + var sheetManagerTheme = sheetManager.get(theme); + + sheetManagerTheme.refs -= 1; + + if (sheetManagerTheme.refs === 0) { + sheetManager.delete(theme); + this.jss.removeStyleSheet(sheetManagerTheme.sheet); + var sheetsRegistry = this.context[ns.sheetsRegistry]; + if (sheetsRegistry) { + sheetsRegistry.remove(sheetManagerTheme.sheet); + } + } + } + }, { + key: 'render', + value: function render() { + var _this3 = this; + + var _props = this.props, + classesProp = _props.classes, + innerRef = _props.innerRef, + other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'innerRef']); + + + var classes = void 0; + var renderedClasses = {}; + + if (!this.disableStylesGeneration) { + var sheetManager = this.sheetsManager.get(this.stylesCreatorSaved); + var sheetsManagerTheme = sheetManager.get(this.theme); + renderedClasses = sheetsManagerTheme.sheet.classes; + } + + if (classesProp) { + classes = (0, _extends3.default)({}, renderedClasses, (0, _keys2.default)(classesProp).reduce(function (accumulator, key) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(renderedClasses[key] || _this3.disableStylesGeneration, ['Material-UI: the key `' + key + '` ' + ('provided to the classes property is not implemented in ' + (0, _getDisplayName2.default)(Component) + '.'), 'You can only override one of the following: ' + (0, _keys2.default)(renderedClasses).join(',')].join('\n')) : void 0; + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!classesProp[key] || typeof classesProp[key] === 'string', ['Material-UI: the key `' + key + '` ' + ('provided to the classes property is not valid for ' + (0, _getDisplayName2.default)(Component) + '.'), 'You need to provide a non empty string instead of: ' + classesProp[key] + '.'].join('\n')) : void 0; + + if (classesProp[key]) { + accumulator[key] = renderedClasses[key] + ' ' + classesProp[key]; + } + + return accumulator; + }, {})); + } else { + classes = renderedClasses; + } + + var more = {}; + + // Provide the theme to the wrapped component. + // So we don't have to use the `withTheme()` Higher-order Component. + if (withTheme) { + more.theme = this.theme; + } + + return _react2.default.createElement(Component, (0, _extends3.default)({ classes: classes }, more, other, { ref: innerRef })); + } + }]); + return WithStyles; + }(_react2.default.Component); + + WithStyles.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object, + /** + * Use that property to pass a ref callback to the decorated component. + */ + innerRef: _propTypes2.default.func + } : {}; + + WithStyles.contextTypes = (0, _extends3.default)({ + muiThemeProviderOptions: _propTypes2.default.object + }, _contextTypes2.default, listenToTheme ? _themeListener2.default.contextTypes : {}); + + if (process.env.NODE_ENV !== 'production') { + WithStyles.displayName = (0, _wrapDisplayName2.default)(Component, 'WithStyles'); + } + + (0, _hoistNonReactStatics2.default)(WithStyles, Component); + + if (process.env.NODE_ENV !== 'production') { + // Exposed for test purposes. + WithStyles.Naked = Component; + WithStyles.options = options; + } + + return WithStyles; + }; +}; + +exports.default = withStyles; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/withTheme.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); + +var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); + +var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); + +var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); + +var _createMuiTheme = __webpack_require__("./node_modules/material-ui/styles/createMuiTheme.js"); + +var _createMuiTheme2 = _interopRequireDefault(_createMuiTheme); + +var _themeListener = __webpack_require__("./node_modules/material-ui/styles/themeListener.js"); + +var _themeListener2 = _interopRequireDefault(_themeListener); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var defaultTheme = void 0; + +function getDefaultTheme() { + if (defaultTheme) { + return defaultTheme; + } + + defaultTheme = (0, _createMuiTheme2.default)(); + return defaultTheme; +} + +// Provide the theme object as a property to the input component. +var withTheme = function withTheme() { + return function (Component) { + var WithTheme = function (_React$Component) { + (0, _inherits3.default)(WithTheme, _React$Component); + + function WithTheme(props, context) { + (0, _classCallCheck3.default)(this, WithTheme); + + var _this = (0, _possibleConstructorReturn3.default)(this, (WithTheme.__proto__ || (0, _getPrototypeOf2.default)(WithTheme)).call(this, props, context)); + + _this.state = {}; + _this.unsubscribeId = null; + + _this.state = { + // We use || as the function call is lazy evaluated. + theme: _themeListener2.default.initial(context) || getDefaultTheme() + }; + return _this; + } + + (0, _createClass3.default)(WithTheme, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + this.unsubscribeId = _themeListener2.default.subscribe(this.context, function (theme) { + _this2.setState({ theme: theme }); + }); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.unsubscribeId !== null) { + _themeListener2.default.unsubscribe(this.context, this.unsubscribeId); + } + } + }, { + key: 'render', + value: function render() { + return _react2.default.createElement(Component, (0, _extends3.default)({ theme: this.state.theme }, this.props)); + } + }]); + return WithTheme; + }(_react2.default.Component); + + WithTheme.contextTypes = _themeListener2.default.contextTypes; + + if (process.env.NODE_ENV !== 'production') { + WithTheme.displayName = (0, _wrapDisplayName2.default)(Component, 'WithTheme'); + } + + (0, _hoistNonReactStatics2.default)(WithTheme, Component); + + if (process.env.NODE_ENV !== 'production') { + // Exposed for test purposes. + WithTheme.Naked = Component; + } + + return WithTheme; + }; +}; + +exports.default = withTheme; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/styles/zIndex.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +// We need to centralize the zIndex definitions as they work +// like global values in the browser. +var zIndex = { + mobileStepper: 1000, + appBar: 1100, + drawer: 1200, + modal: 1300, + snackbar: 1400, + tooltip: 1500 +}; + +exports.default = zIndex; + +/***/ }), + +/***/ "./node_modules/material-ui/transitions/Collapse.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.styles = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); + +var _withStyles2 = _interopRequireDefault(_withStyles); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = exports.styles = function styles(theme) { + return { + container: { + height: 0, + overflow: 'hidden', + transition: theme.transitions.create('height') + }, + entered: { + height: 'auto' + }, + wrapper: { + // Hack to get children with a negative margin to not falsify the height computation. + display: 'flex' + }, + wrapperInner: { + width: '100%' + } + }; +}; + +/** + * The Collapes transition is used by the + * [Vetical Stepper](/demos/steppers#vertical-stepper) StepContent component. + * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. + */ +// @inheritedComponent Transition + +var Collapse = function (_React$Component) { + (0, _inherits3.default)(Collapse, _React$Component); + + function Collapse() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Collapse); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Collapse.__proto__ || (0, _getPrototypeOf2.default)(Collapse)).call.apply(_ref, [this].concat(args))), _this), _this.wrapper = null, _this.autoTransitionDuration = undefined, _this.timer = null, _this.handleEnter = function (node) { + node.style.height = _this.props.collapsedHeight; + + if (_this.props.onEnter) { + _this.props.onEnter(node); + } + }, _this.handleEntering = function (node) { + var _this$props = _this.props, + timeout = _this$props.timeout, + theme = _this$props.theme; + + var wrapperHeight = _this.wrapper ? _this.wrapper.clientHeight : 0; + + var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { + mode: 'enter' + }), + transitionDuration = _getTransitionProps.duration; + + if (timeout === 'auto') { + var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight); + node.style.transitionDuration = duration2 + 'ms'; + _this.autoTransitionDuration = duration2; + } else { + node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : transitionDuration + 'ms'; + } + + node.style.height = wrapperHeight + 'px'; + + if (_this.props.onEntering) { + _this.props.onEntering(node); + } + }, _this.handleEntered = function (node) { + node.style.height = 'auto'; + + if (_this.props.onEntered) { + _this.props.onEntered(node); + } + }, _this.handleExit = function (node) { + var wrapperHeight = _this.wrapper ? _this.wrapper.clientHeight : 0; + node.style.height = wrapperHeight + 'px'; + + if (_this.props.onExit) { + _this.props.onExit(node); + } + }, _this.handleExiting = function (node) { + var _this$props2 = _this.props, + timeout = _this$props2.timeout, + theme = _this$props2.theme; + + var wrapperHeight = _this.wrapper ? _this.wrapper.clientHeight : 0; + + var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { + mode: 'exit' + }), + transitionDuration = _getTransitionProps2.duration; + + if (timeout === 'auto') { + var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight); + node.style.transitionDuration = duration2 + 'ms'; + _this.autoTransitionDuration = duration2; + } else { + node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : transitionDuration + 'ms'; + } + + node.style.height = _this.props.collapsedHeight; + + if (_this.props.onExiting) { + _this.props.onExiting(node); + } + }, _this.addEndListener = function (_, next) { + if (_this.props.timeout === 'auto') { + _this.timer = setTimeout(next, _this.autoTransitionDuration || 0); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Collapse, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearTimeout(this.timer); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + children = _props.children, + classes = _props.classes, + className = _props.className, + collapsedHeight = _props.collapsedHeight, + Component = _props.component, + onEnter = _props.onEnter, + onEntered = _props.onEntered, + onEntering = _props.onEntering, + onExit = _props.onExit, + onExiting = _props.onExiting, + style = _props.style, + theme = _props.theme, + timeout = _props.timeout, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'collapsedHeight', 'component', 'onEnter', 'onEntered', 'onEntering', 'onExit', 'onExiting', 'style', 'theme', 'timeout']); + + + return _react2.default.createElement( + _Transition2.default, + (0, _extends3.default)({ + onEntering: this.handleEntering, + onEnter: this.handleEnter, + onEntered: this.handleEntered, + onExiting: this.handleExiting, + onExit: this.handleExit, + addEndListener: this.addEndListener, + timeout: timeout === 'auto' ? null : timeout + }, other), + function (state, childProps) { + return _react2.default.createElement( + Component, + (0, _extends3.default)({ + className: (0, _classnames2.default)(classes.container, (0, _defineProperty3.default)({}, classes.entered, state === 'entered'), className), + style: (0, _extends3.default)({}, style, { + minHeight: collapsedHeight + }) + }, childProps), + _react2.default.createElement( + 'div', + { + className: classes.wrapper, + ref: function ref(node) { + _this2.wrapper = node; + } + }, + _react2.default.createElement( + 'div', + { className: classes.wrapperInner }, + children + ) + ) + ); + } + ); + } + }]); + return Collapse; +}(_react2.default.Component); + +Collapse.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * The content node to be collapsed. + */ + children: _propTypes2.default.node, + /** + * Useful to extend the style applied to components. + */ + classes: _propTypes2.default.object.isRequired, + /** + * @ignore + */ + className: _propTypes2.default.string, + /** + * The height of the container when collapsed. + */ + collapsedHeight: _propTypes2.default.string, + /** + * The component used for the root node. + * Either a string to use a DOM element or a component. + */ + component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), + /** + * If `true`, the component will transition in. + */ + in: _propTypes2.default.bool, + /** + * @ignore + */ + onEnter: _propTypes2.default.func, + /** + * @ignore + */ + onEntered: _propTypes2.default.func, + /** + * @ignore + */ + onEntering: _propTypes2.default.func, + /** + * @ignore + */ + onExit: _propTypes2.default.func, + /** + * @ignore + */ + onExiting: _propTypes2.default.func, + /** + * @ignore + */ + style: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + * + * Set to 'auto' to automatically calculate transition time based on height. + */ + timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) +} : {}; + +Collapse.defaultProps = { + collapsedHeight: '0px', + component: 'div', + timeout: _transitions.duration.standard +}; + +exports.default = (0, _withStyles2.default)(styles, { + withTheme: true, + name: 'MuiCollapse' +})(Collapse); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/transitions/Fade.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); + +var _withTheme2 = _interopRequireDefault(_withTheme); + +var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent Transition + +var styles = { + entering: { + opacity: 1 + }, + entered: { + opacity: 1 + } +}; + +/** + * The Fade transition is used by the [Modal](/demos/modals) component. + * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. + */ + +var Fade = function (_React$Component) { + (0, _inherits3.default)(Fade, _React$Component); + + function Fade() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Fade); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Fade.__proto__ || (0, _getPrototypeOf2.default)(Fade)).call.apply(_ref, [this].concat(args))), _this), _this.handleEnter = function (node) { + var theme = _this.props.theme; + + (0, _utils.reflow)(node); // So the animation always start from the start. + + var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { + mode: 'enter' + }), + transitionDuration = _getTransitionProps.duration, + delay = _getTransitionProps.delay; + + node.style.transition = theme.transitions.create('opacity', { + duration: transitionDuration, + delay: delay + }); + node.style.webkitTransition = theme.transitions.create('opacity', { + duration: transitionDuration, + delay: delay + }); + + if (_this.props.onEnter) { + _this.props.onEnter(node); + } + }, _this.handleExit = function (node) { + var theme = _this.props.theme; + + var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { + mode: 'exit' + }), + transitionDuration = _getTransitionProps2.duration, + delay = _getTransitionProps2.delay; + + node.style.transition = theme.transitions.create('opacity', { + duration: transitionDuration, + delay: delay + }); + node.style.webkitTransition = theme.transitions.create('opacity', { + duration: transitionDuration, + delay: delay + }); + + if (_this.props.onExit) { + _this.props.onExit(node); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Fade, [{ + key: 'render', + value: function render() { + var _props = this.props, + children = _props.children, + onEnter = _props.onEnter, + onExit = _props.onExit, + styleProp = _props.style, + theme = _props.theme, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onExit', 'style', 'theme']); + + + var style = (0, _extends3.default)({}, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); + + return _react2.default.createElement( + _Transition2.default, + (0, _extends3.default)({ appear: true, onEnter: this.handleEnter, onExit: this.handleExit }, other), + function (state, childProps) { + return _react2.default.cloneElement(children, (0, _extends3.default)({ + style: (0, _extends3.default)({ + opacity: 0 + }, styles[state], style) + }, childProps)); + } + ); + } + }]); + return Fade; +}(_react2.default.Component); + +Fade.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * A single child content element. + */ + children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), + /** + * If `true`, the component will transition in. + */ + in: _propTypes2.default.bool, + /** + * @ignore + */ + onEnter: _propTypes2.default.func, + /** + * @ignore + */ + onEntering: _propTypes2.default.func, + /** + * @ignore + */ + onExit: _propTypes2.default.func, + /** + * @ignore + */ + style: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + */ + timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) +} : {}; + +Fade.defaultProps = { + timeout: { + enter: _transitions.duration.enteringScreen, + exit: _transitions.duration.leavingScreen + } +}; + +exports.default = (0, _withTheme2.default)()(Fade); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/transitions/Grow.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); + +var _withTheme2 = _interopRequireDefault(_withTheme); + +var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getScale(value) { + return 'scale(' + value + ', ' + Math.pow(value, 2) + ')'; +} // @inheritedComponent Transition + +var styles = { + entering: { + opacity: 1, + transform: getScale(1) + }, + entered: { + opacity: 1, + transform: getScale(1) + } +}; + +/** + * The Grow transition is used by the [Popover](/demos/popovers) component. + * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. + */ + +var Grow = function (_React$Component) { + (0, _inherits3.default)(Grow, _React$Component); + + function Grow() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Grow); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Grow.__proto__ || (0, _getPrototypeOf2.default)(Grow)).call.apply(_ref, [this].concat(args))), _this), _this.autoTimeout = undefined, _this.timer = null, _this.handleEnter = function (node) { + var _this$props = _this.props, + theme = _this$props.theme, + timeout = _this$props.timeout; + + (0, _utils.reflow)(node); // So the animation always start from the start. + + var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { + mode: 'enter' + }), + transitionDuration = _getTransitionProps.duration, + delay = _getTransitionProps.delay; + + var duration = 0; + if (timeout === 'auto') { + duration = theme.transitions.getAutoHeightDuration(node.clientHeight); + _this.autoTimeout = duration; + } else { + duration = transitionDuration; + } + + node.style.transition = [theme.transitions.create('opacity', { + duration: duration, + delay: delay + }), theme.transitions.create('transform', { + duration: duration * 0.666, + delay: delay + })].join(','); + + if (_this.props.onEnter) { + _this.props.onEnter(node); + } + }, _this.handleExit = function (node) { + var _this$props2 = _this.props, + theme = _this$props2.theme, + timeout = _this$props2.timeout; + + var duration = 0; + + var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { + mode: 'exit' + }), + transitionDuration = _getTransitionProps2.duration, + delay = _getTransitionProps2.delay; + + if (timeout === 'auto') { + duration = theme.transitions.getAutoHeightDuration(node.clientHeight); + _this.autoTimeout = duration; + } else { + duration = transitionDuration; + } + + node.style.transition = [theme.transitions.create('opacity', { + duration: duration, + delay: delay + }), theme.transitions.create('transform', { + duration: duration * 0.666, + delay: delay || duration * 0.333 + })].join(','); + + node.style.opacity = '0'; + node.style.transform = getScale(0.75); + + if (_this.props.onExit) { + _this.props.onExit(node); + } + }, _this.addEndListener = function (_, next) { + if (_this.props.timeout === 'auto') { + _this.timer = setTimeout(next, _this.autoTimeout || 0); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Grow, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearTimeout(this.timer); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + children = _props.children, + onEnter = _props.onEnter, + onExit = _props.onExit, + styleProp = _props.style, + theme = _props.theme, + timeout = _props.timeout, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onExit', 'style', 'theme', 'timeout']); + + + var style = (0, _extends3.default)({}, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); + + return _react2.default.createElement( + _Transition2.default, + (0, _extends3.default)({ + appear: true, + onEnter: this.handleEnter, + onExit: this.handleExit, + addEndListener: this.addEndListener, + timeout: timeout === 'auto' ? null : timeout + }, other), + function (state, childProps) { + return _react2.default.cloneElement(children, (0, _extends3.default)({ + style: (0, _extends3.default)({ + opacity: 0, + transform: getScale(0.75) + }, styles[state], style) + }, childProps)); + } + ); + } + }]); + return Grow; +}(_react2.default.Component); + +Grow.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * A single child content element. + */ + children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), + /** + * If `true`, show the component; triggers the enter or exit animation. + */ + in: _propTypes2.default.bool, + /** + * @ignore + */ + onEnter: _propTypes2.default.func, + /** + * @ignore + */ + onEntered: _propTypes2.default.func, + /** + * @ignore + */ + onEntering: _propTypes2.default.func, + /** + * @ignore + */ + onExit: _propTypes2.default.func, + /** + * @ignore + */ + style: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + * + * Set to 'auto' to automatically calculate transition time based on height. + */ + timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) +} : {}; + +Grow.defaultProps = { + timeout: 'auto' +}; + +exports.default = (0, _withTheme2.default)()(Grow); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/transitions/Slide.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +exports.setTranslateValue = setTranslateValue; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); + +var _withTheme2 = _interopRequireDefault(_withTheme); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GUTTER = 24; + +// Translate the node so he can't be seen on the screen. +// Later, we gonna translate back the node to his original location +// with `translate3d(0, 0, 0)`.` +// @inheritedComponent Transition + +function getTranslateValue(props, node) { + var direction = props.direction; + + var rect = node.getBoundingClientRect(); + + var transform = void 0; + + if (node.fakeTransform) { + transform = node.fakeTransform; + } else { + var computedStyle = window.getComputedStyle(node); + transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform'); + } + + var offsetX = 0; + var offsetY = 0; + + if (transform && transform !== 'none' && typeof transform === 'string') { + var transformValues = transform.split('(')[1].split(')')[0].split(','); + offsetX = parseInt(transformValues[4], 10); + offsetY = parseInt(transformValues[5], 10); + } + + if (direction === 'left') { + return 'translateX(100vw) translateX(-' + (rect.left - offsetX) + 'px)'; + } else if (direction === 'right') { + return 'translateX(-' + (rect.left + rect.width + GUTTER - offsetX) + 'px)'; + } else if (direction === 'up') { + return 'translateY(100vh) translateY(-' + (rect.top - offsetY) + 'px)'; + } + + // direction === 'down' + return 'translate3d(0, ' + (0 - (rect.top + rect.height)) + 'px, 0)'; +} + +function setTranslateValue(props, node) { + var transform = getTranslateValue(props, node); + + if (transform) { + node.style.transform = transform; + node.style.webkitTransform = transform; + } +} + +/** + * The Slide transition is used by the [Snackbar](/demos/snackbars) component. + * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. + */ + +var Slide = function (_React$Component) { + (0, _inherits3.default)(Slide, _React$Component); + + function Slide() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Slide); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Slide.__proto__ || (0, _getPrototypeOf2.default)(Slide)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + mounted: false + }, _this.transition = null, _this.handleResize = (0, _debounce2.default)(function () { + // Skip configuration where the position is screen size invariant. + if (_this.props.in || _this.props.direction === 'down' || _this.props.direction === 'right') { + return; + } + + var node = (0, _reactDom.findDOMNode)(_this.transition); + if (node) { + setTranslateValue(_this.props, node); + } + }, 166), _this.handleEnter = function (node) { + setTranslateValue(_this.props, node); + (0, _utils.reflow)(node); + + if (_this.props.onEnter) { + _this.props.onEnter(node); + } + }, _this.handleEntering = function (node) { + var theme = _this.props.theme; + + var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { + mode: 'enter' + }), + transitionDuration = _getTransitionProps.duration, + delay = _getTransitionProps.delay; + + node.style.transition = theme.transitions.create('transform', { + duration: transitionDuration, + easing: theme.transitions.easing.easeOut, + delay: delay + }); + node.style.webkitTransition = theme.transitions.create('-webkit-transform', { + duration: transitionDuration, + easing: theme.transitions.easing.easeOut, + delay: delay + }); + node.style.transform = 'translate3d(0, 0, 0)'; + node.style.webkitTransform = 'translate3d(0, 0, 0)'; + if (_this.props.onEntering) { + _this.props.onEntering(node); + } + }, _this.handleExit = function (node) { + var theme = _this.props.theme; + + var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { + mode: 'exit' + }), + transitionDuration = _getTransitionProps2.duration, + delay = _getTransitionProps2.delay; + + node.style.transition = theme.transitions.create('transform', { + duration: transitionDuration, + easing: theme.transitions.easing.sharp, + delay: delay + }); + node.style.webkitTransition = theme.transitions.create('-webkit-transform', { + duration: transitionDuration, + easing: theme.transitions.easing.sharp, + delay: delay + }); + setTranslateValue(_this.props, node); + + if (_this.props.onExit) { + _this.props.onExit(node); + } + }, _this.handleExited = function (node) { + // No need for transitions when the component is hidden + node.style.transition = ''; + node.style.webkitTransition = ''; + + if (_this.props.onExited) { + _this.props.onExited(node); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Slide, [{ + key: 'componentDidMount', + value: function componentDidMount() { + // state.mounted handle SSR, once the component is mounted, we need + // to properly hide it. + if (!this.props.in) { + // We need to set initial translate values of transition element + // otherwise component will be shown when in=false. + this.updatePosition(); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps() { + this.setState({ + mounted: true + }); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps) { + if (prevProps.direction !== this.props.direction && !this.props.in) { + // We need to update the position of the drawer when the direction change and + // when it's hidden. + this.updatePosition(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.handleResize.cancel(); + } + }, { + key: 'updatePosition', + value: function updatePosition() { + var node = (0, _reactDom.findDOMNode)(this.transition); + if (node) { + node.style.visibility = 'inherit'; + setTranslateValue(this.props, node); + } + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + children = _props.children, + onEnter = _props.onEnter, + onEntering = _props.onEntering, + onExit = _props.onExit, + onExited = _props.onExited, + styleProp = _props.style, + theme = _props.theme, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onEntering', 'onExit', 'onExited', 'style', 'theme']); + + + var style = {}; + + // We use this state to handle the server-side rendering. + // We don't know the width of the children ahead of time. + // We need to render it. + if (!this.props.in && !this.state.mounted) { + style.visibility = 'hidden'; + } + + style = (0, _extends3.default)({}, style, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); + + return _react2.default.createElement( + _reactEventListener2.default, + { target: 'window', onResize: this.handleResize }, + _react2.default.createElement( + _Transition2.default, + (0, _extends3.default)({ + onEnter: this.handleEnter, + onEntering: this.handleEntering, + onExit: this.handleExit, + onExited: this.handleExited, + appear: true, + style: style, + ref: function ref(node) { + _this2.transition = node; + } + }, other), + children + ) + ); + } + }]); + return Slide; +}(_react2.default.Component); + +Slide.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * A single child content element. + */ + children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), + /** + * Direction the child node will enter from. + */ + direction: _propTypes2.default.oneOf(['left', 'right', 'up', 'down']), + /** + * If `true`, show the component; triggers the enter or exit animation. + */ + in: _propTypes2.default.bool, + /** + * @ignore + */ + onEnter: _propTypes2.default.func, + /** + * @ignore + */ + onEntered: _propTypes2.default.func, + /** + * @ignore + */ + onEntering: _propTypes2.default.func, + /** + * @ignore + */ + onExit: _propTypes2.default.func, + /** + * @ignore + */ + onExited: _propTypes2.default.func, + /** + * @ignore + */ + onExiting: _propTypes2.default.func, + /** + * @ignore + */ + style: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + */ + timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) +} : {}; + +Slide.defaultProps = { + direction: 'down', + timeout: { + enter: _transitions.duration.enteringScreen, + exit: _transitions.duration.leavingScreen + } +}; + +exports.default = (0, _withTheme2.default)()(Slide); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/transitions/Zoom.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); + +var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); + +var _withTheme2 = _interopRequireDefault(_withTheme); + +var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// @inheritedComponent Transition + +var styles = { + entering: { + transform: 'scale(1)' + }, + entered: { + transform: 'scale(1)' + } +}; + +/** + * The Zoom transition can be used for the floating variant of the + * [Button](https://material-ui-next.com/demos/buttons/#floating-action-buttons) component. + * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. + */ + +var Zoom = function (_React$Component) { + (0, _inherits3.default)(Zoom, _React$Component); + + function Zoom() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, Zoom); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Zoom.__proto__ || (0, _getPrototypeOf2.default)(Zoom)).call.apply(_ref, [this].concat(args))), _this), _this.handleEnter = function (node) { + var theme = _this.props.theme; + + (0, _utils.reflow)(node); // So the animation always start from the start. + + var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { + mode: 'enter' + }), + transitionDuration = _getTransitionProps.duration, + delay = _getTransitionProps.delay; + + node.style.transition = theme.transitions.create('transform', { + duration: transitionDuration, + delay: delay + }); + node.style.webkitTransition = theme.transitions.create('transform', { + duration: transitionDuration, + delay: delay + }); + + if (_this.props.onEnter) { + _this.props.onEnter(node); + } + }, _this.handleExit = function (node) { + var theme = _this.props.theme; + + var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { + mode: 'exit' + }), + transitionDuration = _getTransitionProps2.duration, + delay = _getTransitionProps2.delay; + + node.style.transition = theme.transitions.create('transform', { + duration: transitionDuration, + delay: delay + }); + node.style.webkitTransition = theme.transitions.create('transform', { + duration: transitionDuration, + delay: delay + }); + + if (_this.props.onExit) { + _this.props.onExit(node); + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(Zoom, [{ + key: 'render', + value: function render() { + var _props = this.props, + children = _props.children, + onEnter = _props.onEnter, + onExit = _props.onExit, + styleProp = _props.style, + theme = _props.theme, + other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onExit', 'style', 'theme']); + + + var style = (0, _extends3.default)({}, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); + + return _react2.default.createElement( + _Transition2.default, + (0, _extends3.default)({ appear: true, onEnter: this.handleEnter, onExit: this.handleExit }, other), + function (state, childProps) { + return _react2.default.cloneElement(children, (0, _extends3.default)({ + style: (0, _extends3.default)({ + transform: 'scale(0)' + }, styles[state], style) + }, childProps)); + } + ); + } + }]); + return Zoom; +}(_react2.default.Component); + +Zoom.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * A single child content element. + */ + children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), + /** + * If `true`, the component will transition in. + */ + in: _propTypes2.default.bool, + /** + * @ignore + */ + onEnter: _propTypes2.default.func, + /** + * @ignore + */ + onExit: _propTypes2.default.func, + /** + * @ignore + */ + style: _propTypes2.default.object, + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * The duration for the transition, in milliseconds. + * You may specify a single timeout for all transitions, or individually with an object. + */ + timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) +} : {}; + +Zoom.defaultProps = { + timeout: { + enter: _transitions.duration.enteringScreen, + exit: _transitions.duration.leavingScreen + } +}; + +exports.default = (0, _withTheme2.default)()(Zoom); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/transitions/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Slide = __webpack_require__("./node_modules/material-ui/transitions/Slide.js"); + +Object.defineProperty(exports, 'Slide', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Slide).default; + } +}); + +var _Grow = __webpack_require__("./node_modules/material-ui/transitions/Grow.js"); + +Object.defineProperty(exports, 'Grow', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Grow).default; + } +}); + +var _Fade = __webpack_require__("./node_modules/material-ui/transitions/Fade.js"); + +Object.defineProperty(exports, 'Fade', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Fade).default; + } +}); + +var _Collapse = __webpack_require__("./node_modules/material-ui/transitions/Collapse.js"); + +Object.defineProperty(exports, 'Collapse', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Collapse).default; + } +}); + +var _Zoom = __webpack_require__("./node_modules/material-ui/transitions/Zoom.js"); + +Object.defineProperty(exports, 'Zoom', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Zoom).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/material-ui/transitions/utils.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getTransitionProps = getTransitionProps; +var reflow = exports.reflow = function reflow(node) { + return node.scrollTop; +}; + +function getTransitionProps(props, options) { + var timeout = props.timeout, + _props$style = props.style, + style = _props$style === undefined ? {} : _props$style; + + + return { + duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode], + delay: style.transitionDelay + }; +} + +/***/ }), + +/***/ "./node_modules/material-ui/utils/ClickAwayListener.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var isDescendant = function isDescendant(el, target) { + if (target !== null && target.parentNode) { + return el === target || isDescendant(el, target.parentNode); + } + return false; +}; + +/** + * Listen for click events that are triggered outside of the component children. + */ + +var ClickAwayListener = function (_React$Component) { + (0, _inherits3.default)(ClickAwayListener, _React$Component); + + function ClickAwayListener() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, ClickAwayListener); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ClickAwayListener.__proto__ || (0, _getPrototypeOf2.default)(ClickAwayListener)).call.apply(_ref, [this].concat(args))), _this), _this.mounted = false, _this.handleClickAway = function (event) { + // Ignore events that have been `event.preventDefault()` marked. + if (event.defaultPrevented) { + return; + } + + // IE11 support, which trigger the handleClickAway even after the unbind + if (_this.mounted) { + var el = (0, _reactDom.findDOMNode)(_this); + + if (document.documentElement && document.documentElement.contains(event.target) && !isDescendant(el, event.target)) { + _this.props.onClickAway(event); + } + } + }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(ClickAwayListener, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.mounted = true; + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.mounted = false; + } + }, { + key: 'render', + value: function render() { + return _react2.default.createElement( + _reactEventListener2.default, + { + target: 'document', + onMouseup: this.handleClickAway, + onTouchend: this.handleClickAway + }, + this.props.children + ); + } + }]); + return ClickAwayListener; +}(_react2.default.Component); + +ClickAwayListener.propTypes = process.env.NODE_ENV !== "production" ? { + children: _propTypes2.default.node.isRequired, + onClickAway: _propTypes2.default.func.isRequired +} : {}; + +exports.default = ClickAwayListener; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/utils/addEventListener.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (node, event, handler, capture) { + node.addEventListener(event, handler, capture); + return { + remove: function remove() { + node.removeEventListener(event, handler, capture); + } + }; +}; + +/***/ }), + +/***/ "./node_modules/material-ui/utils/exactProp.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.specialProperty = undefined; + +var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); + +var _defineProperty3 = _interopRequireDefault(_defineProperty2); + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _extends3 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends4 = _interopRequireDefault(_extends3); + +exports.default = exactProp; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// This module is based on https://github.com/airbnb/prop-types-exact repository. +// However, in order to reduce the number of dependencies and to remove some extra safe checks +// the module was forked. + +var specialProperty = exports.specialProperty = 'exact-prop: \u200B'; + +function exactProp(propTypes, componentNameInError) { + return (0, _extends4.default)({}, propTypes, (0, _defineProperty3.default)({}, specialProperty, function (props) { + var unknownProps = (0, _keys2.default)(props).filter(function (prop) { + return !propTypes.hasOwnProperty(prop); + }); + if (unknownProps.length > 0) { + return new TypeError(componentNameInError + ': unknown props found: ' + unknownProps.join(', ') + '. Please remove the unknown properties.'); + } + return null; + })); +} + +/***/ }), + +/***/ "./node_modules/material-ui/utils/helpers.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); + +var _typeof3 = _interopRequireDefault(_typeof2); + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +exports.capitalize = capitalize; +exports.contains = contains; +exports.findIndex = findIndex; +exports.find = find; +exports.createChainedFunction = createChainedFunction; + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function capitalize(string) { + if (process.env.NODE_ENV !== 'production' && typeof string !== 'string') { + throw new Error('Material-UI: capitalize(string) expects a string argument.'); + } + + return string.charAt(0).toUpperCase() + string.slice(1); +} // weak + +function contains(obj, pred) { + return (0, _keys2.default)(pred).every(function (key) { + return obj.hasOwnProperty(key) && obj[key] === pred[key]; + }); +} + +function findIndex(arr, pred) { + var predType = typeof pred === 'undefined' ? 'undefined' : (0, _typeof3.default)(pred); + for (var i = 0; i < arr.length; i += 1) { + if (predType === 'function' && !!pred(arr[i], i, arr) === true) { + return i; + } + if (predType === 'object' && contains(arr[i], pred)) { + return i; + } + if (['string', 'number', 'boolean'].indexOf(predType) !== -1) { + return arr.indexOf(pred); + } + } + return -1; +} + +function find(arr, pred) { + var index = findIndex(arr, pred); + return index > -1 ? arr[index] : undefined; +} + +/** + * Safe chained function + * + * Will only create a new function if needed, + * otherwise will pass back existing functions or null. + * + * @param {function} functions to chain + * @returns {function|null} + */ +function createChainedFunction() { + for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + return funcs.filter(function (func) { + return func != null; + }).reduce(function (acc, func) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(typeof func === 'function', 'Material-UI: invalid Argument Type, must only provide functions, undefined, or null.') : void 0; + + return function chainedFunction() { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + acc.apply(this, args); + func.apply(this, args); + }; + }, function () {}); +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/utils/keyboardFocus.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.focusKeyPressed = focusKeyPressed; +exports.detectKeyboardFocus = detectKeyboardFocus; +exports.listenForFocusKeys = listenForFocusKeys; + +var _keycode = __webpack_require__("./node_modules/keycode/index.js"); + +var _keycode2 = _interopRequireDefault(_keycode); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); + +var _contains2 = _interopRequireDefault(_contains); + +var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// weak + +var internal = { + focusKeyPressed: false +}; + +function focusKeyPressed(pressed) { + if (typeof pressed !== 'undefined') { + internal.focusKeyPressed = Boolean(pressed); + } + + return internal.focusKeyPressed; +} + +function detectKeyboardFocus(instance, element, callback) { + var attempt = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(instance.keyboardFocusCheckTime, 'Material-UI: missing instance.keyboardFocusCheckTime') : void 0; + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(instance.keyboardFocusMaxCheckTimes, 'Material-UI: missing instance.keyboardFocusMaxCheckTimes') : void 0; + + instance.keyboardFocusTimeout = setTimeout(function () { + var doc = (0, _ownerDocument2.default)(element); + + if (focusKeyPressed() && (doc.activeElement === element || (0, _contains2.default)(element, doc.activeElement))) { + callback(); + } else if (attempt < instance.keyboardFocusMaxCheckTimes) { + detectKeyboardFocus(instance, element, callback, attempt + 1); + } + }, instance.keyboardFocusCheckTime); +} + +var FOCUS_KEYS = ['tab', 'enter', 'space', 'esc', 'up', 'down', 'left', 'right']; + +function isFocusKey(event) { + return FOCUS_KEYS.indexOf((0, _keycode2.default)(event)) !== -1; +} + +var handleKeyUpEvent = function handleKeyUpEvent(event) { + if (isFocusKey(event)) { + internal.focusKeyPressed = true; + } +}; + +function listenForFocusKeys(win) { + // The event listener will only be added once per window. + // Duplicate event listeners will be ignored by addEventListener. + // Also, this logic is client side only, we don't need a teardown. + win.addEventListener('keyup', handleKeyUpEvent); +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/material-ui/utils/reactHelpers.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.cloneChildrenWithClassName = cloneChildrenWithClassName; +exports.isMuiElement = isMuiElement; +exports.isMuiComponent = isMuiComponent; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* eslint-disable import/prefer-default-export */ + +function cloneChildrenWithClassName(children, className) { + return _react2.default.Children.map(children, function (child) { + return _react2.default.isValidElement(child) && _react2.default.cloneElement(child, { + className: (0, _classnames2.default)(child.props.className, className) + }); + }); +} + +function isMuiElement(element, muiNames) { + return _react2.default.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1; +} + +function isMuiComponent(element, muiNames) { + return muiNames.indexOf(element.muiName) !== -1; +} + +/***/ }), + +/***/ "./node_modules/material-ui/utils/requirePropFactory.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +// weak + +var requirePropFactory = function requirePropFactory(componentNameInError) { + var requireProp = function requireProp(requiredProp) { + return function (props, propName, componentName, location, propFullName) { + var propFullNameSafe = propFullName || propName; + + if (typeof props[propName] !== 'undefined' && !props[requiredProp]) { + return new Error('The property `' + propFullNameSafe + '` of ' + ('`' + componentNameInError + '` must be used on `' + requiredProp + '`.')); + } + + return null; + }; + }; + return requireProp; +}; + +exports.default = requirePropFactory; + +/***/ }), + +/***/ "./node_modules/material-ui/utils/withWidth.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isWidthDown = exports.isWidthUp = undefined; + +var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); + +var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); + +var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); + +var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); + +var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); + +var _withTheme2 = _interopRequireDefault(_withTheme); + +var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// By default, returns true if screen width is the same or greater than the given breakpoint. +var isWidthUp = exports.isWidthUp = function isWidthUp(breakpoint, width) { + var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + + if (inclusive) { + return _createBreakpoints.keys.indexOf(breakpoint) <= _createBreakpoints.keys.indexOf(width); + } + return _createBreakpoints.keys.indexOf(breakpoint) < _createBreakpoints.keys.indexOf(width); +}; + +// By default, returns true if screen width is the same or less than the given breakpoint. +var isWidthDown = exports.isWidthDown = function isWidthDown(breakpoint, width) { + var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + + if (inclusive) { + return _createBreakpoints.keys.indexOf(width) <= _createBreakpoints.keys.indexOf(breakpoint); + } + return _createBreakpoints.keys.indexOf(width) < _createBreakpoints.keys.indexOf(breakpoint); +}; + +var withWidth = function withWidth() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return function (Component) { + var _options$resizeInterv = options.resizeInterval, + resizeInterval = _options$resizeInterv === undefined ? 166 : _options$resizeInterv, + _options$withTheme = options.withTheme, + withThemeOption = _options$withTheme === undefined ? false : _options$withTheme; + + var WithWidth = function (_React$Component) { + (0, _inherits3.default)(WithWidth, _React$Component); + + function WithWidth() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, WithWidth); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = WithWidth.__proto__ || (0, _getPrototypeOf2.default)(WithWidth)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + width: undefined + }, _this.handleResize = (0, _debounce2.default)(function () { + _this.updateWidth(window.innerWidth); + }, resizeInterval), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(WithWidth, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.updateWidth(window.innerWidth); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.handleResize.cancel(); + } + }, { + key: 'updateWidth', + value: function updateWidth(innerWidth) { + var breakpoints = this.props.theme.breakpoints; + var width = null; + + /** + * Start with the slowest value as low end devices often have a small screen. + * + * innerWidth |xs sm md lg xl + * |-------|-------|-------|-------|------> + * width | xs | sm | md | lg | xl + */ + var index = 1; + while (width === null && index < _createBreakpoints.keys.length) { + var currentWidth = _createBreakpoints.keys[index]; + + // @media are inclusive, so reproduce the behavior here. + if (innerWidth < breakpoints.values[currentWidth]) { + width = _createBreakpoints.keys[index - 1]; + break; + } + + index += 1; + } + + width = width || 'xl'; + + if (width !== this.state.width) { + this.setState({ + width: width + }); + } + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + initialWidth = _props.initialWidth, + theme = _props.theme, + width = _props.width, + other = (0, _objectWithoutProperties3.default)(_props, ['initialWidth', 'theme', 'width']); + + var props = (0, _extends3.default)({ + width: width || this.state.width || initialWidth + }, other); + var more = {}; + + if (withThemeOption) { + more.theme = theme; + } + + // When rendering the component on the server, + // we have no idea about the client browser screen width. + // In order to prevent blinks and help the reconciliation of the React tree + // we are not rendering the child component. + // + // An alternative is to use the `initialWidth` property. + if (props.width === undefined) { + return null; + } + + return _react2.default.createElement( + _reactEventListener2.default, + { target: 'window', onResize: this.handleResize }, + _react2.default.createElement(Component, (0, _extends3.default)({}, more, props)) + ); + } + }]); + return WithWidth; + }(_react2.default.Component); + + WithWidth.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * As `window.innerWidth` is unavailable on the server, + * we default to rendering an empty componenent during the first mount. + * In some situation you might want to use an heristic to approximate + * the screen width of the client browser screen width. + * + * For instance, you could be using the user-agent or the client-hints. + * http://caniuse.com/#search=client%20hint + */ + initialWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), + /** + * @ignore + */ + theme: _propTypes2.default.object.isRequired, + /** + * Bypass the width calculation logic. + */ + width: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']) + } : {}; + + if (process.env.NODE_ENV !== 'production') { + WithWidth.displayName = (0, _wrapDisplayName2.default)(Component, 'WithWidth'); + } + + (0, _hoistNonReactStatics2.default)(WithWidth, Component); + + return (0, _withTheme2.default)()(WithWidth); + }; +}; + +exports.default = withWidth; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/mqtt-packet/constants.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer + +/* Protocol - protocol constants */ +var protocol = module.exports + +/* Command code => mnemonic */ +protocol.types = { + 0: 'reserved', + 1: 'connect', + 2: 'connack', + 3: 'publish', + 4: 'puback', + 5: 'pubrec', + 6: 'pubrel', + 7: 'pubcomp', + 8: 'subscribe', + 9: 'suback', + 10: 'unsubscribe', + 11: 'unsuback', + 12: 'pingreq', + 13: 'pingresp', + 14: 'disconnect', + 15: 'reserved' +} + +/* Mnemonic => Command code */ +protocol.codes = {} +for (var k in protocol.types) { + var v = protocol.types[k] + protocol.codes[v] = k +} + +/* Header */ +protocol.CMD_SHIFT = 4 +protocol.CMD_MASK = 0xF0 +protocol.DUP_MASK = 0x08 +protocol.QOS_MASK = 0x03 +protocol.QOS_SHIFT = 1 +protocol.RETAIN_MASK = 0x01 + +/* Length */ +protocol.LENGTH_MASK = 0x7F +protocol.LENGTH_FIN_MASK = 0x80 + +/* Connack */ +protocol.SESSIONPRESENT_MASK = 0x01 +protocol.SESSIONPRESENT_HEADER = Buffer.from([protocol.SESSIONPRESENT_MASK]) +protocol.CONNACK_HEADER = Buffer.from([protocol.codes['connack'] << protocol.CMD_SHIFT]) + +/* Connect */ +protocol.USERNAME_MASK = 0x80 +protocol.PASSWORD_MASK = 0x40 +protocol.WILL_RETAIN_MASK = 0x20 +protocol.WILL_QOS_MASK = 0x18 +protocol.WILL_QOS_SHIFT = 3 +protocol.WILL_FLAG_MASK = 0x04 +protocol.CLEAN_SESSION_MASK = 0x02 +protocol.CONNECT_HEADER = Buffer.from([protocol.codes['connect'] << protocol.CMD_SHIFT]) + +function genHeader (type) { + return [0, 1, 2].map(function (qos) { + return [0, 1].map(function (dup) { + return [0, 1].map(function (retain) { + var buf = new Buffer(1) + buf.writeUInt8( + protocol.codes[type] << protocol.CMD_SHIFT | + (dup ? protocol.DUP_MASK : 0) | + qos << protocol.QOS_SHIFT | retain, 0, true) + return buf + }) + }) + }) +} + +/* Publish */ +protocol.PUBLISH_HEADER = genHeader('publish') + +/* Subscribe */ +protocol.SUBSCRIBE_HEADER = genHeader('subscribe') + +/* Unsubscribe */ +protocol.UNSUBSCRIBE_HEADER = genHeader('unsubscribe') + +/* Confirmations */ +protocol.ACKS = { + unsuback: genHeader('unsuback'), + puback: genHeader('puback'), + pubcomp: genHeader('pubcomp'), + pubrel: genHeader('pubrel'), + pubrec: genHeader('pubrec') +} + +protocol.SUBACK_HEADER = Buffer.from([protocol.codes['suback'] << protocol.CMD_SHIFT]) + +/* Protocol versions */ +protocol.VERSION3 = Buffer.from([3]) +protocol.VERSION4 = Buffer.from([4]) + +/* QoS */ +protocol.QOS = [0, 1, 2].map(function (qos) { + return Buffer.from([qos]) +}) + +/* Empty packets */ +protocol.EMPTY = { + pingreq: Buffer.from([protocol.codes['pingreq'] << 4, 0]), + pingresp: Buffer.from([protocol.codes['pingresp'] << 4, 0]), + disconnect: Buffer.from([protocol.codes['disconnect'] << 4, 0]) +} + + +/***/ }), + +/***/ "./node_modules/mqtt-packet/generate.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer +var writeToStream = __webpack_require__("./node_modules/mqtt-packet/writeToStream.js") +var EE = __webpack_require__("./node_modules/events/events.js").EventEmitter +var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") + +function generate (packet) { + var stream = new Accumulator() + writeToStream(packet, stream) + return stream.concat() +} + +function Accumulator () { + this._array = new Array(20) + this._i = 0 +} + +inherits(Accumulator, EE) + +Accumulator.prototype.write = function (chunk) { + this._array[this._i++] = chunk + return true +} + +Accumulator.prototype.concat = function () { + var length = 0 + var lengths = new Array(this._array.length) + var list = this._array + var pos = 0 + var i + var result + + for (i = 0; i < list.length && list[i]; i++) { + if (typeof list[i] !== 'string') lengths[i] = list[i].length + else lengths[i] = Buffer.byteLength(list[i]) + + length += lengths[i] + } + + result = Buffer.allocUnsafe(length) + + for (i = 0; i < list.length && list[i]; i++) { + if (typeof list[i] !== 'string') { + list[i].copy(result, pos) + pos += lengths[i] + } else { + result.write(list[i], pos) + pos += lengths[i] + } + } + + return result +} + +module.exports = generate + + +/***/ }), + +/***/ "./node_modules/mqtt-packet/mqtt.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.parser = __webpack_require__("./node_modules/mqtt-packet/parser.js") +exports.generate = __webpack_require__("./node_modules/mqtt-packet/generate.js") +exports.writeToStream = __webpack_require__("./node_modules/mqtt-packet/writeToStream.js") + + +/***/ }), + +/***/ "./node_modules/mqtt-packet/numbers.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer +var max = 65536 +var cache = {} + +function generateBuffer (i) { + var buffer = Buffer.allocUnsafe(2) + buffer.writeUInt8(i >> 8, 0, true) + buffer.writeUInt8(i & 0x00FF, 0 + 1, true) + + return buffer +} + +function generateCache () { + for (var i = 0; i < max; i++) { + cache[i] = generateBuffer(i) + } +} + +module.exports = { + cache: cache, + generateCache: generateCache, + generateNumber: generateBuffer +} + + +/***/ }), + +/***/ "./node_modules/mqtt-packet/packet.js": +/***/ (function(module, exports) { + + +function Packet () { + this.cmd = null + this.retain = false + this.qos = 0 + this.dup = false + this.length = -1 + this.topic = null + this.payload = null +} + +module.exports = Packet + + +/***/ }), + +/***/ "./node_modules/mqtt-packet/parser.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var bl = __webpack_require__("./node_modules/bl/bl.js") +var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") +var EE = __webpack_require__("./node_modules/events/events.js").EventEmitter +var Packet = __webpack_require__("./node_modules/mqtt-packet/packet.js") +var constants = __webpack_require__("./node_modules/mqtt-packet/constants.js") + +function Parser () { + if (!(this instanceof Parser)) return new Parser() + + this._states = [ + '_parseHeader', + '_parseLength', + '_parsePayload', + '_newPacket' + ] + + this._resetState() +} + +inherits(Parser, EE) + +Parser.prototype._resetState = function () { + this.packet = new Packet() + this.error = null + this._list = bl() + this._stateCounter = 0 +} + +Parser.prototype.parse = function (buf) { + if (this.error) this._resetState() + + this._list.append(buf) + + while ((this.packet.length !== -1 || this._list.length > 0) && + this[this._states[this._stateCounter]]() && + !this.error) { + this._stateCounter++ + + if (this._stateCounter >= this._states.length) this._stateCounter = 0 + } + + return this._list.length +} + +Parser.prototype._parseHeader = function () { + // There is at least one byte in the buffer + var zero = this._list.readUInt8(0) + this.packet.cmd = constants.types[zero >> constants.CMD_SHIFT] + this.packet.retain = (zero & constants.RETAIN_MASK) !== 0 + this.packet.qos = (zero >> constants.QOS_SHIFT) & constants.QOS_MASK + this.packet.dup = (zero & constants.DUP_MASK) !== 0 + + this._list.consume(1) + + return true +} + +Parser.prototype._parseLength = function () { + // There is at least one byte in the list + var bytes = 0 + var mul = 1 + var length = 0 + var result = true + var current + + while (bytes < 5) { + current = this._list.readUInt8(bytes++) + length += mul * (current & constants.LENGTH_MASK) + mul *= 0x80 + + if ((current & constants.LENGTH_FIN_MASK) === 0) break + if (this._list.length <= bytes) { + result = false + break + } + } + + if (result) { + this.packet.length = length + this._list.consume(bytes) + } + + return result +} + +Parser.prototype._parsePayload = function () { + var result = false + + // Do we have a payload? Do we have enough data to complete the payload? + // PINGs have no payload + if (this.packet.length === 0 || this._list.length >= this.packet.length) { + this._pos = 0 + + switch (this.packet.cmd) { + case 'connect': + this._parseConnect() + break + case 'connack': + this._parseConnack() + break + case 'publish': + this._parsePublish() + break + case 'puback': + case 'pubrec': + case 'pubrel': + case 'pubcomp': + this._parseMessageId() + break + case 'subscribe': + this._parseSubscribe() + break + case 'suback': + this._parseSuback() + break + case 'unsubscribe': + this._parseUnsubscribe() + break + case 'unsuback': + this._parseUnsuback() + break + case 'pingreq': + case 'pingresp': + case 'disconnect': + // These are empty, nothing to do + break + default: + this._emitError(new Error('Not supported')) + } + + result = true + } + + return result +} + +Parser.prototype._parseConnect = function () { + var protocolId // Protocol ID + var clientId // Client ID + var topic // Will topic + var payload // Will payload + var password // Password + var username // Username + var flags = {} + var packet = this.packet + + // Parse protocolId + protocolId = this._parseString() + + if (protocolId === null) return this._emitError(new Error('Cannot parse protocolId')) + if (protocolId !== 'MQTT' && protocolId !== 'MQIsdp') { + return this._emitError(new Error('Invalid protocolId')) + } + + packet.protocolId = protocolId + + // Parse constants version number + if (this._pos >= this._list.length) return this._emitError(new Error('Packet too short')) + + packet.protocolVersion = this._list.readUInt8(this._pos) + + if (packet.protocolVersion !== 3 && packet.protocolVersion !== 4) { + return this._emitError(new Error('Invalid protocol version')) + } + + this._pos++ + + if (this._pos >= this._list.length) { + return this._emitError(new Error('Packet too short')) + } + + // Parse connect flags + flags.username = (this._list.readUInt8(this._pos) & constants.USERNAME_MASK) + flags.password = (this._list.readUInt8(this._pos) & constants.PASSWORD_MASK) + flags.will = (this._list.readUInt8(this._pos) & constants.WILL_FLAG_MASK) + + if (flags.will) { + packet.will = {} + packet.will.retain = (this._list.readUInt8(this._pos) & constants.WILL_RETAIN_MASK) !== 0 + packet.will.qos = (this._list.readUInt8(this._pos) & + constants.WILL_QOS_MASK) >> constants.WILL_QOS_SHIFT + } + + packet.clean = (this._list.readUInt8(this._pos) & constants.CLEAN_SESSION_MASK) !== 0 + this._pos++ + + // Parse keepalive + packet.keepalive = this._parseNum() + if (packet.keepalive === -1) return this._emitError(new Error('Packet too short')) + + // Parse clientId + clientId = this._parseString() + if (clientId === null) return this._emitError(new Error('Packet too short')) + packet.clientId = clientId + + if (flags.will) { + // Parse will topic + topic = this._parseString() + if (topic === null) return this._emitError(new Error('Cannot parse will topic')) + packet.will.topic = topic + + // Parse will payload + payload = this._parseBuffer() + if (payload === null) return this._emitError(new Error('Cannot parse will payload')) + packet.will.payload = payload + } + + // Parse username + if (flags.username) { + username = this._parseString() + if (username === null) return this._emitError(new Error('Cannot parse username')) + packet.username = username + } + + // Parse password + if (flags.password) { + password = this._parseBuffer() + if (password === null) return this._emitError(new Error('Cannot parse password')) + packet.password = password + } + + return packet +} + +Parser.prototype._parseConnack = function () { + var packet = this.packet + + if (this._list.length < 2) return null + + packet.sessionPresent = !!(this._list.readUInt8(this._pos++) & constants.SESSIONPRESENT_MASK) + packet.returnCode = this._list.readUInt8(this._pos) + + if (packet.returnCode === -1) return this._emitError(new Error('Cannot parse return code')) +} + +Parser.prototype._parsePublish = function () { + var packet = this.packet + packet.topic = this._parseString() + + if (packet.topic === null) return this._emitError(new Error('Cannot parse topic')) + + // Parse messageId + if (packet.qos > 0) if (!this._parseMessageId()) { return } + + packet.payload = this._list.slice(this._pos, packet.length) +} + +Parser.prototype._parseSubscribe = function () { + var packet = this.packet + var topic + var qos + + if (packet.qos !== 1) { + return this._emitError(new Error('Wrong subscribe header')) + } + + packet.subscriptions = [] + + if (!this._parseMessageId()) { return } + + while (this._pos < packet.length) { + // Parse topic + topic = this._parseString() + if (topic === null) return this._emitError(new Error('Cannot parse topic')) + + qos = this._list.readUInt8(this._pos++) + + // Push pair to subscriptions + packet.subscriptions.push({ topic: topic, qos: qos }) + } +} + +Parser.prototype._parseSuback = function () { + this.packet.granted = [] + + if (!this._parseMessageId()) { return } + + // Parse granted QoSes + while (this._pos < this.packet.length) { + this.packet.granted.push(this._list.readUInt8(this._pos++)) + } +} + +Parser.prototype._parseUnsubscribe = function () { + var packet = this.packet + + packet.unsubscriptions = [] + + // Parse messageId + if (!this._parseMessageId()) { return } + + while (this._pos < packet.length) { + var topic + + // Parse topic + topic = this._parseString() + if (topic === null) return this._emitError(new Error('Cannot parse topic')) + + // Push topic to unsubscriptions + packet.unsubscriptions.push(topic) + } +} + +Parser.prototype._parseUnsuback = function () { + if (!this._parseMessageId()) return this._emitError(new Error('Cannot parse messageId')) +} + +Parser.prototype._parseMessageId = function () { + var packet = this.packet + + packet.messageId = this._parseNum() + + if (packet.messageId === null) { + this._emitError(new Error('Cannot parse messageId')) + return false + } + + return true +} + +Parser.prototype._parseString = function (maybeBuffer) { + var length = this._parseNum() + var result + var end = length + this._pos + + if (length === -1 || end > this._list.length || end > this.packet.length) return null + + result = this._list.toString('utf8', this._pos, end) + this._pos += length + + return result +} + +Parser.prototype._parseBuffer = function () { + var length = this._parseNum() + var result + var end = length + this._pos + + if (length === -1 || end > this._list.length || end > this.packet.length) return null + + result = this._list.slice(this._pos, end) + + this._pos += length + + return result +} + +Parser.prototype._parseNum = function () { + if (this._list.length - this._pos < 2) return -1 + + var result = this._list.readUInt16BE(this._pos) + this._pos += 2 + + return result +} + +Parser.prototype._newPacket = function () { + if (this.packet) { + this._list.consume(this.packet.length) + this.emit('packet', this.packet) + } + + this.packet = new Packet() + + return true +} + +Parser.prototype._emitError = function (err) { + this.error = err + this.emit('error', err) +} + +module.exports = Parser + + +/***/ }), + +/***/ "./node_modules/mqtt-packet/writeToStream.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var protocol = __webpack_require__("./node_modules/mqtt-packet/constants.js") +var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer +var empty = Buffer.allocUnsafe(0) +var zeroBuf = Buffer.from([0]) +var numbers = __webpack_require__("./node_modules/mqtt-packet/numbers.js") +var nextTick = __webpack_require__("./node_modules/process-nextick-args/index.js") + +var numCache = numbers.cache +var generateNumber = numbers.generateNumber +var generateCache = numbers.generateCache +var writeNumber = writeNumberCached +var toGenerate = true + +function generate (packet, stream) { + if (stream.cork) { + stream.cork() + nextTick(uncork, stream) + } + + if (toGenerate) { + toGenerate = false + generateCache() + } + + switch (packet.cmd) { + case 'connect': + return connect(packet, stream) + case 'connack': + return connack(packet, stream) + case 'publish': + return publish(packet, stream) + case 'puback': + case 'pubrec': + case 'pubrel': + case 'pubcomp': + case 'unsuback': + return confirmation(packet, stream) + case 'subscribe': + return subscribe(packet, stream) + case 'suback': + return suback(packet, stream) + case 'unsubscribe': + return unsubscribe(packet, stream) + case 'pingreq': + case 'pingresp': + case 'disconnect': + return emptyPacket(packet, stream) + default: + stream.emit('error', new Error('Unknown command')) + return false + } +} +/** + * Controls numbers cache. + * Set to "false" to allocate buffers on-the-flight instead of pre-generated cache + */ +Object.defineProperty(generate, 'cacheNumbers', { + get: function () { + return writeNumber === writeNumberCached + }, + set: function (value) { + if (value) { + if (!numCache || Object.keys(numCache).length === 0) toGenerate = true + writeNumber = writeNumberCached + } else { + toGenerate = false + writeNumber = writeNumberGenerated + } + } +}) + +function uncork (stream) { + stream.uncork() +} + +function connect (opts, stream) { + var settings = opts || {} + var protocolId = settings.protocolId || 'MQTT' + var protocolVersion = settings.protocolVersion || 4 + var will = settings.will + var clean = settings.clean + var keepalive = settings.keepalive || 0 + var clientId = settings.clientId || '' + var username = settings.username + var password = settings.password + + if (clean === undefined) clean = true + + var length = 0 + + // Must be a string and non-falsy + if (!protocolId || + (typeof protocolId !== 'string' && !Buffer.isBuffer(protocolId))) { + stream.emit('error', new Error('Invalid protocolId')) + return false + } else length += protocolId.length + 2 + + // Must be 3 or 4 + if (protocolVersion !== 3 && protocolVersion !== 4) { + stream.emit('error', new Error('Invalid protocol version')) + return false + } else length += 1 + + // ClientId might be omitted in 3.1.1, but only if cleanSession is set to 1 + if ((typeof clientId === 'string' || Buffer.isBuffer(clientId)) && + (clientId || protocolVersion === 4) && (clientId || clean)) { + length += clientId.length + 2 + } else { + if (protocolVersion < 4) { + stream.emit('error', new Error('clientId must be supplied before 3.1.1')) + return false + } + if ((clean * 1) === 0) { + stream.emit('error', new Error('clientId must be given if cleanSession set to 0')) + return false + } + } + + // Must be a two byte number + if (typeof keepalive !== 'number' || + keepalive < 0 || + keepalive > 65535 || + keepalive % 1 !== 0) { + stream.emit('error', new Error('Invalid keepalive')) + return false + } else length += 2 + + // Connect flags + length += 1 + + // If will exists... + if (will) { + // It must be an object + if (typeof will !== 'object') { + stream.emit('error', new Error('Invalid will')) + return false + } + // It must have topic typeof string + if (!will.topic || typeof will.topic !== 'string') { + stream.emit('error', new Error('Invalid will topic')) + return false + } else { + length += Buffer.byteLength(will.topic) + 2 + } + + // Payload + if (will.payload && will.payload) { + if (will.payload.length >= 0) { + if (typeof will.payload === 'string') { + length += Buffer.byteLength(will.payload) + 2 + } else { + length += will.payload.length + 2 + } + } else { + stream.emit('error', new Error('Invalid will payload')) + return false + } + } else { + length += 2 + } + } + + // Username + if (username) { + if (username.length) { + length += Buffer.byteLength(username) + 2 + } else { + stream.emit('error', new Error('Invalid username')) + return false + } + } + + // Password + if (password) { + if (password.length) { + length += byteLength(password) + 2 + } else { + stream.emit('error', new Error('Invalid password')) + return false + } + } + + // Generate header + stream.write(protocol.CONNECT_HEADER) + + // Generate length + writeLength(stream, length) + + // Generate protocol ID + writeStringOrBuffer(stream, protocolId) + stream.write( + protocolVersion === 4 ? protocol.VERSION4 : protocol.VERSION3 + ) + + // Connect flags + var flags = 0 + flags |= username ? protocol.USERNAME_MASK : 0 + flags |= password ? protocol.PASSWORD_MASK : 0 + flags |= (will && will.retain) ? protocol.WILL_RETAIN_MASK : 0 + flags |= (will && will.qos) ? will.qos << protocol.WILL_QOS_SHIFT : 0 + flags |= will ? protocol.WILL_FLAG_MASK : 0 + flags |= clean ? protocol.CLEAN_SESSION_MASK : 0 + + stream.write(Buffer.from([flags])) + + // Keepalive + writeNumber(stream, keepalive) + + // Client ID + writeStringOrBuffer(stream, clientId) + + // Will + if (will) { + writeString(stream, will.topic) + writeStringOrBuffer(stream, will.payload) + } + + // Username and password + if (username) writeStringOrBuffer(stream, username) + if (password) writeStringOrBuffer(stream, password) + + // This is a small packet that happens only once on a stream + // We assume the stream is always free to receive more data after this + return true +} + +function connack (opts, stream) { + var settings = opts || {} + var rc = settings.returnCode + + // Check return code + if (typeof rc !== 'number') { + stream.emit('error', new Error('Invalid return code')) + return false + } + + stream.write(protocol.CONNACK_HEADER) + writeLength(stream, 2) + stream.write(opts.sessionPresent ? protocol.SESSIONPRESENT_HEADER : zeroBuf) + + return stream.write(Buffer.from([rc])) +} + +function publish (opts, stream) { + var settings = opts || {} + var qos = settings.qos || 0 + var retain = settings.retain ? protocol.RETAIN_MASK : 0 + var topic = settings.topic + var payload = settings.payload || empty + var id = settings.messageId + + var length = 0 + + // Topic must be a non-empty string or Buffer + if (typeof topic === 'string') length += Buffer.byteLength(topic) + 2 + else if (Buffer.isBuffer(topic)) length += topic.length + 2 + else { + stream.emit('error', new Error('Invalid topic')) + return false + } + + // Get the payload length + if (!Buffer.isBuffer(payload)) length += Buffer.byteLength(payload) + else length += payload.length + + // Message ID must a number if qos > 0 + if (qos && typeof id !== 'number') { + stream.emit('error', new Error('Invalid messageId')) + return false + } else if (qos) length += 2 + + // Header + stream.write(protocol.PUBLISH_HEADER[qos][opts.dup ? 1 : 0][retain ? 1 : 0]) + + // Remaining length + writeLength(stream, length) + + // Topic + writeNumber(stream, byteLength(topic)) + stream.write(topic) + + // Message ID + if (qos > 0) writeNumber(stream, id) + + // Payload + return stream.write(payload) +} + +/* Puback, pubrec, pubrel and pubcomp */ +function confirmation (opts, stream) { + var settings = opts || {} + var type = settings.cmd || 'puback' + var id = settings.messageId + var dup = (settings.dup && type === 'pubrel') ? protocol.DUP_MASK : 0 + var qos = 0 + + if (type === 'pubrel') qos = 1 + + // Check message ID + if (typeof id !== 'number') { + stream.emit('error', new Error('Invalid messageId')) + return false + } + + // Header + stream.write(protocol.ACKS[type][qos][dup][0]) + + // Length + writeLength(stream, 2) + + // Message ID + return writeNumber(stream, id) +} + +function subscribe (opts, stream) { + var settings = opts || {} + var dup = settings.dup ? protocol.DUP_MASK : 0 + var id = settings.messageId + var subs = settings.subscriptions + + var length = 0 + + // Check message ID + if (typeof id !== 'number') { + stream.emit('error', new Error('Invalid messageId')) + return false + } else length += 2 + + // Check subscriptions + if (typeof subs === 'object' && subs.length) { + for (var i = 0; i < subs.length; i += 1) { + var itopic = subs[i].topic + var iqos = subs[i].qos + + if (typeof itopic !== 'string') { + stream.emit('error', new Error('Invalid subscriptions - invalid topic')) + return false + } + if (typeof iqos !== 'number') { + stream.emit('error', new Error('Invalid subscriptions - invalid qos')) + return false + } + + length += Buffer.byteLength(itopic) + 2 + 1 + } + } else { + stream.emit('error', new Error('Invalid subscriptions')) + return false + } + + // Generate header + stream.write(protocol.SUBSCRIBE_HEADER[1][dup ? 1 : 0][0]) + + // Generate length + writeLength(stream, length) + + // Generate message ID + writeNumber(stream, id) + + var result = true + + // Generate subs + for (var j = 0; j < subs.length; j++) { + var sub = subs[j] + var jtopic = sub.topic + var jqos = sub.qos + + // Write topic string + writeString(stream, jtopic) + + // Write qos + result = stream.write(protocol.QOS[jqos]) + } + + return result +} + +function suback (opts, stream) { + var settings = opts || {} + var id = settings.messageId + var granted = settings.granted + + var length = 0 + + // Check message ID + if (typeof id !== 'number') { + stream.emit('error', new Error('Invalid messageId')) + return false + } else length += 2 + + // Check granted qos vector + if (typeof granted === 'object' && granted.length) { + for (var i = 0; i < granted.length; i += 1) { + if (typeof granted[i] !== 'number') { + stream.emit('error', new Error('Invalid qos vector')) + return false + } + length += 1 + } + } else { + stream.emit('error', new Error('Invalid qos vector')) + return false + } + + // header + stream.write(protocol.SUBACK_HEADER) + + // Length + writeLength(stream, length) + + // Message ID + writeNumber(stream, id) + + return stream.write(Buffer.from(granted)) +} + +function unsubscribe (opts, stream) { + var settings = opts || {} + var id = settings.messageId + var dup = settings.dup ? protocol.DUP_MASK : 0 + var unsubs = settings.unsubscriptions + + var length = 0 + + // Check message ID + if (typeof id !== 'number') { + stream.emit('error', new Error('Invalid messageId')) + return false + } else { + length += 2 + } + // Check unsubs + if (typeof unsubs === 'object' && unsubs.length) { + for (var i = 0; i < unsubs.length; i += 1) { + if (typeof unsubs[i] !== 'string') { + stream.emit('error', new Error('Invalid unsubscriptions')) + return false + } + length += Buffer.byteLength(unsubs[i]) + 2 + } + } else { + stream.emit('error', new Error('Invalid unsubscriptions')) + return false + } + + // Header + stream.write(protocol.UNSUBSCRIBE_HEADER[1][dup ? 1 : 0][0]) + + // Length + writeLength(stream, length) + + // Message ID + writeNumber(stream, id) + + // Unsubs + var result = true + for (var j = 0; j < unsubs.length; j++) { + result = writeString(stream, unsubs[j]) + } + + return result +} + +function emptyPacket (opts, stream) { + return stream.write(protocol.EMPTY[opts.cmd]) +} + +/** + * calcLengthLength - calculate the length of the remaining + * length field + * + * @api private + */ +function calcLengthLength (length) { + if (length >= 0 && length < 128) return 1 + else if (length >= 128 && length < 16384) return 2 + else if (length >= 16384 && length < 2097152) return 3 + else if (length >= 2097152 && length < 268435456) return 4 + else return 0 +} + +function genBufLength (length) { + var digit = 0 + var pos = 0 + var buffer = Buffer.allocUnsafe(calcLengthLength(length)) + + do { + digit = length % 128 | 0 + length = length / 128 | 0 + if (length > 0) digit = digit | 0x80 + + buffer.writeUInt8(digit, pos++, true) + } while (length > 0) + + return buffer +} + +/** + * writeLength - write an MQTT style length field to the buffer + * + * @param buffer - destination + * @param pos - offset + * @param length - length (>0) + * @returns number of bytes written + * + * @api private + */ + +var lengthCache = {} +function writeLength (stream, length) { + var buffer = lengthCache[length] + + if (!buffer) { + buffer = genBufLength(length) + if (length < 16384) lengthCache[length] = buffer + } + + stream.write(buffer) +} + +/** + * writeString - write a utf8 string to the buffer + * + * @param buffer - destination + * @param pos - offset + * @param string - string to write + * @return number of bytes written + * + * @api private + */ + +function writeString (stream, string) { + var strlen = Buffer.byteLength(string) + writeNumber(stream, strlen) + + stream.write(string, 'utf8') +} + +/** + * writeNumber - write a two byte number to the buffer + * + * @param buffer - destination + * @param pos - offset + * @param number - number to write + * @return number of bytes written + * + * @api private + */ +function writeNumberCached (stream, number) { + return stream.write(numCache[number]) +} +function writeNumberGenerated (stream, number) { + return stream.write(generateNumber(number)) +} + +/** + * writeStringOrBuffer - write a String or Buffer with the its length prefix + * + * @param buffer - destination + * @param pos - offset + * @param toWrite - String or Buffer + * @return number of bytes written + */ +function writeStringOrBuffer (stream, toWrite) { + if (toWrite && typeof toWrite === 'string') writeString(stream, toWrite) + else if (toWrite) { + writeNumber(stream, toWrite.length) + stream.write(toWrite) + } else writeNumber(stream, 0) +} + +function byteLength (bufOrString) { + if (!bufOrString) return 0 + else if (Buffer.isBuffer(bufOrString)) return bufOrString.length + else return Buffer.byteLength(bufOrString) +} + +module.exports = generate + + +/***/ }), + +/***/ "./node_modules/mqtt/lib/client.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global, process) { + +/** + * Module dependencies + */ +var events = __webpack_require__("./node_modules/events/events.js") +var Store = __webpack_require__("./node_modules/mqtt/lib/store.js") +var eos = __webpack_require__("./node_modules/end-of-stream/index.js") +var mqttPacket = __webpack_require__("./node_modules/mqtt-packet/mqtt.js") +var Writable = __webpack_require__("./node_modules/readable-stream/readable-browser.js").Writable +var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") +var reInterval = __webpack_require__("./node_modules/reinterval/index.js") +var validations = __webpack_require__("./node_modules/mqtt/lib/validations.js") +var xtend = __webpack_require__("./node_modules/xtend/immutable.js") +var setImmediate = global.setImmediate || function (callback) { + // works in node v0.8 + process.nextTick(callback) +} +var defaultConnectOptions = { + keepalive: 60, + reschedulePings: true, + protocolId: 'MQTT', + protocolVersion: 4, + reconnectPeriod: 1000, + connectTimeout: 30 * 1000, + clean: true, + resubscribe: true +} + +function defaultId () { + return 'mqttjs_' + Math.random().toString(16).substr(2, 8) +} + +function sendPacket (client, packet, cb) { + client.emit('packetsend', packet) + + var result = mqttPacket.writeToStream(packet, client.stream) + + if (!result && cb) { + client.stream.once('drain', cb) + } else if (cb) { + cb() + } +} + +function storeAndSend (client, packet, cb) { + client.outgoingStore.put(packet, function storedPacket (err) { + if (err) { + return cb && cb(err) + } + sendPacket(client, packet, cb) + }) +} + +function nop () {} + +/** + * MqttClient constructor + * + * @param {Stream} stream - stream + * @param {Object} [options] - connection options + * (see Connection#connect) + */ +function MqttClient (streamBuilder, options) { + var k + var that = this + + if (!(this instanceof MqttClient)) { + return new MqttClient(streamBuilder, options) + } + + this.options = options || {} + + // Defaults + for (k in defaultConnectOptions) { + if (typeof this.options[k] === 'undefined') { + this.options[k] = defaultConnectOptions[k] + } else { + this.options[k] = options[k] + } + } + + this.options.clientId = (typeof this.options.clientId === 'string') ? this.options.clientId : defaultId() + + this.streamBuilder = streamBuilder + + // Inflight message storages + this.outgoingStore = this.options.outgoingStore || new Store() + this.incomingStore = this.options.incomingStore || new Store() + + // Should QoS zero messages be queued when the connection is broken? + this.queueQoSZero = this.options.queueQoSZero === undefined ? true : this.options.queueQoSZero + + // map of subscribed topics to support reconnection + this._resubscribeTopics = {} + + // map of a subscribe messageId and a topic + this.messageIdToTopic = {} + + // Ping timer, setup in _setupPingTimer + this.pingTimer = null + // Is the client connected? + this.connected = false + // Are we disconnecting? + this.disconnecting = false + // Packet queue + this.queue = [] + // connack timer + this.connackTimer = null + // Reconnect timer + this.reconnectTimer = null + // MessageIDs starting with 1 + this.nextId = Math.floor(Math.random() * 65535) + + // Inflight callbacks + this.outgoing = {} + + // Mark connected on connect + this.on('connect', function () { + if (this.disconnected) { + return + } + + this.connected = true + var outStore = null + outStore = this.outgoingStore.createStream() + + // Control of stored messages + outStore.once('readable', function () { + function storeDeliver () { + var packet = outStore.read(1) + var cb + + if (!packet) { + return + } + + // Avoid unnecesary stream read operations when disconnected + if (!that.disconnecting && !that.reconnectTimer && that.options.reconnectPeriod > 0) { + outStore.read(0) + cb = that.outgoing[packet.messageId] + that.outgoing[packet.messageId] = function (err, status) { + // Ensure that the original callback passed in to publish gets invoked + if (cb) { + cb(err, status) + } + + storeDeliver() + } + that._sendPacket(packet) + } else if (outStore.destroy) { + outStore.destroy() + } + } + storeDeliver() + }) + .on('error', this.emit.bind(this, 'error')) + }) + + // Mark disconnected on stream close + this.on('close', function () { + this.connected = false + clearTimeout(this.connackTimer) + }) + + // Setup ping timer + this.on('connect', this._setupPingTimer) + + // Send queued packets + this.on('connect', function () { + var queue = this.queue + + function deliver () { + var entry = queue.shift() + var packet = null + + if (!entry) { + return + } + + packet = entry.packet + + that._sendPacket( + packet, + function (err) { + if (entry.cb) { + entry.cb(err) + } + deliver() + } + ) + } + + deliver() + }) + + var firstConnection = true + // resubscribe + this.on('connect', function () { + if (!firstConnection && + this.options.clean && + Object.keys(this._resubscribeTopics).length > 0) { + if (this.options.resubscribe) { + this._resubscribeTopics.resubscribe = true + this.subscribe(this._resubscribeTopics) + } else { + this._resubscribeTopics = {} + } + } + + firstConnection = false + }) + + // Clear ping timer + this.on('close', function () { + if (that.pingTimer !== null) { + that.pingTimer.clear() + that.pingTimer = null + } + }) + + // Setup reconnect timer on disconnect + this.on('close', this._setupReconnect) + + events.EventEmitter.call(this) + + this._setupStream() +} +inherits(MqttClient, events.EventEmitter) + +/** + * setup the event handlers in the inner stream. + * + * @api private + */ +MqttClient.prototype._setupStream = function () { + var connectPacket + var that = this + var writable = new Writable() + var parser = mqttPacket.parser(this.options) + var completeParse = null + var packets = [] + + this._clearReconnect() + + this.stream = this.streamBuilder(this) + + parser.on('packet', function (packet) { + packets.push(packet) + }) + + function nextTickWork () { + process.nextTick(work) + } + + function work () { + var packet = packets.shift() + var done = completeParse + + if (packet) { + that._handlePacket(packet, nextTickWork) + } else { + completeParse = null + done() + } + } + + writable._write = function (buf, enc, done) { + completeParse = done + parser.parse(buf) + work() + } + + this.stream.pipe(writable) + + // Suppress connection errors + this.stream.on('error', nop) + + // Echo stream close + eos(this.stream, this.emit.bind(this, 'close')) + + // Send a connect packet + connectPacket = Object.create(this.options) + connectPacket.cmd = 'connect' + // avoid message queue + sendPacket(this, connectPacket) + + // Echo connection errors + parser.on('error', this.emit.bind(this, 'error')) + + // many drain listeners are needed for qos 1 callbacks if the connection is intermittent + this.stream.setMaxListeners(1000) + + clearTimeout(this.connackTimer) + this.connackTimer = setTimeout(function () { + that._cleanUp(true) + }, this.options.connectTimeout) +} + +MqttClient.prototype._handlePacket = function (packet, done) { + this.emit('packetreceive', packet) + + switch (packet.cmd) { + case 'publish': + this._handlePublish(packet, done) + break + case 'puback': + case 'pubrec': + case 'pubcomp': + case 'suback': + case 'unsuback': + this._handleAck(packet) + done() + break + case 'pubrel': + this._handlePubrel(packet, done) + break + case 'connack': + this._handleConnack(packet) + done() + break + case 'pingresp': + this._handlePingresp(packet) + done() + break + default: + // do nothing + // maybe we should do an error handling + // or just log it + break + } +} + +MqttClient.prototype._checkDisconnecting = function (callback) { + if (this.disconnecting) { + if (callback) { + callback(new Error('client disconnecting')) + } else { + this.emit('error', new Error('client disconnecting')) + } + } + return this.disconnecting +} + +/** + * publish - publish to + * + * @param {String} topic - topic to publish to + * @param {String, Buffer} message - message to publish + * @param {Object} [opts] - publish options, includes: + * {Number} qos - qos level to publish on + * {Boolean} retain - whether or not to retain the message + * {Boolean} dup - whether or not mark a message as duplicate + * @param {Function} [callback] - function(err){} + * called when publish succeeds or fails + * @returns {MqttClient} this - for chaining + * @api public + * + * @example client.publish('topic', 'message'); + * @example + * client.publish('topic', 'message', {qos: 1, retain: true, dup: true}); + * @example client.publish('topic', 'message', console.log); + */ +MqttClient.prototype.publish = function (topic, message, opts, callback) { + var packet + + // .publish(topic, payload, cb); + if (typeof opts === 'function') { + callback = opts + opts = null + } + + // default opts + var defaultOpts = {qos: 0, retain: false, dup: false} + opts = xtend(defaultOpts, opts) + + if (this._checkDisconnecting(callback)) { + return this + } + + packet = { + cmd: 'publish', + topic: topic, + payload: message, + qos: opts.qos, + retain: opts.retain, + messageId: this._nextId(), + dup: opts.dup + } + + switch (opts.qos) { + case 1: + case 2: + + // Add to callbacks + this.outgoing[packet.messageId] = callback || nop + this._sendPacket(packet) + break + default: + this._sendPacket(packet, callback) + break + } + + return this +} + +/** + * subscribe - subscribe to + * + * @param {String, Array, Object} topic - topic(s) to subscribe to, supports objects in the form {'topic': qos} + * @param {Object} [opts] - optional subscription options, includes: + * {Number} qos - subscribe qos level + * @param {Function} [callback] - function(err, granted){} where: + * {Error} err - subscription error (none at the moment!) + * {Array} granted - array of {topic: 't', qos: 0} + * @returns {MqttClient} this - for chaining + * @api public + * @example client.subscribe('topic'); + * @example client.subscribe('topic', {qos: 1}); + * @example client.subscribe({'topic': 0, 'topic2': 1}, console.log); + * @example client.subscribe('topic', console.log); + */ +MqttClient.prototype.subscribe = function () { + var packet + var args = Array.prototype.slice.call(arguments) + var subs = [] + var obj = args.shift() + var resubscribe = obj.resubscribe + var callback = args.pop() || nop + var opts = args.pop() + var invalidTopic + var that = this + + delete obj.resubscribe + + if (typeof obj === 'string') { + obj = [obj] + } + + if (typeof callback !== 'function') { + opts = callback + callback = nop + } + + invalidTopic = validations.validateTopics(obj) + if (invalidTopic !== null) { + setImmediate(callback, new Error('Invalid topic ' + invalidTopic)) + return this + } + + if (this._checkDisconnecting(callback)) { + return this + } + + var defaultOpts = { qos: 0 } + opts = xtend(defaultOpts, opts) + + if (Array.isArray(obj)) { + obj.forEach(function (topic) { + if (that._resubscribeTopics[topic] < opts.qos || + !that._resubscribeTopics.hasOwnProperty(topic) || + resubscribe + ) { + subs.push({ + topic: topic, + qos: opts.qos + }) + } + }) + } else { + Object + .keys(obj) + .forEach(function (k) { + if (that._resubscribeTopics[k] < obj[k] || + !that._resubscribeTopics.hasOwnProperty(k) || + resubscribe + ) { + subs.push({ + topic: k, + qos: obj[k] + }) + } + }) + } + + packet = { + cmd: 'subscribe', + subscriptions: subs, + qos: 1, + retain: false, + dup: false, + messageId: this._nextId() + } + + if (!subs.length) { + callback(null, []) + return + } + + // subscriptions to resubscribe to in case of disconnect + if (this.options.resubscribe) { + var topics = [] + subs.forEach(function (sub) { + if (that.options.reconnectPeriod > 0) { + that._resubscribeTopics[sub.topic] = sub.qos + topics.push(sub.topic) + } + }) + that.messageIdToTopic[packet.messageId] = topics + } + + this.outgoing[packet.messageId] = function (err, packet) { + if (!err) { + var granted = packet.granted + for (var i = 0; i < granted.length; i += 1) { + subs[i].qos = granted[i] + } + } + + callback(err, subs) + } + + this._sendPacket(packet) + + return this +} + +/** + * unsubscribe - unsubscribe from topic(s) + * + * @param {String, Array} topic - topics to unsubscribe from + * @param {Function} [callback] - callback fired on unsuback + * @returns {MqttClient} this - for chaining + * @api public + * @example client.unsubscribe('topic'); + * @example client.unsubscribe('topic', console.log); + */ +MqttClient.prototype.unsubscribe = function (topic, callback) { + var packet = { + cmd: 'unsubscribe', + qos: 1, + messageId: this._nextId() + } + var that = this + + callback = callback || nop + + if (this._checkDisconnecting(callback)) { + return this + } + + if (typeof topic === 'string') { + packet.unsubscriptions = [topic] + } else if (typeof topic === 'object' && topic.length) { + packet.unsubscriptions = topic + } + + if (this.options.resubscribe) { + packet.unsubscriptions.forEach(function (topic) { + delete that._resubscribeTopics[topic] + }) + } + + this.outgoing[packet.messageId] = callback + + this._sendPacket(packet) + + return this +} + +/** + * end - close connection + * + * @returns {MqttClient} this - for chaining + * @param {Boolean} force - do not wait for all in-flight messages to be acked + * @param {Function} cb - called when the client has been closed + * + * @api public + */ +MqttClient.prototype.end = function (force, cb) { + var that = this + + if (typeof force === 'function') { + cb = force + force = false + } + + function closeStores () { + that.disconnected = true + that.incomingStore.close(function () { + that.outgoingStore.close(cb) + }) + if (that._deferredReconnect) { + that._deferredReconnect() + } + } + + function finish () { + // defer closesStores of an I/O cycle, + // just to make sure things are + // ok for websockets + that._cleanUp(force, setImmediate.bind(null, closeStores)) + } + + if (this.disconnecting) { + return this + } + + this._clearReconnect() + + this.disconnecting = true + + if (!force && Object.keys(this.outgoing).length > 0) { + // wait 10ms, just to be sure we received all of it + this.once('outgoingEmpty', setTimeout.bind(null, finish, 10)) + } else { + finish() + } + + return this +} + +/** + * removeOutgoingMessage - remove a message in outgoing store + * the outgoing callback will be called withe Error('Message removed') if the message is removed + * + * @param {Number} mid - messageId to remove message + * @returns {MqttClient} this - for chaining + * @api public + * + * @example client.removeOutgoingMessage(client.getLastMessageId()); + */ +MqttClient.prototype.removeOutgoingMessage = function (mid) { + var cb = this.outgoing[mid] + delete this.outgoing[mid] + this.outgoingStore.del({messageId: mid}, function () { + cb(new Error('Message removed')) + }) + return this +} + +/** + * reconnect - connect again using the same options as connect() + * + * @param {Object} [opts] - optional reconnect options, includes: + * {Store} incomingStore - a store for the incoming packets + * {Store} outgoingStore - a store for the outgoing packets + * if opts is not given, current stores are used + * @returns {MqttClient} this - for chaining + * + * @api public + */ +MqttClient.prototype.reconnect = function (opts) { + var that = this + var f = function () { + if (opts) { + that.options.incomingStore = opts.incomingStore + that.options.outgoingStore = opts.outgoingStore + } else { + that.options.incomingStore = null + that.options.outgoingStore = null + } + that.incomingStore = that.options.incomingStore || new Store() + that.outgoingStore = that.options.outgoingStore || new Store() + that.disconnecting = false + that.disconnected = false + that._deferredReconnect = null + that._reconnect() + } + + if (this.disconnecting && !this.disconnected) { + this._deferredReconnect = f + } else { + f() + } + return this +} + +/** + * _reconnect - implement reconnection + * @api privateish + */ +MqttClient.prototype._reconnect = function () { + this.emit('reconnect') + this._setupStream() +} + +/** + * _setupReconnect - setup reconnect timer + */ +MqttClient.prototype._setupReconnect = function () { + var that = this + + if (!that.disconnecting && !that.reconnectTimer && (that.options.reconnectPeriod > 0)) { + if (!this.reconnecting) { + this.emit('offline') + this.reconnecting = true + } + that.reconnectTimer = setInterval(function () { + that._reconnect() + }, that.options.reconnectPeriod) + } +} + +/** + * _clearReconnect - clear the reconnect timer + */ +MqttClient.prototype._clearReconnect = function () { + if (this.reconnectTimer) { + clearInterval(this.reconnectTimer) + this.reconnectTimer = null + } +} + +/** + * _cleanUp - clean up on connection end + * @api private + */ +MqttClient.prototype._cleanUp = function (forced, done) { + if (done) { + this.stream.on('close', done) + } + + if (forced) { + this.stream.destroy() + } else { + this._sendPacket( + { cmd: 'disconnect' }, + setImmediate.bind( + null, + this.stream.end.bind(this.stream) + ) + ) + } + + if (!this.disconnecting) { + this._clearReconnect() + this._setupReconnect() + } + + if (this.pingTimer !== null) { + this.pingTimer.clear() + this.pingTimer = null + } + + if (done && !this.connected) { + this.stream.removeListener('close', done) + done() + } +} + +/** + * _sendPacket - send or queue a packet + * @param {String} type - packet type (see `protocol`) + * @param {Object} packet - packet options + * @param {Function} cb - callback when the packet is sent + * @api private + */ +MqttClient.prototype._sendPacket = function (packet, cb) { + if (!this.connected) { + if (((packet.qos || 0) === 0 && this.queueQoSZero) || packet.cmd !== 'publish') { + this.queue.push({ packet: packet, cb: cb }) + } else if (packet.qos > 0) { + cb = this.outgoing[packet.messageId] + this.outgoingStore.put(packet, function (err) { + if (err) { + return cb && cb(err) + } + }) + } else if (cb) { + cb(new Error('No connection to broker')) + } + + return + } + + // When sending a packet, reschedule the ping timer + this._shiftPingInterval() + + if (packet.cmd !== 'publish') { + sendPacket(this, packet, cb) + return + } + + switch (packet.qos) { + case 2: + case 1: + storeAndSend(this, packet, cb) + break + /** + * no need of case here since it will be caught by default + * and jshint comply that before default it must be a break + * anyway it will result in -1 evaluation + */ + case 0: + /* falls through */ + default: + sendPacket(this, packet, cb) + break + } +} + +/** + * _setupPingTimer - setup the ping timer + * + * @api private + */ +MqttClient.prototype._setupPingTimer = function () { + var that = this + + if (!this.pingTimer && this.options.keepalive) { + this.pingResp = true + this.pingTimer = reInterval(function () { + that._checkPing() + }, this.options.keepalive * 1000) + } +} + +/** + * _shiftPingInterval - reschedule the ping interval + * + * @api private + */ +MqttClient.prototype._shiftPingInterval = function () { + if (this.pingTimer && this.options.keepalive && this.options.reschedulePings) { + this.pingTimer.reschedule(this.options.keepalive * 1000) + } +} +/** + * _checkPing - check if a pingresp has come back, and ping the server again + * + * @api private + */ +MqttClient.prototype._checkPing = function () { + if (this.pingResp) { + this.pingResp = false + this._sendPacket({ cmd: 'pingreq' }) + } else { + // do a forced cleanup since socket will be in bad shape + this._cleanUp(true) + } +} + +/** + * _handlePingresp - handle a pingresp + * + * @api private + */ +MqttClient.prototype._handlePingresp = function () { + this.pingResp = true +} + +/** + * _handleConnack + * + * @param {Object} packet + * @api private + */ + +MqttClient.prototype._handleConnack = function (packet) { + var rc = packet.returnCode + var errors = [ + '', + 'Unacceptable protocol version', + 'Identifier rejected', + 'Server unavailable', + 'Bad username or password', + 'Not authorized' + ] + + clearTimeout(this.connackTimer) + + if (rc === 0) { + this.reconnecting = false + this.emit('connect', packet) + } else if (rc > 0) { + var err = new Error('Connection refused: ' + errors[rc]) + err.code = rc + this.emit('error', err) + } +} + +/** + * _handlePublish + * + * @param {Object} packet + * @api private + */ +/* +those late 2 case should be rewrite to comply with coding style: + +case 1: +case 0: + // do not wait sending a puback + // no callback passed + if (1 === qos) { + this._sendPacket({ + cmd: 'puback', + messageId: mid + }); + } + // emit the message event for both qos 1 and 0 + this.emit('message', topic, message, packet); + this.handleMessage(packet, done); + break; +default: + // do nothing but every switch mus have a default + // log or throw an error about unknown qos + break; + +for now i just suppressed the warnings +*/ +MqttClient.prototype._handlePublish = function (packet, done) { + var topic = packet.topic.toString() + var message = packet.payload + var qos = packet.qos + var mid = packet.messageId + var that = this + + switch (qos) { + case 2: + this.incomingStore.put(packet, function () { + that._sendPacket({cmd: 'pubrec', messageId: mid}, done) + }) + break + case 1: + // emit the message event + this.emit('message', topic, message, packet) + this.handleMessage(packet, function (err) { + if (err) { + return done && done(err) + } + // send 'puback' if the above 'handleMessage' method executed + // successfully. + that._sendPacket({cmd: 'puback', messageId: mid}, done) + }) + break + case 0: + // emit the message event + this.emit('message', topic, message, packet) + this.handleMessage(packet, done) + break + default: + // do nothing + // log or throw an error about unknown qos + break + } +} + +/** + * Handle messages with backpressure support, one at a time. + * Override at will. + * + * @param Packet packet the packet + * @param Function callback call when finished + * @api public + */ +MqttClient.prototype.handleMessage = function (packet, callback) { + callback() +} + +/** + * _handleAck + * + * @param {Object} packet + * @api private + */ + +MqttClient.prototype._handleAck = function (packet) { + /* eslint no-fallthrough: "off" */ + var mid = packet.messageId + var type = packet.cmd + var response = null + var cb = this.outgoing[mid] + var that = this + + if (!cb) { + // Server sent an ack in error, ignore it. + return + } + + // Process + switch (type) { + case 'pubcomp': + // same thing as puback for QoS 2 + case 'puback': + // Callback - we're done + delete this.outgoing[mid] + this.outgoingStore.del(packet, cb) + break + case 'pubrec': + response = { + cmd: 'pubrel', + qos: 2, + messageId: mid + } + + this._sendPacket(response) + break + case 'suback': + delete this.outgoing[mid] + if (packet.granted.length === 1 && (packet.granted[0] & 0x80) !== 0) { + // suback with Failure status + var topics = this.messageIdToTopic[mid] + if (topics) { + topics.forEach(function (topic) { + delete that._resubscribeTopics[topic] + }) + } + } + cb(null, packet) + break + case 'unsuback': + delete this.outgoing[mid] + cb(null) + break + default: + that.emit('error', new Error('unrecognized packet type')) + } + + if (this.disconnecting && + Object.keys(this.outgoing).length === 0) { + this.emit('outgoingEmpty') + } +} + +/** + * _handlePubrel + * + * @param {Object} packet + * @api private + */ +MqttClient.prototype._handlePubrel = function (packet, callback) { + var mid = packet.messageId + var that = this + + var comp = {cmd: 'pubcomp', messageId: mid} + + that.incomingStore.get(packet, function (err, pub) { + if (!err && pub.cmd !== 'pubrel') { + that.emit('message', pub.topic, pub.payload, pub) + that.incomingStore.put(packet) + that.handleMessage(pub, function (err) { + if (err) { + return callback && callback(err) + } + that._sendPacket(comp, callback) + }) + } else { + that._sendPacket(comp, callback) + } + }) +} + +/** + * _nextId + */ +MqttClient.prototype._nextId = function () { + var id = this.nextId++ + // Ensure 16 bit unsigned int: + if (id === 65535) { + this.nextId = 1 + } + return id +} + +/** + * getLastMessageId + */ +MqttClient.prototype.getLastMessageId = function () { + return (this.nextId === 1) ? 65535 : (this.nextId - 1) +} + +module.exports = MqttClient + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/mqtt/lib/connect/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +var MqttClient = __webpack_require__("./node_modules/mqtt/lib/client.js") +var Store = __webpack_require__("./node_modules/mqtt/lib/store.js") +var url = __webpack_require__("./node_modules/url/url.js") +var xtend = __webpack_require__("./node_modules/xtend/immutable.js") +var protocols = {} + +if (process.title !== 'browser') { + protocols.mqtt = __webpack_require__("./node_modules/mqtt/lib/connect/tcp.js") + protocols.tcp = __webpack_require__("./node_modules/mqtt/lib/connect/tcp.js") + protocols.ssl = __webpack_require__("./node_modules/mqtt/lib/connect/tls.js") + protocols.tls = __webpack_require__("./node_modules/mqtt/lib/connect/tls.js") + protocols.mqtts = __webpack_require__("./node_modules/mqtt/lib/connect/tls.js") +} else { + protocols.wx = __webpack_require__("./node_modules/mqtt/lib/connect/wx.js") + protocols.wxs = __webpack_require__("./node_modules/mqtt/lib/connect/wx.js") +} + +protocols.ws = __webpack_require__("./node_modules/mqtt/lib/connect/ws.js") +protocols.wss = __webpack_require__("./node_modules/mqtt/lib/connect/ws.js") + +/** + * Parse the auth attribute and merge username and password in the options object. + * + * @param {Object} [opts] option object + */ +function parseAuthOptions (opts) { + var matches + if (opts.auth) { + matches = opts.auth.match(/^(.+):(.+)$/) + if (matches) { + opts.username = matches[1] + opts.password = matches[2] + } else { + opts.username = opts.auth + } + } +} + +/** + * connect - connect to an MQTT broker. + * + * @param {String} [brokerUrl] - url of the broker, optional + * @param {Object} opts - see MqttClient#constructor + */ +function connect (brokerUrl, opts) { + if ((typeof brokerUrl === 'object') && !opts) { + opts = brokerUrl + brokerUrl = null + } + + opts = opts || {} + + if (brokerUrl) { + var parsed = url.parse(brokerUrl, true) + if (parsed.port != null) { + parsed.port = Number(parsed.port) + } + + opts = xtend(parsed, opts) + + if (opts.protocol === null) { + throw new Error('Missing protocol') + } + opts.protocol = opts.protocol.replace(/:$/, '') + } + + // merge in the auth options if supplied + parseAuthOptions(opts) + + // support clientId passed in the query string of the url + if (opts.query && typeof opts.query.clientId === 'string') { + opts.clientId = opts.query.clientId + } + + if (opts.cert && opts.key) { + if (opts.protocol) { + if (['mqtts', 'wss', 'wxs'].indexOf(opts.protocol) === -1) { + switch (opts.protocol) { + case 'mqtt': + opts.protocol = 'mqtts' + break + case 'ws': + opts.protocol = 'wss' + break + case 'wx': + opts.protocol = 'wxs' + break + default: + throw new Error('Unknown protocol for secure connection: "' + opts.protocol + '"!') + } + } + } else { + // don't know what protocol he want to use, mqtts or wss + throw new Error('Missing secure protocol key') + } + } + + if (!protocols[opts.protocol]) { + var isSecure = ['mqtts', 'wss'].indexOf(opts.protocol) !== -1 + opts.protocol = [ + 'mqtt', + 'mqtts', + 'ws', + 'wss', + 'wx', + 'wxs' + ].filter(function (key, index) { + if (isSecure && index % 2 === 0) { + // Skip insecure protocols when requesting a secure one. + return false + } + return (typeof protocols[key] === 'function') + })[0] + } + + if (opts.clean === false && !opts.clientId) { + throw new Error('Missing clientId for unclean clients') + } + + function wrapper (client) { + if (opts.servers) { + if (!client._reconnectCount || client._reconnectCount === opts.servers.length) { + client._reconnectCount = 0 + } + + opts.host = opts.servers[client._reconnectCount].host + opts.port = opts.servers[client._reconnectCount].port + opts.hostname = opts.host + + client._reconnectCount++ + } + + return protocols[opts.protocol](client, opts) + } + + return new MqttClient(wrapper, opts) +} + +module.exports = connect +module.exports.connect = connect +module.exports.MqttClient = MqttClient +module.exports.Store = Store + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/mqtt/lib/connect/tcp.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var net = __webpack_require__(0) + +/* + variables port and host can be removed since + you have all required information in opts object +*/ +function buildBuilder (client, opts) { + var port, host + opts.port = opts.port || 1883 + opts.hostname = opts.hostname || opts.host || 'localhost' + + port = opts.port + host = opts.hostname + + return net.createConnection(port, host) +} + +module.exports = buildBuilder + + +/***/ }), + +/***/ "./node_modules/mqtt/lib/connect/tls.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var tls = __webpack_require__(1) + +function buildBuilder (mqttClient, opts) { + var connection + opts.port = opts.port || 8883 + opts.host = opts.hostname || opts.host || 'localhost' + + opts.rejectUnauthorized = opts.rejectUnauthorized !== false + + delete opts.path + + connection = tls.connect(opts) + /* eslint no-use-before-define: [2, "nofunc"] */ + connection.on('secureConnect', function () { + if (opts.rejectUnauthorized && !connection.authorized) { + connection.emit('error', new Error('TLS not authorized')) + } else { + connection.removeListener('error', handleTLSerrors) + } + }) + + function handleTLSerrors (err) { + // How can I get verify this error is a tls error? + if (opts.rejectUnauthorized) { + mqttClient.emit('error', err) + } + + // close this connection to match the behaviour of net + // otherwise all we get is an error from the connection + // and close event doesn't fire. This is a work around + // to enable the reconnect code to work the same as with + // net.createConnection + connection.end() + } + + connection.on('error', handleTLSerrors) + return connection +} + +module.exports = buildBuilder + + +/***/ }), + +/***/ "./node_modules/mqtt/lib/connect/ws.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +var websocket = __webpack_require__("./node_modules/websocket-stream/stream.js") +var urlModule = __webpack_require__("./node_modules/url/url.js") +var WSS_OPTIONS = [ + 'rejectUnauthorized', + 'ca', + 'cert', + 'key', + 'pfx', + 'passphrase' +] +var IS_BROWSER = process.title === 'browser' + +function buildUrl (opts, client) { + var url = opts.protocol + '://' + opts.hostname + ':' + opts.port + opts.path + if (typeof (opts.transformWsUrl) === 'function') { + url = opts.transformWsUrl(url, opts, client) + } + return url +} + +function setDefaultOpts (opts) { + if (!opts.hostname) { + opts.hostname = 'localhost' + } + if (!opts.port) { + if (opts.protocol === 'wss') { + opts.port = 443 + } else { + opts.port = 80 + } + } + if (!opts.path) { + opts.path = '/' + } + + if (!opts.wsOptions) { + opts.wsOptions = {} + } + if (!IS_BROWSER && opts.protocol === 'wss') { + // Add cert/key/ca etc options + WSS_OPTIONS.forEach(function (prop) { + if (opts.hasOwnProperty(prop) && !opts.wsOptions.hasOwnProperty(prop)) { + opts.wsOptions[prop] = opts[prop] + } + }) + } +} + +function createWebSocket (client, opts) { + var websocketSubProtocol = + (opts.protocolId === 'MQIsdp') && (opts.protocolVersion === 3) + ? 'mqttv3.1' + : 'mqtt' + + setDefaultOpts(opts) + var url = buildUrl(opts, client) + return websocket(url, [websocketSubProtocol], opts.wsOptions) +} + +function buildBuilder (client, opts) { + return createWebSocket(client, opts) +} + +function buildBuilderBrowser (client, opts) { + if (!opts.hostname) { + opts.hostname = opts.host + } + + if (!opts.hostname) { + // Throwing an error in a Web Worker if no `hostname` is given, because we + // can not determine the `hostname` automatically. If connecting to + // localhost, please supply the `hostname` as an argument. + if (typeof (document) === 'undefined') { + throw new Error('Could not determine host. Specify host manually.') + } + var parsed = urlModule.parse(document.URL) + opts.hostname = parsed.hostname + + if (!opts.port) { + opts.port = parsed.port + } + } + return createWebSocket(client, opts) +} + +if (IS_BROWSER) { + module.exports = buildBuilderBrowser +} else { + module.exports = buildBuilder +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/mqtt/lib/connect/wx.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* global wx */ +var socketOpen = false +var socketMsgQueue = [] + +function sendSocketMessage (msg) { + if (socketOpen) { + wx.sendSocketMessage({ + data: msg + }) + } else { + socketMsgQueue.push(msg) + } +} + +function WebSocket (url, protocols) { + var ws = { + OPEN: 1, + CLOSING: 2, + CLOSED: 3, + readyState: socketOpen ? 1 : 0, + send: sendSocketMessage, + close: wx.closeSocket, + onopen: null, + onmessage: null, + onclose: null, + onerror: null + } + + wx.connectSocket({ + url: url, + protocols: protocols + }) + wx.onSocketOpen(function (res) { + ws.readyState = ws.OPEN + socketOpen = true + for (var i = 0; i < socketMsgQueue.length; i++) { + sendSocketMessage(socketMsgQueue[i]) + } + socketMsgQueue = [] + + ws.onopen && ws.onopen.apply(ws, arguments) + }) + wx.onSocketMessage(function (res) { + ws.onmessage && ws.onmessage.apply(ws, arguments) + }) + wx.onSocketClose(function () { + ws.onclose && ws.onclose.apply(ws, arguments) + ws.readyState = ws.CLOSED + socketOpen = false + }) + wx.onSocketError(function () { + ws.onerror && ws.onerror.apply(ws, arguments) + ws.readyState = ws.CLOSED + socketOpen = false + }) + + return ws +} + +var websocket = __webpack_require__("./node_modules/websocket-stream/stream.js") +var urlModule = __webpack_require__("./node_modules/url/url.js") + +function buildUrl (opts, client) { + var protocol = opts.protocol === 'wxs' ? 'wss' : 'ws' + var url = protocol + '://' + opts.hostname + ':' + opts.port + opts.path + if (typeof (opts.transformWsUrl) === 'function') { + url = opts.transformWsUrl(url, opts, client) + } + return url +} + +function setDefaultOpts (opts) { + if (!opts.hostname) { + opts.hostname = 'localhost' + } + if (!opts.port) { + if (opts.protocol === 'wss') { + opts.port = 443 + } else { + opts.port = 80 + } + } + if (!opts.path) { + opts.path = '/' + } + + if (!opts.wsOptions) { + opts.wsOptions = {} + } +} + +function createWebSocket (client, opts) { + var websocketSubProtocol = + (opts.protocolId === 'MQIsdp') && (opts.protocolVersion === 3) + ? 'mqttv3.1' + : 'mqtt' + + setDefaultOpts(opts) + var url = buildUrl(opts, client) + return websocket(WebSocket(url, [websocketSubProtocol])) +} + +function buildBuilder (client, opts) { + if (!opts.hostname) { + opts.hostname = opts.host + } + + if (!opts.hostname) { + // Throwing an error in a Web Worker if no `hostname` is given, because we + // can not determine the `hostname` automatically. If connecting to + // localhost, please supply the `hostname` as an argument. + if (typeof (document) === 'undefined') { + throw new Error('Could not determine host. Specify host manually.') + } + var parsed = urlModule.parse(document.URL) + opts.hostname = parsed.hostname + + if (!opts.port) { + opts.port = parsed.port + } + } + return createWebSocket(client, opts) +} + +module.exports = buildBuilder + + +/***/ }), + +/***/ "./node_modules/mqtt/lib/store.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +/** + * Module dependencies + */ +var xtend = __webpack_require__("./node_modules/xtend/immutable.js") + +var Readable = __webpack_require__("./node_modules/readable-stream/readable-browser.js").Readable +var streamsOpts = { objectMode: true } +var defaultStoreOptions = { + clean: true +} + +/** + * In-memory implementation of the message store + * This can actually be saved into files. + * + * @param {Object} [options] - store options + */ +function Store (options) { + if (!(this instanceof Store)) { + return new Store(options) + } + + this.options = options || {} + + // Defaults + this.options = xtend(defaultStoreOptions, options) + + this._inflights = {} +} + +/** + * Adds a packet to the store, a packet is + * anything that has a messageId property. + * + */ +Store.prototype.put = function (packet, cb) { + this._inflights[packet.messageId] = packet + + if (cb) { + cb() + } + + return this +} + +/** + * Creates a stream with all the packets in the store + * + */ +Store.prototype.createStream = function () { + var stream = new Readable(streamsOpts) + var inflights = this._inflights + var ids = Object.keys(this._inflights) + var destroyed = false + var i = 0 + + stream._read = function () { + if (!destroyed && i < ids.length) { + this.push(inflights[ids[i++]]) + } else { + this.push(null) + } + } + + stream.destroy = function () { + if (destroyed) { + return + } + + var self = this + + destroyed = true + + process.nextTick(function () { + self.emit('close') + }) + } + + return stream +} + +/** + * deletes a packet from the store. + */ +Store.prototype.del = function (packet, cb) { + packet = this._inflights[packet.messageId] + if (packet) { + delete this._inflights[packet.messageId] + cb(null, packet) + } else if (cb) { + cb(new Error('missing packet')) + } + + return this +} + +/** + * get a packet from the store. + */ +Store.prototype.get = function (packet, cb) { + packet = this._inflights[packet.messageId] + if (packet) { + cb(null, packet) + } else if (cb) { + cb(new Error('missing packet')) + } + + return this +} + +/** + * Close the store + */ +Store.prototype.close = function (cb) { + if (this.options.clean) { + this._inflights = null + } + if (cb) { + cb() + } +} + +module.exports = Store + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/mqtt/lib/validations.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Validate a topic to see if it's valid or not. + * A topic is valid if it follow below rules: + * - Rule #1: If any part of the topic is not `+` or `#`, then it must not contain `+` and '#' + * - Rule #2: Part `#` must be located at the end of the mailbox + * + * @param {String} topic - A topic + * @returns {Boolean} If the topic is valid, returns true. Otherwise, returns false. + */ +function validateTopic (topic) { + var parts = topic.split('/') + + for (var i = 0; i < parts.length; i++) { + if (parts[i] === '+') { + continue + } + + if (parts[i] === '#') { + // for Rule #2 + return i === parts.length - 1 + } + + if (parts[i].indexOf('+') !== -1 || parts[i].indexOf('#') !== -1) { + return false + } + } + + return true +} + +/** + * Validate an array of topics to see if any of them is valid or not + * @param {Array} topics - Array of topics + * @returns {String} If the topics is valid, returns null. Otherwise, returns the invalid one + */ +function validateTopics (topics) { + if (topics.length === 0) { + return 'empty_topic_list' + } + for (var i = 0; i < topics.length; i++) { + if (!validateTopic(topics[i])) { + return topics[i] + } + } + return null +} + +module.exports = { + validateTopics: validateTopics +} + + +/***/ }), + +/***/ "./node_modules/no-scroll/index.js": +/***/ (function(module, exports) { + +(function(root) { + var isOn = false; + var scrollbarSize; + var scrollTop; + + function getScrollbarSize() { + if (typeof scrollbarSize !== 'undefined') return scrollbarSize; + + var doc = document.documentElement; + var dummyScroller = document.createElement('div'); + dummyScroller.setAttribute('style', 'width:99px;height:99px;' + 'position:absolute;top:-9999px;overflow:scroll;'); + doc.appendChild(dummyScroller); + scrollbarSize = dummyScroller.offsetWidth - dummyScroller.clientWidth; + doc.removeChild(dummyScroller); + return scrollbarSize; + } + + function hasScrollbar() { + return document.documentElement.scrollHeight > window.innerHeight; + } + + function on(options) { + if (typeof document === 'undefined') return; + var doc = document.documentElement; + scrollTop = window.pageYOffset; + if (hasScrollbar()) { + doc.style.width = 'calc(100% - '+ getScrollbarSize() +'px)'; + } else { + doc.style.width = '100%'; + } + doc.style.position = 'fixed'; + doc.style.top = -scrollTop + 'px'; + doc.style.overflow = 'hidden'; + isOn = true; + } + + function off() { + if (typeof document === 'undefined') return; + var doc = document.documentElement; + doc.style.width = ''; + doc.style.position = ''; + doc.style.top = ''; + doc.style.overflow = ''; + window.scroll(0, scrollTop); + isOn = false; + } + + function toggle() { + if (isOn) { + off(); + return; + } + on(); + } + + var noScroll = { + on: on, + off: off, + toggle: toggle, + }; + + if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { + module.exports = noScroll; + } else { + root.noScroll = noScroll; + } +})(this); + + +/***/ }), + +/***/ "./node_modules/normalize-scroll-left/lib/main.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +// Based on https://github.com/react-bootstrap/dom-helpers/blob/master/src/util/inDOM.js +var inDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); +var cachedType; +function _setScrollType(type) { + cachedType = type; +} +exports._setScrollType = _setScrollType; +// Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type +function detectScrollType() { + if (cachedType) { + return cachedType; + } + if (!inDOM || !window.document.body) { + return 'indeterminate'; + } + var dummy = window.document.createElement('div'); + dummy.appendChild(document.createTextNode('ABCD')); + dummy.dir = 'rtl'; + dummy.style.fontSize = '14px'; + dummy.style.width = '4px'; + dummy.style.height = '1px'; + dummy.style.position = 'absolute'; + dummy.style.top = '-1000px'; + dummy.style.overflow = 'scroll'; + document.body.appendChild(dummy); + cachedType = 'reverse'; + if (dummy.scrollLeft > 0) { + cachedType = 'default'; + } + else { + dummy.scrollLeft = 1; + if (dummy.scrollLeft === 0) { + cachedType = 'negative'; + } + } + document.body.removeChild(dummy); + return cachedType; +} +exports.detectScrollType = detectScrollType; +// Based on https://stackoverflow.com/a/24394376 +function getNormalizedScrollLeft(element, direction) { + var scrollLeft = element.scrollLeft; + // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior + if (direction !== 'rtl') { + return scrollLeft; + } + var type = detectScrollType(); + if (type === 'indeterminate') { + return Number.NaN; + } + switch (type) { + case 'negative': + return element.scrollWidth - element.clientWidth + scrollLeft; + case 'reverse': + return element.scrollWidth - element.clientWidth - scrollLeft; + } + return scrollLeft; +} +exports.getNormalizedScrollLeft = getNormalizedScrollLeft; +function setNormalizedScrollLeft(element, scrollLeft, direction) { + // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior + if (direction !== 'rtl') { + element.scrollLeft = scrollLeft; + return; + } + var type = detectScrollType(); + if (type === 'indeterminate') { + return; + } + switch (type) { + case 'negative': + element.scrollLeft = element.clientWidth - element.scrollWidth + scrollLeft; + break; + case 'reverse': + element.scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft; + break; + default: + element.scrollLeft = scrollLeft; + break; + } +} +exports.setNormalizedScrollLeft = setNormalizedScrollLeft; + + +/***/ }), + +/***/ "./node_modules/once/once.js": +/***/ (function(module, exports, __webpack_require__) { + +var wrappy = __webpack_require__("./node_modules/wrappy/wrappy.js") +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} + + +/***/ }), + +/***/ "./node_modules/popper.js/dist/esm/popper.js": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* WEBPACK VAR INJECTION */(function(global) {/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.12.9 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; +var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; +var timeoutDuration = 0; +for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + timeoutDuration = 1; + break; + } +} + +function microtaskDebounce(fn) { + var called = false; + return function () { + if (called) { + return; + } + called = true; + window.Promise.resolve().then(function () { + called = false; + fn(); + }); + }; +} + +function taskDebounce(fn) { + var scheduled = false; + return function () { + if (!scheduled) { + scheduled = true; + setTimeout(function () { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; +} + +var supportsMicroTasks = isBrowser && window.Promise; + +/** +* Create a debounced version of a method, that's asynchronously deferred +* but called in the minimum time possible. +* +* @method +* @memberof Popper.Utils +* @argument {Function} fn +* @returns {Function} +*/ +var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; + +/** + * Check if the given variable is a function + * @method + * @memberof Popper.Utils + * @argument {Any} functionToCheck - variable to check + * @returns {Boolean} answer to: is a function? + */ +function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; +} + +/** + * Get CSS computed property of the given element + * @method + * @memberof Popper.Utils + * @argument {Eement} element + * @argument {String} property + */ +function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } + // NOTE: 1 DOM access here + var css = getComputedStyle(element, null); + return property ? css[property] : css; +} + +/** + * Returns the parentNode or the host of the element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} parent + */ +function getParentNode(element) { + if (element.nodeName === 'HTML') { + return element; + } + return element.parentNode || element.host; +} + +/** + * Returns the scrolling parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} scroll parent + */ +function getScrollParent(element) { + // Return body, `getScroll` will take care to get the correct `scrollTop` from it + if (!element) { + return document.body; + } + + switch (element.nodeName) { + case 'HTML': + case 'BODY': + return element.ownerDocument.body; + case '#document': + return element.body; + } + + // Firefox want us to check `-x` and `-y` variations as well + + var _getStyleComputedProp = getStyleComputedProperty(element), + overflow = _getStyleComputedProp.overflow, + overflowX = _getStyleComputedProp.overflowX, + overflowY = _getStyleComputedProp.overflowY; + + if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) { + return element; + } + + return getScrollParent(getParentNode(element)); +} + +/** + * Returns the offset parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} offset parent + */ +function getOffsetParent(element) { + // NOTE: 1 DOM access here + var offsetParent = element && element.offsetParent; + var nodeName = offsetParent && offsetParent.nodeName; + + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + if (element) { + return element.ownerDocument.documentElement; + } + + return document.documentElement; + } + + // .offsetParent will return the closest TD or TABLE in case + // no offsetParent is present, I hate this job... + if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { + return getOffsetParent(offsetParent); + } + + return offsetParent; +} + +function isOffsetContainer(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY') { + return false; + } + return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; +} + +/** + * Finds the root node (document, shadowDOM root) of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} node + * @returns {Element} root node + */ +function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + + return node; +} + +/** + * Finds the offset parent common to the two provided nodes + * @method + * @memberof Popper.Utils + * @argument {Element} element1 + * @argument {Element} element2 + * @returns {Element} common offset parent + */ +function findCommonOffsetParent(element1, element2) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } + + // Here we make sure to give as "start" the element that comes first in the DOM + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; + + // Get common ancestor container + var range = document.createRange(); + range.setStart(start, 0); + range.setEnd(end, 0); + var commonAncestorContainer = range.commonAncestorContainer; + + // Both nodes are inside #document + + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + + return getOffsetParent(commonAncestorContainer); + } + + // one of the nodes is inside shadowDOM, find which one + var element1root = getRoot(element1); + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } +} + +/** + * Gets the scroll value of the given element in the given side (top and left) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {String} side `top` or `left` + * @returns {number} amount of scrolled pixels + */ +function getScroll(element) { + var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + + var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + + return element[upperSide]; +} + +/* + * Sum or subtract the element scroll values (left and top) from a given rect object + * @method + * @memberof Popper.Utils + * @param {Object} rect - Rect object you want to change + * @param {HTMLElement} element - The element from the function reads the scroll values + * @param {Boolean} subtract - set to true if you want to subtract the scroll values + * @return {Object} rect - The modifier rect object + */ +function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop * modifier; + rect.bottom += scrollTop * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; +} + +/* + * Helper to detect borders of a given element + * @method + * @memberof Popper.Utils + * @param {CSSStyleDeclaration} styles + * Result of `getStyleComputedProperty` on the given element + * @param {String} axis - `x` or `y` + * @return {number} borders - The borders size of the given axis + */ + +function getBordersSize(styles, axis) { + var sideA = axis === 'x' ? 'Left' : 'Top'; + var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; + + return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); +} + +/** + * Tells if you are running Internet Explorer 10 + * @method + * @memberof Popper.Utils + * @returns {Boolean} isIE10 + */ +var isIE10 = undefined; + +var isIE10$1 = function () { + if (isIE10 === undefined) { + isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1; + } + return isIE10; +}; + +function getSize(axis, body, html, computedStyle) { + return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0); +} + +function getWindowSizes() { + var body = document.body; + var html = document.documentElement; + var computedStyle = isIE10$1() && getComputedStyle(html); + + return { + height: getSize('Height', body, html, computedStyle), + width: getSize('Width', body, html, computedStyle) + }; +} + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + + + + + +var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/** + * Given element offsets, generate an output similar to getBoundingClientRect + * @method + * @memberof Popper.Utils + * @argument {Object} offsets + * @returns {Object} ClientRect like output + */ +function getClientRect(offsets) { + return _extends({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); +} + +/** + * Get bounding client rect of given element + * @method + * @memberof Popper.Utils + * @param {HTMLElement} element + * @return {Object} client rect + */ +function getBoundingClientRect(element) { + var rect = {}; + + // IE10 10 FIX: Please, don't ask, the element isn't + // considered in DOM in some circumstances... + // This isn't reproducible in IE10 compatibility mode of IE11 + if (isIE10$1()) { + try { + rect = element.getBoundingClientRect(); + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + rect.top += scrollTop; + rect.left += scrollLeft; + rect.bottom += scrollTop; + rect.right += scrollLeft; + } catch (err) {} + } else { + rect = element.getBoundingClientRect(); + } + + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + + // subtract scrollbar size from sizes + var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {}; + var width = sizes.width || element.clientWidth || result.right - result.left; + var height = sizes.height || element.clientHeight || result.bottom - result.top; + + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height; + + // if an hypothetical scrollbar is detected, we must be sure it's not a `border` + // we make this check conditional for performance reasons + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, 'x'); + vertScrollbar -= getBordersSize(styles, 'y'); + + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + + return getClientRect(result); +} + +function getOffsetRectRelativeToArbitraryNode(children, parent) { + var isIE10 = isIE10$1(); + var isHTML = parent.nodeName === 'HTML'; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth, 10); + var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); + + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; + + // Subtract margins of documentElement in case it's being used as parent + // we do this only on HTML because it's the only element that behaves + // differently when margins are applied to it. The margins are included in + // the box of the documentElement, in the other cases not. + if (!isIE10 && isHTML) { + var marginTop = parseFloat(styles.marginTop, 10); + var marginLeft = parseFloat(styles.marginLeft, 10); + + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; + + // Attach marginTop and marginLeft because in some circumstances we may need them + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + + if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { + offsets = includeScroll(offsets, parent); + } + + return offsets; +} + +function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height = Math.max(html.clientHeight, window.innerHeight || 0); + + var scrollTop = getScroll(html); + var scrollLeft = getScroll(html, 'left'); + + var offset = { + top: scrollTop - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width: width, + height: height + }; + + return getClientRect(offset); +} + +/** + * Check if the given element is fixed or is inside a fixed parent + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {Element} customContainer + * @returns {Boolean} answer to "isFixed?" + */ +function isFixed(element) { + var nodeName = element.nodeName; + if (nodeName === 'BODY' || nodeName === 'HTML') { + return false; + } + if (getStyleComputedProperty(element, 'position') === 'fixed') { + return true; + } + return isFixed(getParentNode(element)); +} + +/** + * Computed the boundaries limits and return them + * @method + * @memberof Popper.Utils + * @param {HTMLElement} popper + * @param {HTMLElement} reference + * @param {number} padding + * @param {HTMLElement} boundariesElement - Element used to define the boundaries + * @returns {Object} Coordinates of the boundaries + */ +function getBoundaries(popper, reference, padding, boundariesElement) { + // NOTE: 1 DOM access here + var boundaries = { top: 0, left: 0 }; + var offsetParent = findCommonOffsetParent(popper, reference); + + // Handle viewport case + if (boundariesElement === 'viewport') { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent); + } else { + // Handle other cases based on DOM element used as boundaries + var boundariesNode = void 0; + if (boundariesElement === 'scrollParent') { + boundariesNode = getScrollParent(getParentNode(reference)); + if (boundariesNode.nodeName === 'BODY') { + boundariesNode = popper.ownerDocument.documentElement; + } + } else if (boundariesElement === 'window') { + boundariesNode = popper.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent); + + // In case of HTML, we need a different computation + if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(), + height = _getWindowSizes.height, + width = _getWindowSizes.width; + + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + // for all the other DOM elements, this one is good + boundaries = offsets; + } + } + + // Add paddings + boundaries.left += padding; + boundaries.top += padding; + boundaries.right -= padding; + boundaries.bottom -= padding; + + return boundaries; +} + +function getArea(_ref) { + var width = _ref.width, + height = _ref.height; + + return width * height; +} + +/** + * Utility used to transform the `auto` placement to the placement with more + * available space. + * @method + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + + if (placement.indexOf('auto') === -1) { + return placement; + } + + var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + + var sortedAreas = Object.keys(rects).map(function (key) { + return _extends({ + key: key + }, rects[key], { + area: getArea(rects[key]) + }); + }).sort(function (a, b) { + return b.area - a.area; + }); + + var filteredAreas = sortedAreas.filter(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + return width >= popper.clientWidth && height >= popper.clientHeight; + }); + + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + + var variation = placement.split('-')[1]; + + return computedPlacement + (variation ? '-' + variation : ''); +} + +/** + * Get offsets to the reference element + * @method + * @memberof Popper.Utils + * @param {Object} state + * @param {Element} popper - the popper element + * @param {Element} reference - the reference element (the popper will be relative to this) + * @returns {Object} An object containing the offsets which will be applied to the popper + */ +function getReferenceOffsets(state, popper, reference) { + var commonOffsetParent = findCommonOffsetParent(popper, reference); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent); +} + +/** + * Get the outer sizes of the given element (offset size + margins) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Object} object containing width and height properties + */ +function getOuterSizes(element) { + var styles = getComputedStyle(element); + var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom); + var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; +} + +/** + * Get the opposite placement of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement + * @returns {String} flipped placement + */ +function getOppositePlacement(placement) { + var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash[matched]; + }); +} + +/** + * Get offsets to the popper + * @method + * @memberof Popper.Utils + * @param {Object} position - CSS position the Popper will get applied + * @param {HTMLElement} popper - the popper element + * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) + * @param {String} placement - one of the valid placement options + * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper + */ +function getPopperOffsets(popper, referenceOffsets, placement) { + placement = placement.split('-')[0]; + + // Get popper node sizes + var popperRect = getOuterSizes(popper); + + // Add position, width and height to our offsets object + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; + + // depending by the popper placement we have to compute its offsets slightly differently + var isHoriz = ['right', 'left'].indexOf(placement) !== -1; + var mainSide = isHoriz ? 'top' : 'left'; + var secondarySide = isHoriz ? 'left' : 'top'; + var measurement = isHoriz ? 'height' : 'width'; + var secondaryMeasurement = !isHoriz ? 'height' : 'width'; + + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + + return popperOffsets; +} + +/** + * Mimics the `find` method of Array + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function find(arr, check) { + // use native find if supported + if (Array.prototype.find) { + return arr.find(check); + } + + // use `filter` to obtain the same behavior of `find` + return arr.filter(check)[0]; +} + +/** + * Return the index of the matching object + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function findIndex(arr, prop, value) { + // use native findIndex if supported + if (Array.prototype.findIndex) { + return arr.findIndex(function (cur) { + return cur[prop] === value; + }); + } + + // use `find` + `indexOf` if `findIndex` isn't supported + var match = find(arr, function (obj) { + return obj[prop] === value; + }); + return arr.indexOf(match); +} + +/** + * Loop trough the list of modifiers and run them in order, + * each of them will then edit the data object. + * @method + * @memberof Popper.Utils + * @param {dataObject} data + * @param {Array} modifiers + * @param {String} ends - Optional modifier name used as stopper + * @returns {dataObject} + */ +function runModifiers(modifiers, data, ends) { + var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + + modifiersToRun.forEach(function (modifier) { + if (modifier['function']) { + // eslint-disable-line dot-notation + console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); + } + var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation + if (modifier.enabled && isFunction(fn)) { + // Add properties to offsets to make them a complete clientRect object + // we do this before each modifier to make sure the previous one doesn't + // mess with these values + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + + data = fn(data, modifier); + } + }); + + return data; +} + +/** + * Updates the position of the popper, computing the new offsets and applying + * the new style.
+ * Prefer `scheduleUpdate` over `update` because of performance reasons. + * @method + * @memberof Popper + */ +function update() { + // if popper is destroyed, don't perform any further update + if (this.state.isDestroyed) { + return; + } + + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; + + // compute reference element offsets + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + + // store the computed placement inside `originalPlacement` + data.originalPlacement = data.placement; + + // compute the popper offsets + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + data.offsets.popper.position = 'absolute'; + + // run the modifiers + data = runModifiers(this.modifiers, data); + + // the first `update` will call `onCreate` callback + // the other ones will call `onUpdate` callback + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } +} + +/** + * Helper used to know if the given modifier is enabled. + * @method + * @memberof Popper.Utils + * @returns {Boolean} + */ +function isModifierEnabled(modifiers, modifierName) { + return modifiers.some(function (_ref) { + var name = _ref.name, + enabled = _ref.enabled; + return enabled && name === modifierName; + }); +} + +/** + * Get the prefixed supported property name + * @method + * @memberof Popper.Utils + * @argument {String} property (camelCase) + * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) + */ +function getSupportedPropertyName(property) { + var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + + for (var i = 0; i < prefixes.length - 1; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? '' + prefix + upperProp : property; + if (typeof document.body.style[toCheck] !== 'undefined') { + return toCheck; + } + } + return null; +} + +/** + * Destroy the popper + * @method + * @memberof Popper + */ +function destroy() { + this.state.isDestroyed = true; + + // touch DOM only if `applyStyle` modifier is enabled + if (isModifierEnabled(this.modifiers, 'applyStyle')) { + this.popper.removeAttribute('x-placement'); + this.popper.style.left = ''; + this.popper.style.position = ''; + this.popper.style.top = ''; + this.popper.style[getSupportedPropertyName('transform')] = ''; + } + + this.disableEventListeners(); + + // remove the popper if user explicity asked for the deletion on destroy + // do not use `remove` because IE11 doesn't support it + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + return this; +} + +/** + * Get the window associated with the element + * @argument {Element} element + * @returns {Window} + */ +function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; +} + +function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === 'BODY'; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { passive: true }); + + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + scrollParents.push(target); +} + +/** + * Setup needed event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function setupEventListeners(reference, options, state, updateBound) { + // Resize event listener on window + state.updateBound = updateBound; + getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); + + // Scroll event listener on scroll parents + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + + return state; +} + +/** + * It will add resize/scroll events and start recalculating + * position of the popper element when they are triggered. + * @method + * @memberof Popper + */ +function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } +} + +/** + * Remove event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function removeEventListeners(reference, state) { + // Remove resize event listener on window + getWindow(reference).removeEventListener('resize', state.updateBound); + + // Remove scroll event listener on scroll parents + state.scrollParents.forEach(function (target) { + target.removeEventListener('scroll', state.updateBound); + }); + + // Reset state + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; +} + +/** + * It will remove resize/scroll events and won't recalculate popper position + * when they are triggered. It also won't trigger onUpdate callback anymore, + * unless you call `update` method manually. + * @method + * @memberof Popper + */ +function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } +} + +/** + * Tells if a given input is a number + * @method + * @memberof Popper.Utils + * @param {*} input to check + * @return {Boolean} + */ +function isNumeric(n) { + return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); +} + +/** + * Set the style to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the style to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setStyles(element, styles) { + Object.keys(styles).forEach(function (prop) { + var unit = ''; + // add unit if the value is numeric and is one of the following + if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { + unit = 'px'; + } + element.style[prop] = styles[prop] + unit; + }); +} + +/** + * Set the attributes to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the attributes to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function (prop) { + var value = attributes[prop]; + if (value !== false) { + element.setAttribute(prop, attributes[prop]); + } else { + element.removeAttribute(prop); + } + }); +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} data.styles - List of style properties - values to apply to popper element + * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The same data object + */ +function applyStyle(data) { + // any property present in `data.styles` will be applied to the popper, + // in this way we can make the 3rd party modifiers add custom styles to it + // Be aware, modifiers could override the properties defined in the previous + // lines of this modifier! + setStyles(data.instance.popper, data.styles); + + // any property present in `data.attributes` will be applied to the popper, + // they will be set as HTML attributes of the element + setAttributes(data.instance.popper, data.attributes); + + // if arrowElement is defined and arrowStyles has some properties + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + + return data; +} + +/** + * Set the x-placement attribute before everything else because it could be used + * to add margins to the popper margins needs to be calculated to get the + * correct popper offsets. + * @method + * @memberof Popper.modifiers + * @param {HTMLElement} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper. + * @param {Object} options - Popper.js options + */ +function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { + // compute reference element offsets + var referenceOffsets = getReferenceOffsets(state, popper, reference); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + + popper.setAttribute('x-placement', placement); + + // Apply `position` to popper before anything else because + // without the position applied we can't guarantee correct computations + setStyles(popper, { position: 'absolute' }); + + return options; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeStyle(data, options) { + var x = options.x, + y = options.y; + var popper = data.offsets.popper; + + // Remove this legacy support in Popper.js v2 + + var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'applyStyle'; + }).gpuAcceleration; + if (legacyGpuAccelerationOption !== undefined) { + console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + } + var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; + + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); + + // Styles + var styles = { + position: popper.position + }; + + // floor sides to avoid blurry text + var offsets = { + left: Math.floor(popper.left), + top: Math.floor(popper.top), + bottom: Math.floor(popper.bottom), + right: Math.floor(popper.right) + }; + + var sideA = x === 'bottom' ? 'top' : 'bottom'; + var sideB = y === 'right' ? 'left' : 'right'; + + // if gpuAcceleration is set to `true` and transform is supported, + // we use `translate3d` to apply the position to the popper we + // automatically use the supported prefixed version if needed + var prefixedProperty = getSupportedPropertyName('transform'); + + // now, let's make a step back and look at this code closely (wtf?) + // If the content of the popper grows once it's been positioned, it + // may happen that the popper gets misplaced because of the new content + // overflowing its reference element + // To avoid this problem, we provide two options (x and y), which allow + // the consumer to define the offset origin. + // If we position a popper on top of a reference element, we can set + // `x` to `top` to make the popper grow towards its top instead of + // its bottom. + var left = void 0, + top = void 0; + if (sideA === 'bottom') { + top = -offsetParentRect.height + offsets.bottom; + } else { + top = offsets.top; + } + if (sideB === 'right') { + left = -offsetParentRect.width + offsets.right; + } else { + left = offsets.left; + } + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = 'transform'; + } else { + // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties + var invertTop = sideA === 'bottom' ? -1 : 1; + var invertLeft = sideB === 'right' ? -1 : 1; + styles[sideA] = top * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ', ' + sideB; + } + + // Attributes + var attributes = { + 'x-placement': data.placement + }; + + // Update `data` attributes, styles and arrowStyles + data.attributes = _extends({}, attributes, data.attributes); + data.styles = _extends({}, styles, data.styles); + data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); + + return data; +} + +/** + * Helper used to know if the given modifier depends from another one.
+ * It checks if the needed modifier is listed and enabled. + * @method + * @memberof Popper.Utils + * @param {Array} modifiers - list of modifiers + * @param {String} requestingName - name of requesting modifier + * @param {String} requestedName - name of requested modifier + * @returns {Boolean} + */ +function isModifierRequired(modifiers, requestingName, requestedName) { + var requesting = find(modifiers, function (_ref) { + var name = _ref.name; + return name === requestingName; + }); + + var isRequired = !!requesting && modifiers.some(function (modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + + if (!isRequired) { + var _requesting = '`' + requestingName + '`'; + var requested = '`' + requestedName + '`'; + console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + } + return isRequired; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function arrow(data, options) { + var _data$offsets$arrow; + + // arrow depends on keepTogether in order to work + if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { + return data; + } + + var arrowElement = options.element; + + // if arrowElement is a string, suppose it's a CSS selector + if (typeof arrowElement === 'string') { + arrowElement = data.instance.popper.querySelector(arrowElement); + + // if arrowElement is not found, don't run the modifier + if (!arrowElement) { + return data; + } + } else { + // if the arrowElement isn't a query selector we must check that the + // provided DOM node is child of its popper node + if (!data.instance.popper.contains(arrowElement)) { + console.warn('WARNING: `arrow.element` must be child of its popper element!'); + return data; + } + } + + var placement = data.placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isVertical = ['left', 'right'].indexOf(placement) !== -1; + + var len = isVertical ? 'height' : 'width'; + var sideCapitalized = isVertical ? 'Top' : 'Left'; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? 'left' : 'top'; + var opSide = isVertical ? 'bottom' : 'right'; + var arrowElementSize = getOuterSizes(arrowElement)[len]; + + // + // extends keepTogether behavior making sure the popper and its + // reference have enough pixels in conjuction + // + + // top/left side + if (reference[opSide] - arrowElementSize < popper[side]) { + data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); + } + // bottom/right side + if (reference[side] + arrowElementSize > popper[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + } + data.offsets.popper = getClientRect(data.offsets.popper); + + // compute center of the popper + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + + // Compute the sideValue using the updated popper offsets + // take popper margin in account because we don't have this info available + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; + + // prevent arrowElement from being placed not contiguously to its popper + sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + + return data; +} + +/** + * Get the opposite placement variation of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement variation + * @returns {String} flipped placement variation + */ +function getOppositeVariation(variation) { + if (variation === 'end') { + return 'start'; + } else if (variation === 'start') { + return 'end'; + } + return variation; +} + +/** + * List of accepted placements to use as values of the `placement` option.
+ * Valid placements are: + * - `auto` + * - `top` + * - `right` + * - `bottom` + * - `left` + * + * Each placement can have a variation from this list: + * - `-start` + * - `-end` + * + * Variations are interpreted easily if you think of them as the left to right + * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` + * is right.
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom. + * + * Some valid examples are: + * - `top-end` (on top of reference, right aligned) + * - `right-start` (on right of reference, top aligned) + * - `bottom` (on bottom, centered) + * - `auto-right` (on the side with more space available, alignment depends by placement) + * + * @static + * @type {Array} + * @enum {String} + * @readonly + * @method placements + * @memberof Popper + */ +var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; + +// Get rid of `auto` `auto-start` and `auto-end` +var validPlacements = placements.slice(3); + +/** + * Given an initial placement, returns all the subsequent placements + * clockwise (or counter-clockwise). + * + * @method + * @memberof Popper.Utils + * @argument {String} placement - A valid placement (it accepts variations) + * @argument {Boolean} counter - Set to true to walk the placements counterclockwise + * @returns {Array} placements including their variations + */ +function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var index = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); + return counter ? arr.reverse() : arr; +} + +var BEHAVIORS = { + FLIP: 'flip', + CLOCKWISE: 'clockwise', + COUNTERCLOCKWISE: 'counterclockwise' +}; + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function flip(data, options) { + // if `inner` modifier is enabled, we can't use the `flip` modifier + if (isModifierEnabled(data.instance.modifiers, 'inner')) { + return data; + } + + if (data.flipped && data.placement === data.originalPlacement) { + // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides + return data; + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement); + + var placement = data.placement.split('-')[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split('-')[1] || ''; + + var flipOrder = []; + + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + default: + flipOrder = options.behavior; + } + + flipOrder.forEach(function (step, index) { + if (placement !== step || flipOrder.length === index + 1) { + return data; + } + + placement = data.placement.split('-')[0]; + placementOpposite = getOppositePlacement(placement); + + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; + + // using floor because the reference offsets may contain decimals we are not going to consider here + var floor = Math.floor; + var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + + var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; + + // flip the variation if required + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + if (overlapsRef || overflowsBoundaries || flippedVariation) { + // this boolean to detect any flip loop + data.flipped = true; + + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index + 1]; + } + + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + + data.placement = placement + (variation ? '-' + variation : ''); + + // this object contains `position`, we want to preserve it along with + // any additional property we may add in the future + data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + + data = runModifiers(data.instance.modifiers, data, 'flip'); + } + }); + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function keepTogether(data) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var placement = data.placement.split('-')[0]; + var floor = Math.floor; + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var side = isVertical ? 'right' : 'bottom'; + var opSide = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + if (popper[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; + } + if (popper[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + + return data; +} + +/** + * Converts a string containing value + unit into a px value number + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} str - Value + unit string + * @argument {String} measurement - `height` or `width` + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @returns {Number|String} + * Value in pixels, or original string if no values were extracted + */ +function toValue(str, measurement, popperOffsets, referenceOffsets) { + // separate value from unit + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit = split[2]; + + // If it's not a number it's an operator, I guess + if (!value) { + return str; + } + + if (unit.indexOf('%') === 0) { + var element = void 0; + switch (unit) { + case '%p': + element = popperOffsets; + break; + case '%': + case '%r': + default: + element = referenceOffsets; + } + + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit === 'vh' || unit === 'vw') { + // if is a vh or vw, we calculate the size based on the viewport + var size = void 0; + if (unit === 'vh') { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + return size / 100 * value; + } else { + // if is an explicit pixel unit, we get rid of the unit and keep the value + // if is an implicit unit, it's px, and we return just the value + return value; + } +} + +/** + * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} offset + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @argument {String} basePlacement + * @returns {Array} a two cells array with x and y offsets in numbers + */ +function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; + + // Use height if placement is left or right and index is 0 otherwise use width + // in this way the first offset will use an axis and the second one + // will use the other one + var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; + + // Split the offset string to obtain a list of values and operands + // The regex addresses values with the plus or minus sign in front (+10, -20, etc) + var fragments = offset.split(/(\+|\-)/).map(function (frag) { + return frag.trim(); + }); + + // Detect if the offset string contains a pair of values or a single one + // they could be separated by comma or space + var divider = fragments.indexOf(find(fragments, function (frag) { + return frag.search(/,|\s/) !== -1; + })); + + if (fragments[divider] && fragments[divider].indexOf(',') === -1) { + console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); + } + + // If divider is found, we divide the list of values and operands to divide + // them by ofset X and Y. + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; + + // Convert the values with units to absolute pixels to allow our computations + ops = ops.map(function (op, index) { + // Most of the units rely on the orientation of the popper + var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; + var mergeWithPrevious = false; + return op + // This aggregates any `+` or `-` sign that aren't considered operators + // e.g.: 10 + +5 => [10, +, +5] + .reduce(function (a, b) { + if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []) + // Here we convert the string values into number values (in px) + .map(function (str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); + + // Loop trough the offsets arrays and execute the operations + ops.forEach(function (op, index) { + op.forEach(function (frag, index2) { + if (isNumeric(frag)) { + offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); + } + }); + }); + return offsets; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @argument {Number|String} options.offset=0 + * The offset value as described in the modifier description + * @returns {Object} The data object, properly modified + */ +function offset(data, _ref) { + var offset = _ref.offset; + var placement = data.placement, + _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var basePlacement = placement.split('-')[0]; + + var offsets = void 0; + if (isNumeric(+offset)) { + offsets = [+offset, 0]; + } else { + offsets = parseOffset(offset, popper, reference, basePlacement); + } + + if (basePlacement === 'left') { + popper.top += offsets[0]; + popper.left -= offsets[1]; + } else if (basePlacement === 'right') { + popper.top += offsets[0]; + popper.left += offsets[1]; + } else if (basePlacement === 'top') { + popper.left += offsets[0]; + popper.top -= offsets[1]; + } else if (basePlacement === 'bottom') { + popper.left += offsets[0]; + popper.top += offsets[1]; + } + + data.popper = popper; + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); + + // If offsetParent is the reference element, we really want to + // go one step up and use the next offsetParent as reference to + // avoid to make this modifier completely useless and look like broken + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement); + options.boundaries = boundaries; + + var order = options.priority; + var popper = data.offsets.popper; + + var check = { + primary: function primary(placement) { + var value = popper[placement]; + if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper[placement], boundaries[placement]); + } + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === 'right' ? 'left' : 'top'; + var value = popper[mainSide]; + if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + } + return defineProperty({}, mainSide, value); + } + }; + + order.forEach(function (placement) { + var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; + popper = _extends({}, popper, check[side](placement)); + }); + + data.offsets.popper = popper; + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function shift(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var shiftvariation = placement.split('-')[1]; + + // if shift shiftvariation is specified, run the modifier + if (shiftvariation) { + var _data$offsets = data.offsets, + reference = _data$offsets.reference, + popper = _data$offsets.popper; + + var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; + var side = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) + }; + + data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function hide(data) { + if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { + return data; + } + + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'preventOverflow'; + }).boundaries; + + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === true) { + return data; + } + + data.hide = true; + data.attributes['x-out-of-boundaries'] = ''; + } else { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === false) { + return data; + } + + data.hide = false; + data.attributes['x-out-of-boundaries'] = false; + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function inner(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; + + var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; + + popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); + + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper); + + return data; +} + +/** + * Modifier function, each modifier can have a function of this type assigned + * to its `fn` property.
+ * These functions will be called on each update, this means that you must + * make sure they are performant enough to avoid performance bottlenecks. + * + * @function ModifierFn + * @argument {dataObject} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {dataObject} The data object, properly modified + */ + +/** + * Modifiers are plugins used to alter the behavior of your poppers.
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities + * needed by the library. + * + * Usually you don't want to override the `order`, `fn` and `onLoad` props. + * All the other properties are configurations that could be tweaked. + * @namespace modifiers + */ +var modifiers = { + /** + * Modifier used to shift the popper on the start or end of its reference + * element.
+ * It will read the variation of the `placement` property.
+ * It can be one either `-end` or `-start`. + * @memberof modifiers + * @inner + */ + shift: { + /** @prop {number} order=100 - Index used to define the order of execution */ + order: 100, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: shift + }, + + /** + * The `offset` modifier can shift your popper on both its axis. + * + * It accepts the following units: + * - `px` or unitless, interpreted as pixels + * - `%` or `%r`, percentage relative to the length of the reference element + * - `%p`, percentage relative to the length of the popper element + * - `vw`, CSS viewport width unit + * - `vh`, CSS viewport height unit + * + * For length is intended the main axis relative to the placement of the popper.
+ * This means that if the placement is `top` or `bottom`, the length will be the + * `width`. In case of `left` or `right`, it will be the height. + * + * You can provide a single value (as `Number` or `String`), or a pair of values + * as `String` divided by a comma or one (or more) white spaces.
+ * The latter is a deprecated method because it leads to confusion and will be + * removed in v2.
+ * Additionally, it accepts additions and subtractions between different units. + * Note that multiplications and divisions aren't supported. + * + * Valid examples are: + * ``` + * 10 + * '10%' + * '10, 10' + * '10%, 10' + * '10 + 10%' + * '10 - 5vh + 3%' + * '-10px + 5vh, 5px - 6%' + * ``` + * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap + * > with their reference element, unfortunately, you will have to disable the `flip` modifier. + * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373) + * + * @memberof modifiers + * @inner + */ + offset: { + /** @prop {number} order=200 - Index used to define the order of execution */ + order: 200, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: offset, + /** @prop {Number|String} offset=0 + * The offset value as described in the modifier description + */ + offset: 0 + }, + + /** + * Modifier used to prevent the popper from being positioned outside the boundary. + * + * An scenario exists where the reference itself is not within the boundaries.
+ * We can say it has "escaped the boundaries" — or just "escaped".
+ * In this case we need to decide whether the popper should either: + * + * - detach from the reference and remain "trapped" in the boundaries, or + * - if it should ignore the boundary and "escape with its reference" + * + * When `escapeWithReference` is set to`true` and reference is completely + * outside its boundaries, the popper will overflow (or completely leave) + * the boundaries in order to remain attached to the edge of the reference. + * + * @memberof modifiers + * @inner + */ + preventOverflow: { + /** @prop {number} order=300 - Index used to define the order of execution */ + order: 300, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: preventOverflow, + /** + * @prop {Array} [priority=['left','right','top','bottom']] + * Popper will try to prevent overflow following these priorities by default, + * then, it could overflow on the left and on top of the `boundariesElement` + */ + priority: ['left', 'right', 'top', 'bottom'], + /** + * @prop {number} padding=5 + * Amount of pixel used to define a minimum distance between the boundaries + * and the popper this makes sure the popper has always a little padding + * between the edges of its container + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='scrollParent' + * Boundaries used by the modifier, can be `scrollParent`, `window`, + * `viewport` or any DOM element. + */ + boundariesElement: 'scrollParent' + }, + + /** + * Modifier used to make sure the reference and its popper stay near eachothers + * without leaving any gap between the two. Expecially useful when the arrow is + * enabled and you want to assure it to point to its reference element. + * It cares only about the first axis, you can still have poppers with margin + * between the popper and its reference element. + * @memberof modifiers + * @inner + */ + keepTogether: { + /** @prop {number} order=400 - Index used to define the order of execution */ + order: 400, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: keepTogether + }, + + /** + * This modifier is used to move the `arrowElement` of the popper to make + * sure it is positioned between the reference element and its popper element. + * It will read the outer size of the `arrowElement` node to detect how many + * pixels of conjuction are needed. + * + * It has no effect if no `arrowElement` is provided. + * @memberof modifiers + * @inner + */ + arrow: { + /** @prop {number} order=500 - Index used to define the order of execution */ + order: 500, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: arrow, + /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ + element: '[x-arrow]' + }, + + /** + * Modifier used to flip the popper's placement when it starts to overlap its + * reference element. + * + * Requires the `preventOverflow` modifier before it in order to work. + * + * **NOTE:** this modifier will interrupt the current update cycle and will + * restart it if it detects the need to flip the placement. + * @memberof modifiers + * @inner + */ + flip: { + /** @prop {number} order=600 - Index used to define the order of execution */ + order: 600, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: flip, + /** + * @prop {String|Array} behavior='flip' + * The behavior used to change the popper's placement. It can be one of + * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid + * placements (with optional variations). + */ + behavior: 'flip', + /** + * @prop {number} padding=5 + * The popper will flip if it hits the edges of the `boundariesElement` + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='viewport' + * The element which will define the boundaries of the popper position, + * the popper will never be placed outside of the defined boundaries + * (except if keepTogether is enabled) + */ + boundariesElement: 'viewport' + }, + + /** + * Modifier used to make the popper flow toward the inner of the reference element. + * By default, when this modifier is disabled, the popper will be placed outside + * the reference element. + * @memberof modifiers + * @inner + */ + inner: { + /** @prop {number} order=700 - Index used to define the order of execution */ + order: 700, + /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ + enabled: false, + /** @prop {ModifierFn} */ + fn: inner + }, + + /** + * Modifier used to hide the popper when its reference element is outside of the + * popper boundaries. It will set a `x-out-of-boundaries` attribute which can + * be used to hide with a CSS selector the popper when its reference is + * out of boundaries. + * + * Requires the `preventOverflow` modifier before it in order to work. + * @memberof modifiers + * @inner + */ + hide: { + /** @prop {number} order=800 - Index used to define the order of execution */ + order: 800, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: hide + }, + + /** + * Computes the style that will be applied to the popper element to gets + * properly positioned. + * + * Note that this modifier will not touch the DOM, it just prepares the styles + * so that `applyStyle` modifier can apply it. This separation is useful + * in case you need to replace `applyStyle` with a custom implementation. + * + * This modifier has `850` as `order` value to maintain backward compatibility + * with previous versions of Popper.js. Expect the modifiers ordering method + * to change in future major versions of the library. + * + * @memberof modifiers + * @inner + */ + computeStyle: { + /** @prop {number} order=850 - Index used to define the order of execution */ + order: 850, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: computeStyle, + /** + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3d transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties. + */ + gpuAcceleration: true, + /** + * @prop {string} [x='bottom'] + * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. + * Change this if your popper should grow in a direction different from `bottom` + */ + x: 'bottom', + /** + * @prop {string} [x='left'] + * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. + * Change this if your popper should grow in a direction different from `right` + */ + y: 'right' + }, + + /** + * Applies the computed styles to the popper element. + * + * All the DOM manipulations are limited to this modifier. This is useful in case + * you want to integrate Popper.js inside a framework or view library and you + * want to delegate all the DOM manipulations to it. + * + * Note that if you disable this modifier, you must make sure the popper element + * has its position set to `absolute` before Popper.js can do its work! + * + * Just disable this modifier and define you own to achieve the desired effect. + * + * @memberof modifiers + * @inner + */ + applyStyle: { + /** @prop {number} order=900 - Index used to define the order of execution */ + order: 900, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: applyStyle, + /** @prop {Function} */ + onLoad: applyStyleOnLoad, + /** + * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3d transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties. + */ + gpuAcceleration: undefined + } +}; + +/** + * The `dataObject` is an object containing all the informations used by Popper.js + * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks. + * @name dataObject + * @property {Object} data.instance The Popper.js instance + * @property {String} data.placement Placement applied to popper + * @property {String} data.originalPlacement Placement originally defined on init + * @property {Boolean} data.flipped True if popper has been flipped by flip modifier + * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper. + * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier + * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.boundaries Offsets of the popper boundaries + * @property {Object} data.offsets The measurements of popper, reference and arrow elements. + * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 + */ + +/** + * Default options provided to Popper.js constructor.
+ * These can be overriden using the `options` argument of Popper.js.
+ * To override an option, simply pass as 3rd argument an object with the same + * structure of this object, example: + * ``` + * new Popper(ref, pop, { + * modifiers: { + * preventOverflow: { enabled: false } + * } + * }) + * ``` + * @type {Object} + * @static + * @memberof Popper + */ +var Defaults = { + /** + * Popper's placement + * @prop {Popper.placements} placement='bottom' + */ + placement: 'bottom', + + /** + * Whether events (resize, scroll) are initially enabled + * @prop {Boolean} eventsEnabled=true + */ + eventsEnabled: true, + + /** + * Set to true if you want to automatically remove the popper when + * you call the `destroy` method. + * @prop {Boolean} removeOnDestroy=false + */ + removeOnDestroy: false, + + /** + * Callback called when the popper is created.
+ * By default, is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onCreate} + */ + onCreate: function onCreate() {}, + + /** + * Callback called when the popper is updated, this callback is not called + * on the initialization/creation of the popper, but only on subsequent + * updates.
+ * By default, is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onUpdate} + */ + onUpdate: function onUpdate() {}, + + /** + * List of modifiers used to modify the offsets before they are applied to the popper. + * They provide most of the functionalities of Popper.js + * @prop {modifiers} + */ + modifiers: modifiers +}; + +/** + * @callback onCreate + * @param {dataObject} data + */ + +/** + * @callback onUpdate + * @param {dataObject} data + */ + +// Utils +// Methods +var Popper = function () { + /** + * Create a new Popper.js instance + * @class Popper + * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper. + * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) + * @return {Object} instance - The generated Popper.js instance + */ + function Popper(reference, popper) { + var _this = this; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + classCallCheck(this, Popper); + + this.scheduleUpdate = function () { + return requestAnimationFrame(_this.update); + }; + + // make update() debounced, so that it only runs at most once-per-tick + this.update = debounce(this.update.bind(this)); + + // with {} we create a new object with the options inside it + this.options = _extends({}, Popper.Defaults, options); + + // init state + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; + + // get reference and popper elements (allow jQuery wrappers) + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper && popper.jquery ? popper[0] : popper; + + // Deep merge modifiers options + this.options.modifiers = {}; + Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { + _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); + }); + + // Refactoring modifiers' list (Object => Array) + this.modifiers = Object.keys(this.options.modifiers).map(function (name) { + return _extends({ + name: name + }, _this.options.modifiers[name]); + }) + // sort the modifiers by order + .sort(function (a, b) { + return a.order - b.order; + }); + + // modifiers have the ability to execute arbitrary code when Popper.js get inited + // such code is executed in the same order of its modifier + // they could add new properties to their options configuration + // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! + this.modifiers.forEach(function (modifierOptions) { + if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); + + // fire the first update to position the popper in the right place + this.update(); + + var eventsEnabled = this.options.eventsEnabled; + if (eventsEnabled) { + // setup event listeners, they will take care of update the position in specific situations + this.enableEventListeners(); + } + + this.state.eventsEnabled = eventsEnabled; + } + + // We can't use class properties because they don't get listed in the + // class prototype and break stuff like Sinon stubs + + + createClass(Popper, [{ + key: 'update', + value: function update$$1() { + return update.call(this); + } + }, { + key: 'destroy', + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: 'enableEventListeners', + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: 'disableEventListeners', + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + + /** + * Schedule an update, it will run on the next UI update available + * @method scheduleUpdate + * @memberof Popper + */ + + + /** + * Collection of utilities useful when writing custom modifiers. + * Starting from version 1.7, this method is available only if you + * include `popper-utils.js` before `popper.js`. + * + * **DEPRECATION**: This way to access PopperUtils is deprecated + * and will be removed in v2! Use the PopperUtils module directly instead. + * Due to the high instability of the methods contained in Utils, we can't + * guarantee them to follow semver. Use them at your own risk! + * @static + * @private + * @type {Object} + * @deprecated since version 1.8 + * @member Utils + * @memberof Popper + */ + + }]); + return Popper; +}(); + +/** + * The `referenceObject` is an object that provides an interface compatible with Popper.js + * and lets you use it as replacement of a real DOM node.
+ * You can use this method to position a popper relatively to a set of coordinates + * in case you don't have a DOM node to use as reference. + * + * ``` + * new Popper(referenceObject, popperNode); + * ``` + * + * NB: This feature isn't supported in Internet Explorer 10 + * @name referenceObject + * @property {Function} data.getBoundingClientRect + * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. + * @property {number} data.clientWidth + * An ES6 getter that will return the width of the virtual reference element. + * @property {number} data.clientHeight + * An ES6 getter that will return the height of the virtual reference element. + */ + + +Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; +Popper.placements = placements; +Popper.Defaults = Defaults; + +/* harmony default export */ __webpack_exports__["default"] = (Popper); +//# sourceMappingURL=popper.js.map + +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/process-nextick-args/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +if (!process.version || + process.version.indexOf('v0.') === 0 || + process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { + module.exports = { nextTick: nextTick }; +} else { + module.exports = process +} + +function nextTick(fn, arg1, arg2, arg3) { + if (typeof fn !== 'function') { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process.nextTick(fn); + case 2: + return process.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process.nextTick(function afterTick() { + fn.apply(null, args); + }); + } +} + + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/punycode/punycode.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */ +;(function(root) { + + /** Detect free variables */ + var freeExports = typeof exports == 'object' && exports && + !exports.nodeType && exports; + var freeModule = typeof module == 'object' && module && + !module.nodeType && module; + var freeGlobal = typeof global == 'object' && global; + if ( + freeGlobal.global === freeGlobal || + freeGlobal.window === freeGlobal || + freeGlobal.self === freeGlobal + ) { + root = freeGlobal; + } + + /** + * The `punycode` object. + * @name punycode + * @type Object + */ + var punycode, + + /** Highest positive signed 32-bit float value */ + maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + + /** Bootstring parameters */ + base = 36, + tMin = 1, + tMax = 26, + skew = 38, + damp = 700, + initialBias = 72, + initialN = 128, // 0x80 + delimiter = '-', // '\x2D' + + /** Regular expressions */ + regexPunycode = /^xn--/, + regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars + regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators + + /** Error messages */ + errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw new RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + var result = []; + while (length--) { + result[length] = fn(array[length]); + } + return result; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + var parts = string.split('@'); + var result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + var labels = string.split('.'); + var encoded = map(labels, fn).join('.'); + return result + encoded; + } + + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ + function toASCII(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.4.1', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + true + ) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return punycode; + }.call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (freeExports && freeModule) { + if (module.exports == freeExports) { + // in Node.js, io.js, or RingoJS v0.8.0+ + freeModule.exports = punycode; + } else { + // in Narwhal or RingoJS v0.7.0- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else { + // in Rhino or a web browser + root.punycode = punycode; + } + +}(this)); + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/module.js")(module), __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/querystring-es3/decode.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +// If obj.hasOwnProperty has been overridden, then calling +// obj.hasOwnProperty(prop) will break. +// See: https://github.com/joyent/node/issues/1707 +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +module.exports = function(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + // maxKeys <= 0 means that we should not limit keys count + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty(obj, k)) { + obj[k] = v; + } else if (isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + + +/***/ }), + +/***/ "./node_modules/querystring-es3/encode.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +var stringifyPrimitive = function(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +}; + +module.exports = function(obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return map(objectKeys(obj), function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (isArray(obj[k])) { + return map(obj[k], function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +function map (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f(xs[i], i)); + } + return res; +} + +var objectKeys = Object.keys || function (obj) { + var res = []; + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); + } + return res; +}; + + +/***/ }), + +/***/ "./node_modules/querystring-es3/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.decode = exports.parse = __webpack_require__("./node_modules/querystring-es3/decode.js"); +exports.encode = exports.stringify = __webpack_require__("./node_modules/querystring-es3/encode.js"); + + +/***/ }), + +/***/ "./node_modules/rafl/index.js": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("./node_modules/global/window.js") + +/** + * `requestAnimationFrame()` + */ + +var request = global.requestAnimationFrame + || global.webkitRequestAnimationFrame + || global.mozRequestAnimationFrame + || fallback + +var prev = +new Date +function fallback (fn) { + var curr = +new Date + var ms = Math.max(0, 16 - (curr - prev)) + var req = setTimeout(fn, ms) + return prev = curr, req +} + +/** + * `cancelAnimationFrame()` + */ + +var cancel = global.cancelAnimationFrame + || global.webkitCancelAnimationFrame + || global.mozCancelAnimationFrame + || clearTimeout + +if (Function.prototype.bind) { + request = request.bind(global) + cancel = cancel.bind(global) +} + +exports = module.exports = request +exports.cancel = cancel + + +/***/ }), + +/***/ "./node_modules/raven-js/src/configError.js": +/***/ (function(module, exports) { + +function RavenConfigError(message) { + this.name = 'RavenConfigError'; + this.message = message; +} +RavenConfigError.prototype = new Error(); +RavenConfigError.prototype.constructor = RavenConfigError; + +module.exports = RavenConfigError; + + +/***/ }), + +/***/ "./node_modules/raven-js/src/console.js": +/***/ (function(module, exports, __webpack_require__) { + +var utils = __webpack_require__("./node_modules/raven-js/src/utils.js"); + +var wrapMethod = function(console, level, callback) { + var originalConsoleLevel = console[level]; + var originalConsole = console; + + if (!(level in console)) { + return; + } + + var sentryLevel = level === 'warn' ? 'warning' : level; + + console[level] = function() { + var args = [].slice.call(arguments); + + var msg = utils.safeJoin(args, ' '); + var data = {level: sentryLevel, logger: 'console', extra: {arguments: args}}; + + if (level === 'assert') { + if (args[0] === false) { + // Default browsers message + msg = + 'Assertion failed: ' + (utils.safeJoin(args.slice(1), ' ') || 'console.assert'); + data.extra.arguments = args.slice(1); + callback && callback(msg, data); + } + } else { + callback && callback(msg, data); + } + + // this fails for some browsers. :( + if (originalConsoleLevel) { + // IE9 doesn't allow calling apply on console functions directly + // See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193 + Function.prototype.apply.call(originalConsoleLevel, originalConsole, args); + } + }; +}; + +module.exports = { + wrapMethod: wrapMethod +}; + + +/***/ }), + +/***/ "./node_modules/raven-js/src/raven.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/*global XDomainRequest:false */ + +var TraceKit = __webpack_require__("./node_modules/raven-js/vendor/TraceKit/tracekit.js"); +var stringify = __webpack_require__("./node_modules/raven-js/vendor/json-stringify-safe/stringify.js"); +var RavenConfigError = __webpack_require__("./node_modules/raven-js/src/configError.js"); + +var utils = __webpack_require__("./node_modules/raven-js/src/utils.js"); +var isError = utils.isError; +var isObject = utils.isObject; +var isErrorEvent = utils.isErrorEvent; +var isUndefined = utils.isUndefined; +var isFunction = utils.isFunction; +var isString = utils.isString; +var isArray = utils.isArray; +var isEmptyObject = utils.isEmptyObject; +var each = utils.each; +var objectMerge = utils.objectMerge; +var truncate = utils.truncate; +var objectFrozen = utils.objectFrozen; +var hasKey = utils.hasKey; +var joinRegExp = utils.joinRegExp; +var urlencode = utils.urlencode; +var uuid4 = utils.uuid4; +var htmlTreeAsString = utils.htmlTreeAsString; +var isSameException = utils.isSameException; +var isSameStacktrace = utils.isSameStacktrace; +var parseUrl = utils.parseUrl; +var fill = utils.fill; +var supportsFetch = utils.supportsFetch; + +var wrapConsoleMethod = __webpack_require__("./node_modules/raven-js/src/console.js").wrapMethod; + +var dsnKeys = 'source protocol user pass host port path'.split(' '), + dsnPattern = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/; + +function now() { + return +new Date(); +} + +// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) +var _window = + typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; +var _document = _window.document; +var _navigator = _window.navigator; + +function keepOriginalCallback(original, callback) { + return isFunction(callback) + ? function(data) { + return callback(data, original); + } + : callback; +} + +// First, check for JSON support +// If there is no JSON, we no-op the core features of Raven +// since JSON is required to encode the payload +function Raven() { + this._hasJSON = !!(typeof JSON === 'object' && JSON.stringify); + // Raven can run in contexts where there's no document (react-native) + this._hasDocument = !isUndefined(_document); + this._hasNavigator = !isUndefined(_navigator); + this._lastCapturedException = null; + this._lastData = null; + this._lastEventId = null; + this._globalServer = null; + this._globalKey = null; + this._globalProject = null; + this._globalContext = {}; + this._globalOptions = { + // SENTRY_RELEASE can be injected by https://github.com/getsentry/sentry-webpack-plugin + release: _window.SENTRY_RELEASE && _window.SENTRY_RELEASE.id, + logger: 'javascript', + ignoreErrors: [], + ignoreUrls: [], + whitelistUrls: [], + includePaths: [], + headers: null, + collectWindowErrors: true, + maxMessageLength: 0, + + // By default, truncates URL values to 250 chars + maxUrlLength: 250, + stackTraceLimit: 50, + autoBreadcrumbs: true, + instrument: true, + sampleRate: 1 + }; + this._fetchDefaults = { + method: 'POST', + keepalive: true, + referrerPolicy: 'origin' + }; + this._ignoreOnError = 0; + this._isRavenInstalled = false; + this._originalErrorStackTraceLimit = Error.stackTraceLimit; + // capture references to window.console *and* all its methods first + // before the console plugin has a chance to monkey patch + this._originalConsole = _window.console || {}; + this._originalConsoleMethods = {}; + this._plugins = []; + this._startTime = now(); + this._wrappedBuiltIns = []; + this._breadcrumbs = []; + this._lastCapturedEvent = null; + this._keypressTimeout; + this._location = _window.location; + this._lastHref = this._location && this._location.href; + this._resetBackoff(); + + // eslint-disable-next-line guard-for-in + for (var method in this._originalConsole) { + this._originalConsoleMethods[method] = this._originalConsole[method]; + } +} + +/* + * The core Raven singleton + * + * @this {Raven} + */ + +Raven.prototype = { + // Hardcode version string so that raven source can be loaded directly via + // webpack (using a build step causes webpack #1617). Grunt verifies that + // this value matches package.json during build. + // See: https://github.com/getsentry/raven-js/issues/465 + VERSION: '3.22.3', + + debug: false, + + TraceKit: TraceKit, // alias to TraceKit + + /* + * Configure Raven with a DSN and extra options + * + * @param {string} dsn The public Sentry DSN + * @param {object} options Set of global options [optional] + * @return {Raven} + */ + config: function(dsn, options) { + var self = this; + + if (self._globalServer) { + this._logDebug('error', 'Error: Raven has already been configured'); + return self; + } + if (!dsn) return self; + + var globalOptions = self._globalOptions; + + // merge in options + if (options) { + each(options, function(key, value) { + // tags and extra are special and need to be put into context + if (key === 'tags' || key === 'extra' || key === 'user') { + self._globalContext[key] = value; + } else { + globalOptions[key] = value; + } + }); + } + + self.setDSN(dsn); + + // "Script error." is hard coded into browsers for errors that it can't read. + // this is the result of a script being pulled in from an external domain and CORS. + globalOptions.ignoreErrors.push(/^Script error\.?$/); + globalOptions.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/); + + // join regexp rules into one big rule + globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors); + globalOptions.ignoreUrls = globalOptions.ignoreUrls.length + ? joinRegExp(globalOptions.ignoreUrls) + : false; + globalOptions.whitelistUrls = globalOptions.whitelistUrls.length + ? joinRegExp(globalOptions.whitelistUrls) + : false; + globalOptions.includePaths = joinRegExp(globalOptions.includePaths); + globalOptions.maxBreadcrumbs = Math.max( + 0, + Math.min(globalOptions.maxBreadcrumbs || 100, 100) + ); // default and hard limit is 100 + + var autoBreadcrumbDefaults = { + xhr: true, + console: true, + dom: true, + location: true, + sentry: true + }; + + var autoBreadcrumbs = globalOptions.autoBreadcrumbs; + if ({}.toString.call(autoBreadcrumbs) === '[object Object]') { + autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs); + } else if (autoBreadcrumbs !== false) { + autoBreadcrumbs = autoBreadcrumbDefaults; + } + globalOptions.autoBreadcrumbs = autoBreadcrumbs; + + var instrumentDefaults = { + tryCatch: true + }; + + var instrument = globalOptions.instrument; + if ({}.toString.call(instrument) === '[object Object]') { + instrument = objectMerge(instrumentDefaults, instrument); + } else if (instrument !== false) { + instrument = instrumentDefaults; + } + globalOptions.instrument = instrument; + + TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors; + + // return for chaining + return self; + }, + + /* + * Installs a global window.onerror error handler + * to capture and report uncaught exceptions. + * At this point, install() is required to be called due + * to the way TraceKit is set up. + * + * @return {Raven} + */ + install: function() { + var self = this; + if (self.isSetup() && !self._isRavenInstalled) { + TraceKit.report.subscribe(function() { + self._handleOnErrorStackInfo.apply(self, arguments); + }); + + self._patchFunctionToString(); + + if (self._globalOptions.instrument && self._globalOptions.instrument.tryCatch) { + self._instrumentTryCatch(); + } + + if (self._globalOptions.autoBreadcrumbs) self._instrumentBreadcrumbs(); + + // Install all of the plugins + self._drainPlugins(); + + self._isRavenInstalled = true; + } + + Error.stackTraceLimit = self._globalOptions.stackTraceLimit; + return this; + }, + + /* + * Set the DSN (can be called multiple time unlike config) + * + * @param {string} dsn The public Sentry DSN + */ + setDSN: function(dsn) { + var self = this, + uri = self._parseDSN(dsn), + lastSlash = uri.path.lastIndexOf('/'), + path = uri.path.substr(1, lastSlash); + + self._dsn = dsn; + self._globalKey = uri.user; + self._globalSecret = uri.pass && uri.pass.substr(1); + self._globalProject = uri.path.substr(lastSlash + 1); + + self._globalServer = self._getGlobalServer(uri); + + self._globalEndpoint = + self._globalServer + '/' + path + 'api/' + self._globalProject + '/store/'; + + // Reset backoff state since we may be pointing at a + // new project/server + this._resetBackoff(); + }, + + /* + * Wrap code within a context so Raven can capture errors + * reliably across domains that is executed immediately. + * + * @param {object} options A specific set of options for this context [optional] + * @param {function} func The callback to be immediately executed within the context + * @param {array} args An array of arguments to be called with the callback [optional] + */ + context: function(options, func, args) { + if (isFunction(options)) { + args = func || []; + func = options; + options = undefined; + } + + return this.wrap(options, func).apply(this, args); + }, + + /* + * Wrap code within a context and returns back a new function to be executed + * + * @param {object} options A specific set of options for this context [optional] + * @param {function} func The function to be wrapped in a new context + * @param {function} func A function to call before the try/catch wrapper [optional, private] + * @return {function} The newly wrapped functions with a context + */ + wrap: function(options, func, _before) { + var self = this; + // 1 argument has been passed, and it's not a function + // so just return it + if (isUndefined(func) && !isFunction(options)) { + return options; + } + + // options is optional + if (isFunction(options)) { + func = options; + options = undefined; + } + + // At this point, we've passed along 2 arguments, and the second one + // is not a function either, so we'll just return the second argument. + if (!isFunction(func)) { + return func; + } + + // We don't wanna wrap it twice! + try { + if (func.__raven__) { + return func; + } + + // If this has already been wrapped in the past, return that + if (func.__raven_wrapper__) { + return func.__raven_wrapper__; + } + } catch (e) { + // Just accessing custom props in some Selenium environments + // can cause a "Permission denied" exception (see raven-js#495). + // Bail on wrapping and return the function as-is (defers to window.onerror). + return func; + } + + function wrapped() { + var args = [], + i = arguments.length, + deep = !options || (options && options.deep !== false); + + if (_before && isFunction(_before)) { + _before.apply(this, arguments); + } + + // Recursively wrap all of a function's arguments that are + // functions themselves. + while (i--) args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i]; + + try { + // Attempt to invoke user-land function + // NOTE: If you are a Sentry user, and you are seeing this stack frame, it + // means Raven caught an error invoking your application code. This is + // expected behavior and NOT indicative of a bug with Raven.js. + return func.apply(this, args); + } catch (e) { + self._ignoreNextOnError(); + self.captureException(e, options); + throw e; + } + } + + // copy over properties of the old function + for (var property in func) { + if (hasKey(func, property)) { + wrapped[property] = func[property]; + } + } + wrapped.prototype = func.prototype; + + func.__raven_wrapper__ = wrapped; + // Signal that this function has been wrapped/filled already + // for both debugging and to prevent it to being wrapped/filled twice + wrapped.__raven__ = true; + wrapped.__orig__ = func; + + return wrapped; + }, + + /* + * Uninstalls the global error handler. + * + * @return {Raven} + */ + uninstall: function() { + TraceKit.report.uninstall(); + + this._unpatchFunctionToString(); + this._restoreBuiltIns(); + this._restoreConsole(); + + Error.stackTraceLimit = this._originalErrorStackTraceLimit; + this._isRavenInstalled = false; + + return this; + }, + + /* + * Manually capture an exception and send it over to Sentry + * + * @param {error} ex An exception to be logged + * @param {object} options A specific set of options for this error [optional] + * @return {Raven} + */ + captureException: function(ex, options) { + options = objectMerge({trimHeadFrames: 0}, options ? options : {}); + // Cases for sending ex as a message, rather than an exception + var isNotError = !isError(ex); + var isNotErrorEvent = !isErrorEvent(ex); + var isErrorEventWithoutError = isErrorEvent(ex) && !ex.error; + + if ((isNotError && isNotErrorEvent) || isErrorEventWithoutError) { + return this.captureMessage( + ex, + objectMerge(options, { + stacktrace: true, // if we fall back to captureMessage, default to attempting a new trace + trimHeadFrames: options.trimHeadFrames + 1 + }) + ); + } + + // Get actual Error from ErrorEvent + if (isErrorEvent(ex)) ex = ex.error; + + // Store the raw exception object for potential debugging and introspection + this._lastCapturedException = ex; + + // TraceKit.report will re-raise any exception passed to it, + // which means you have to wrap it in try/catch. Instead, we + // can wrap it here and only re-raise if TraceKit.report + // raises an exception different from the one we asked to + // report on. + try { + var stack = TraceKit.computeStackTrace(ex); + this._handleStackInfo(stack, options); + } catch (ex1) { + if (ex !== ex1) { + throw ex1; + } + } + + return this; + }, + + /* + * Manually send a message to Sentry + * + * @param {string} msg A plain message to be captured in Sentry + * @param {object} options A specific set of options for this message [optional] + * @return {Raven} + */ + captureMessage: function(msg, options) { + // config() automagically converts ignoreErrors from a list to a RegExp so we need to test for an + // early call; we'll error on the side of logging anything called before configuration since it's + // probably something you should see: + if ( + !!this._globalOptions.ignoreErrors.test && + this._globalOptions.ignoreErrors.test(msg) + ) { + return; + } + + options = options || {}; + + var data = objectMerge( + { + message: msg + '' // Make sure it's actually a string + }, + options + ); + + var ex; + // Generate a "synthetic" stack trace from this point. + // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative + // of a bug with Raven.js. Sentry generates synthetic traces either by configuration, + // or if it catches a thrown object without a "stack" property. + try { + throw new Error(msg); + } catch (ex1) { + ex = ex1; + } + + // null exception name so `Error` isn't prefixed to msg + ex.name = null; + var stack = TraceKit.computeStackTrace(ex); + + // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1] + var initialCall = isArray(stack.stack) && stack.stack[1]; + var fileurl = (initialCall && initialCall.url) || ''; + + if ( + !!this._globalOptions.ignoreUrls.test && + this._globalOptions.ignoreUrls.test(fileurl) + ) { + return; + } + + if ( + !!this._globalOptions.whitelistUrls.test && + !this._globalOptions.whitelistUrls.test(fileurl) + ) { + return; + } + + if (this._globalOptions.stacktrace || (options && options.stacktrace)) { + options = objectMerge( + { + // fingerprint on msg, not stack trace (legacy behavior, could be + // revisited) + fingerprint: msg, + // since we know this is a synthetic trace, the top N-most frames + // MUST be from Raven.js, so mark them as in_app later by setting + // trimHeadFrames + trimHeadFrames: (options.trimHeadFrames || 0) + 1 + }, + options + ); + + var frames = this._prepareFrames(stack, options); + data.stacktrace = { + // Sentry expects frames oldest to newest + frames: frames.reverse() + }; + } + + // Fire away! + this._send(data); + + return this; + }, + + captureBreadcrumb: function(obj) { + var crumb = objectMerge( + { + timestamp: now() / 1000 + }, + obj + ); + + if (isFunction(this._globalOptions.breadcrumbCallback)) { + var result = this._globalOptions.breadcrumbCallback(crumb); + + if (isObject(result) && !isEmptyObject(result)) { + crumb = result; + } else if (result === false) { + return this; + } + } + + this._breadcrumbs.push(crumb); + if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) { + this._breadcrumbs.shift(); + } + return this; + }, + + addPlugin: function(plugin /*arg1, arg2, ... argN*/) { + var pluginArgs = [].slice.call(arguments, 1); + + this._plugins.push([plugin, pluginArgs]); + if (this._isRavenInstalled) { + this._drainPlugins(); + } + + return this; + }, + + /* + * Set/clear a user to be sent along with the payload. + * + * @param {object} user An object representing user data [optional] + * @return {Raven} + */ + setUserContext: function(user) { + // Intentionally do not merge here since that's an unexpected behavior. + this._globalContext.user = user; + + return this; + }, + + /* + * Merge extra attributes to be sent along with the payload. + * + * @param {object} extra An object representing extra data [optional] + * @return {Raven} + */ + setExtraContext: function(extra) { + this._mergeContext('extra', extra); + + return this; + }, + + /* + * Merge tags to be sent along with the payload. + * + * @param {object} tags An object representing tags [optional] + * @return {Raven} + */ + setTagsContext: function(tags) { + this._mergeContext('tags', tags); + + return this; + }, + + /* + * Clear all of the context. + * + * @return {Raven} + */ + clearContext: function() { + this._globalContext = {}; + + return this; + }, + + /* + * Get a copy of the current context. This cannot be mutated. + * + * @return {object} copy of context + */ + getContext: function() { + // lol javascript + return JSON.parse(stringify(this._globalContext)); + }, + + /* + * Set environment of application + * + * @param {string} environment Typically something like 'production'. + * @return {Raven} + */ + setEnvironment: function(environment) { + this._globalOptions.environment = environment; + + return this; + }, + + /* + * Set release version of application + * + * @param {string} release Typically something like a git SHA to identify version + * @return {Raven} + */ + setRelease: function(release) { + this._globalOptions.release = release; + + return this; + }, + + /* + * Set the dataCallback option + * + * @param {function} callback The callback to run which allows the + * data blob to be mutated before sending + * @return {Raven} + */ + setDataCallback: function(callback) { + var original = this._globalOptions.dataCallback; + this._globalOptions.dataCallback = keepOriginalCallback(original, callback); + return this; + }, + + /* + * Set the breadcrumbCallback option + * + * @param {function} callback The callback to run which allows filtering + * or mutating breadcrumbs + * @return {Raven} + */ + setBreadcrumbCallback: function(callback) { + var original = this._globalOptions.breadcrumbCallback; + this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback); + return this; + }, + + /* + * Set the shouldSendCallback option + * + * @param {function} callback The callback to run which allows + * introspecting the blob before sending + * @return {Raven} + */ + setShouldSendCallback: function(callback) { + var original = this._globalOptions.shouldSendCallback; + this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback); + return this; + }, + + /** + * Override the default HTTP transport mechanism that transmits data + * to the Sentry server. + * + * @param {function} transport Function invoked instead of the default + * `makeRequest` handler. + * + * @return {Raven} + */ + setTransport: function(transport) { + this._globalOptions.transport = transport; + + return this; + }, + + /* + * Get the latest raw exception that was captured by Raven. + * + * @return {error} + */ + lastException: function() { + return this._lastCapturedException; + }, + + /* + * Get the last event id + * + * @return {string} + */ + lastEventId: function() { + return this._lastEventId; + }, + + /* + * Determine if Raven is setup and ready to go. + * + * @return {boolean} + */ + isSetup: function() { + if (!this._hasJSON) return false; // needs JSON support + if (!this._globalServer) { + if (!this.ravenNotConfiguredError) { + this.ravenNotConfiguredError = true; + this._logDebug('error', 'Error: Raven has not been configured.'); + } + return false; + } + return true; + }, + + afterLoad: function() { + // TODO: remove window dependence? + + // Attempt to initialize Raven on load + var RavenConfig = _window.RavenConfig; + if (RavenConfig) { + this.config(RavenConfig.dsn, RavenConfig.config).install(); + } + }, + + showReportDialog: function(options) { + if ( + !_document // doesn't work without a document (React native) + ) + return; + + options = options || {}; + + var lastEventId = options.eventId || this.lastEventId(); + if (!lastEventId) { + throw new RavenConfigError('Missing eventId'); + } + + var dsn = options.dsn || this._dsn; + if (!dsn) { + throw new RavenConfigError('Missing DSN'); + } + + var encode = encodeURIComponent; + var qs = ''; + qs += '?eventId=' + encode(lastEventId); + qs += '&dsn=' + encode(dsn); + + var user = options.user || this._globalContext.user; + if (user) { + if (user.name) qs += '&name=' + encode(user.name); + if (user.email) qs += '&email=' + encode(user.email); + } + + var globalServer = this._getGlobalServer(this._parseDSN(dsn)); + + var script = _document.createElement('script'); + script.async = true; + script.src = globalServer + '/api/embed/error-page/' + qs; + (_document.head || _document.body).appendChild(script); + }, + + /**** Private functions ****/ + _ignoreNextOnError: function() { + var self = this; + this._ignoreOnError += 1; + setTimeout(function() { + // onerror should trigger before setTimeout + self._ignoreOnError -= 1; + }); + }, + + _triggerEvent: function(eventType, options) { + // NOTE: `event` is a native browser thing, so let's avoid conflicting wiht it + var evt, key; + + if (!this._hasDocument) return; + + options = options || {}; + + eventType = 'raven' + eventType.substr(0, 1).toUpperCase() + eventType.substr(1); + + if (_document.createEvent) { + evt = _document.createEvent('HTMLEvents'); + evt.initEvent(eventType, true, true); + } else { + evt = _document.createEventObject(); + evt.eventType = eventType; + } + + for (key in options) + if (hasKey(options, key)) { + evt[key] = options[key]; + } + + if (_document.createEvent) { + // IE9 if standards + _document.dispatchEvent(evt); + } else { + // IE8 regardless of Quirks or Standards + // IE9 if quirks + try { + _document.fireEvent('on' + evt.eventType.toLowerCase(), evt); + } catch (e) { + // Do nothing + } + } + }, + + /** + * Wraps addEventListener to capture UI breadcrumbs + * @param evtName the event name (e.g. "click") + * @returns {Function} + * @private + */ + _breadcrumbEventHandler: function(evtName) { + var self = this; + return function(evt) { + // reset keypress timeout; e.g. triggering a 'click' after + // a 'keypress' will reset the keypress debounce so that a new + // set of keypresses can be recorded + self._keypressTimeout = null; + + // It's possible this handler might trigger multiple times for the same + // event (e.g. event propagation through node ancestors). Ignore if we've + // already captured the event. + if (self._lastCapturedEvent === evt) return; + + self._lastCapturedEvent = evt; + + // try/catch both: + // - accessing evt.target (see getsentry/raven-js#838, #768) + // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly + // can throw an exception in some circumstances. + var target; + try { + target = htmlTreeAsString(evt.target); + } catch (e) { + target = ''; + } + + self.captureBreadcrumb({ + category: 'ui.' + evtName, // e.g. ui.click, ui.input + message: target + }); + }; + }, + + /** + * Wraps addEventListener to capture keypress UI events + * @returns {Function} + * @private + */ + _keypressEventHandler: function() { + var self = this, + debounceDuration = 1000; // milliseconds + + // TODO: if somehow user switches keypress target before + // debounce timeout is triggered, we will only capture + // a single breadcrumb from the FIRST target (acceptable?) + return function(evt) { + var target; + try { + target = evt.target; + } catch (e) { + // just accessing event properties can throw an exception in some rare circumstances + // see: https://github.com/getsentry/raven-js/issues/838 + return; + } + var tagName = target && target.tagName; + + // only consider keypress events on actual input elements + // this will disregard keypresses targeting body (e.g. tabbing + // through elements, hotkeys, etc) + if ( + !tagName || + (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable) + ) + return; + + // record first keypress in a series, but ignore subsequent + // keypresses until debounce clears + var timeout = self._keypressTimeout; + if (!timeout) { + self._breadcrumbEventHandler('input')(evt); + } + clearTimeout(timeout); + self._keypressTimeout = setTimeout(function() { + self._keypressTimeout = null; + }, debounceDuration); + }; + }, + + /** + * Captures a breadcrumb of type "navigation", normalizing input URLs + * @param to the originating URL + * @param from the target URL + * @private + */ + _captureUrlChange: function(from, to) { + var parsedLoc = parseUrl(this._location.href); + var parsedTo = parseUrl(to); + var parsedFrom = parseUrl(from); + + // because onpopstate only tells you the "new" (to) value of location.href, and + // not the previous (from) value, we need to track the value of the current URL + // state ourselves + this._lastHref = to; + + // Use only the path component of the URL if the URL matches the current + // document (almost all the time when using pushState) + if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) + to = parsedTo.relative; + if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) + from = parsedFrom.relative; + + this.captureBreadcrumb({ + category: 'navigation', + data: { + to: to, + from: from + } + }); + }, + + _patchFunctionToString: function() { + var self = this; + self._originalFunctionToString = Function.prototype.toString; + // eslint-disable-next-line no-extend-native + Function.prototype.toString = function() { + if (typeof this === 'function' && this.__raven__) { + return self._originalFunctionToString.apply(this.__orig__, arguments); + } + return self._originalFunctionToString.apply(this, arguments); + }; + }, + + _unpatchFunctionToString: function() { + if (this._originalFunctionToString) { + // eslint-disable-next-line no-extend-native + Function.prototype.toString = this._originalFunctionToString; + } + }, + + /** + * Wrap timer functions and event targets to catch errors and provide + * better metadata. + */ + _instrumentTryCatch: function() { + var self = this; + + var wrappedBuiltIns = self._wrappedBuiltIns; + + function wrapTimeFn(orig) { + return function(fn, t) { + // preserve arity + // Make a copy of the arguments to prevent deoptimization + // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments + var args = new Array(arguments.length); + for (var i = 0; i < args.length; ++i) { + args[i] = arguments[i]; + } + var originalCallback = args[0]; + if (isFunction(originalCallback)) { + args[0] = self.wrap(originalCallback); + } + + // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it + // also supports only two arguments and doesn't care what this is, so we + // can just call the original function directly. + if (orig.apply) { + return orig.apply(this, args); + } else { + return orig(args[0], args[1]); + } + }; + } + + var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs; + + function wrapEventTarget(global) { + var proto = _window[global] && _window[global].prototype; + if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) { + fill( + proto, + 'addEventListener', + function(orig) { + return function(evtName, fn, capture, secure) { + // preserve arity + try { + if (fn && fn.handleEvent) { + fn.handleEvent = self.wrap(fn.handleEvent); + } + } catch (err) { + // can sometimes get 'Permission denied to access property "handle Event' + } + + // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs` + // so that we don't have more than one wrapper function + var before, clickHandler, keypressHandler; + + if ( + autoBreadcrumbs && + autoBreadcrumbs.dom && + (global === 'EventTarget' || global === 'Node') + ) { + // NOTE: generating multiple handlers per addEventListener invocation, should + // revisit and verify we can just use one (almost certainly) + clickHandler = self._breadcrumbEventHandler('click'); + keypressHandler = self._keypressEventHandler(); + before = function(evt) { + // need to intercept every DOM event in `before` argument, in case that + // same wrapped method is re-used for different events (e.g. mousemove THEN click) + // see #724 + if (!evt) return; + + var eventType; + try { + eventType = evt.type; + } catch (e) { + // just accessing event properties can throw an exception in some rare circumstances + // see: https://github.com/getsentry/raven-js/issues/838 + return; + } + if (eventType === 'click') return clickHandler(evt); + else if (eventType === 'keypress') return keypressHandler(evt); + }; + } + return orig.call( + this, + evtName, + self.wrap(fn, undefined, before), + capture, + secure + ); + }; + }, + wrappedBuiltIns + ); + fill( + proto, + 'removeEventListener', + function(orig) { + return function(evt, fn, capture, secure) { + try { + fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn); + } catch (e) { + // ignore, accessing __raven_wrapper__ will throw in some Selenium environments + } + return orig.call(this, evt, fn, capture, secure); + }; + }, + wrappedBuiltIns + ); + } + } + + fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns); + fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns); + if (_window.requestAnimationFrame) { + fill( + _window, + 'requestAnimationFrame', + function(orig) { + return function(cb) { + return orig(self.wrap(cb)); + }; + }, + wrappedBuiltIns + ); + } + + // event targets borrowed from bugsnag-js: + // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666 + var eventTargets = [ + 'EventTarget', + 'Window', + 'Node', + 'ApplicationCache', + 'AudioTrackList', + 'ChannelMergerNode', + 'CryptoOperation', + 'EventSource', + 'FileReader', + 'HTMLUnknownElement', + 'IDBDatabase', + 'IDBRequest', + 'IDBTransaction', + 'KeyOperation', + 'MediaController', + 'MessagePort', + 'ModalWindow', + 'Notification', + 'SVGElementInstance', + 'Screen', + 'TextTrack', + 'TextTrackCue', + 'TextTrackList', + 'WebSocket', + 'WebSocketWorker', + 'Worker', + 'XMLHttpRequest', + 'XMLHttpRequestEventTarget', + 'XMLHttpRequestUpload' + ]; + for (var i = 0; i < eventTargets.length; i++) { + wrapEventTarget(eventTargets[i]); + } + }, + + /** + * Instrument browser built-ins w/ breadcrumb capturing + * - XMLHttpRequests + * - DOM interactions (click/typing) + * - window.location changes + * - console + * + * Can be disabled or individually configured via the `autoBreadcrumbs` config option + */ + _instrumentBreadcrumbs: function() { + var self = this; + var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs; + + var wrappedBuiltIns = self._wrappedBuiltIns; + + function wrapProp(prop, xhr) { + if (prop in xhr && isFunction(xhr[prop])) { + fill(xhr, prop, function(orig) { + return self.wrap(orig); + }); // intentionally don't track filled methods on XHR instances + } + } + + if (autoBreadcrumbs.xhr && 'XMLHttpRequest' in _window) { + var xhrproto = XMLHttpRequest.prototype; + fill( + xhrproto, + 'open', + function(origOpen) { + return function(method, url) { + // preserve arity + + // if Sentry key appears in URL, don't capture + if (isString(url) && url.indexOf(self._globalKey) === -1) { + this.__raven_xhr = { + method: method, + url: url, + status_code: null + }; + } + + return origOpen.apply(this, arguments); + }; + }, + wrappedBuiltIns + ); + + fill( + xhrproto, + 'send', + function(origSend) { + return function() { + // preserve arity + var xhr = this; + + function onreadystatechangeHandler() { + if (xhr.__raven_xhr && xhr.readyState === 4) { + try { + // touching statusCode in some platforms throws + // an exception + xhr.__raven_xhr.status_code = xhr.status; + } catch (e) { + /* do nothing */ + } + + self.captureBreadcrumb({ + type: 'http', + category: 'xhr', + data: xhr.__raven_xhr + }); + } + } + + var props = ['onload', 'onerror', 'onprogress']; + for (var j = 0; j < props.length; j++) { + wrapProp(props[j], xhr); + } + + if ('onreadystatechange' in xhr && isFunction(xhr.onreadystatechange)) { + fill( + xhr, + 'onreadystatechange', + function(orig) { + return self.wrap(orig, undefined, onreadystatechangeHandler); + } /* intentionally don't track this instrumentation */ + ); + } else { + // if onreadystatechange wasn't actually set by the page on this xhr, we + // are free to set our own and capture the breadcrumb + xhr.onreadystatechange = onreadystatechangeHandler; + } + + return origSend.apply(this, arguments); + }; + }, + wrappedBuiltIns + ); + } + + if (autoBreadcrumbs.xhr && supportsFetch()) { + fill( + _window, + 'fetch', + function(origFetch) { + return function() { + // preserve arity + // Make a copy of the arguments to prevent deoptimization + // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments + var args = new Array(arguments.length); + for (var i = 0; i < args.length; ++i) { + args[i] = arguments[i]; + } + + var fetchInput = args[0]; + var method = 'GET'; + var url; + + if (typeof fetchInput === 'string') { + url = fetchInput; + } else if ('Request' in _window && fetchInput instanceof _window.Request) { + url = fetchInput.url; + if (fetchInput.method) { + method = fetchInput.method; + } + } else { + url = '' + fetchInput; + } + + // if Sentry key appears in URL, don't capture, as it's our own request + if (url.indexOf(self._globalKey) !== -1) { + return origFetch.apply(this, args); + } + + if (args[1] && args[1].method) { + method = args[1].method; + } + + var fetchData = { + method: method, + url: url, + status_code: null + }; + + return origFetch.apply(this, args).then(function(response) { + fetchData.status_code = response.status; + + self.captureBreadcrumb({ + type: 'http', + category: 'fetch', + data: fetchData + }); + + return response; + }); + }; + }, + wrappedBuiltIns + ); + } + + // Capture breadcrumbs from any click that is unhandled / bubbled up all the way + // to the document. Do this before we instrument addEventListener. + if (autoBreadcrumbs.dom && this._hasDocument) { + if (_document.addEventListener) { + _document.addEventListener('click', self._breadcrumbEventHandler('click'), false); + _document.addEventListener('keypress', self._keypressEventHandler(), false); + } else { + // IE8 Compatibility + _document.attachEvent('onclick', self._breadcrumbEventHandler('click')); + _document.attachEvent('onkeypress', self._keypressEventHandler()); + } + } + + // record navigation (URL) changes + // NOTE: in Chrome App environment, touching history.pushState, *even inside + // a try/catch block*, will cause Chrome to output an error to console.error + // borrowed from: https://github.com/angular/angular.js/pull/13945/files + var chrome = _window.chrome; + var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime; + var hasPushAndReplaceState = + !isChromePackagedApp && + _window.history && + history.pushState && + history.replaceState; + if (autoBreadcrumbs.location && hasPushAndReplaceState) { + // TODO: remove onpopstate handler on uninstall() + var oldOnPopState = _window.onpopstate; + _window.onpopstate = function() { + var currentHref = self._location.href; + self._captureUrlChange(self._lastHref, currentHref); + + if (oldOnPopState) { + return oldOnPopState.apply(this, arguments); + } + }; + + var historyReplacementFunction = function(origHistFunction) { + // note history.pushState.length is 0; intentionally not declaring + // params to preserve 0 arity + return function(/* state, title, url */) { + var url = arguments.length > 2 ? arguments[2] : undefined; + + // url argument is optional + if (url) { + // coerce to string (this is what pushState does) + self._captureUrlChange(self._lastHref, url + ''); + } + + return origHistFunction.apply(this, arguments); + }; + }; + + fill(history, 'pushState', historyReplacementFunction, wrappedBuiltIns); + fill(history, 'replaceState', historyReplacementFunction, wrappedBuiltIns); + } + + if (autoBreadcrumbs.console && 'console' in _window && console.log) { + // console + var consoleMethodCallback = function(msg, data) { + self.captureBreadcrumb({ + message: msg, + level: data.level, + category: 'console' + }); + }; + + each(['debug', 'info', 'warn', 'error', 'log'], function(_, level) { + wrapConsoleMethod(console, level, consoleMethodCallback); + }); + } + }, + + _restoreBuiltIns: function() { + // restore any wrapped builtins + var builtin; + while (this._wrappedBuiltIns.length) { + builtin = this._wrappedBuiltIns.shift(); + + var obj = builtin[0], + name = builtin[1], + orig = builtin[2]; + + obj[name] = orig; + } + }, + + _restoreConsole: function() { + // eslint-disable-next-line guard-for-in + for (var method in this._originalConsoleMethods) { + this._originalConsole[method] = this._originalConsoleMethods[method]; + } + }, + + _drainPlugins: function() { + var self = this; + + // FIX ME TODO + each(this._plugins, function(_, plugin) { + var installer = plugin[0]; + var args = plugin[1]; + installer.apply(self, [self].concat(args)); + }); + }, + + _parseDSN: function(str) { + var m = dsnPattern.exec(str), + dsn = {}, + i = 7; + + try { + while (i--) dsn[dsnKeys[i]] = m[i] || ''; + } catch (e) { + throw new RavenConfigError('Invalid DSN: ' + str); + } + + if (dsn.pass && !this._globalOptions.allowSecretKey) { + throw new RavenConfigError( + 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key' + ); + } + + return dsn; + }, + + _getGlobalServer: function(uri) { + // assemble the endpoint from the uri pieces + var globalServer = '//' + uri.host + (uri.port ? ':' + uri.port : ''); + + if (uri.protocol) { + globalServer = uri.protocol + ':' + globalServer; + } + return globalServer; + }, + + _handleOnErrorStackInfo: function() { + // if we are intentionally ignoring errors via onerror, bail out + if (!this._ignoreOnError) { + this._handleStackInfo.apply(this, arguments); + } + }, + + _handleStackInfo: function(stackInfo, options) { + var frames = this._prepareFrames(stackInfo, options); + + this._triggerEvent('handle', { + stackInfo: stackInfo, + options: options + }); + + this._processException( + stackInfo.name, + stackInfo.message, + stackInfo.url, + stackInfo.lineno, + frames, + options + ); + }, + + _prepareFrames: function(stackInfo, options) { + var self = this; + var frames = []; + if (stackInfo.stack && stackInfo.stack.length) { + each(stackInfo.stack, function(i, stack) { + var frame = self._normalizeFrame(stack, stackInfo.url); + if (frame) { + frames.push(frame); + } + }); + + // e.g. frames captured via captureMessage throw + if (options && options.trimHeadFrames) { + for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) { + frames[j].in_app = false; + } + } + } + frames = frames.slice(0, this._globalOptions.stackTraceLimit); + return frames; + }, + + _normalizeFrame: function(frame, stackInfoUrl) { + // normalize the frames data + var normalized = { + filename: frame.url, + lineno: frame.line, + colno: frame.column, + function: frame.func || '?' + }; + + // Case when we don't have any information about the error + // E.g. throwing a string or raw object, instead of an `Error` in Firefox + // Generating synthetic error doesn't add any value here + // + // We should probably somehow let a user know that they should fix their code + if (!frame.url) { + normalized.filename = stackInfoUrl; // fallback to whole stacks url from onerror handler + } + + normalized.in_app = !// determine if an exception came from outside of our app + // first we check the global includePaths list. + ( + (!!this._globalOptions.includePaths.test && + !this._globalOptions.includePaths.test(normalized.filename)) || + // Now we check for fun, if the function name is Raven or TraceKit + /(Raven|TraceKit)\./.test(normalized['function']) || + // finally, we do a last ditch effort and check for raven.min.js + /raven\.(min\.)?js$/.test(normalized.filename) + ); + + return normalized; + }, + + _processException: function(type, message, fileurl, lineno, frames, options) { + var prefixedMessage = (type ? type + ': ' : '') + (message || ''); + if ( + !!this._globalOptions.ignoreErrors.test && + (this._globalOptions.ignoreErrors.test(message) || + this._globalOptions.ignoreErrors.test(prefixedMessage)) + ) { + return; + } + + var stacktrace; + + if (frames && frames.length) { + fileurl = frames[0].filename || fileurl; + // Sentry expects frames oldest to newest + // and JS sends them as newest to oldest + frames.reverse(); + stacktrace = {frames: frames}; + } else if (fileurl) { + stacktrace = { + frames: [ + { + filename: fileurl, + lineno: lineno, + in_app: true + } + ] + }; + } + + if ( + !!this._globalOptions.ignoreUrls.test && + this._globalOptions.ignoreUrls.test(fileurl) + ) { + return; + } + + if ( + !!this._globalOptions.whitelistUrls.test && + !this._globalOptions.whitelistUrls.test(fileurl) + ) { + return; + } + + var data = objectMerge( + { + // sentry.interfaces.Exception + exception: { + values: [ + { + type: type, + value: message, + stacktrace: stacktrace + } + ] + }, + culprit: fileurl + }, + options + ); + + // Fire away! + this._send(data); + }, + + _trimPacket: function(data) { + // For now, we only want to truncate the two different messages + // but this could/should be expanded to just trim everything + var max = this._globalOptions.maxMessageLength; + if (data.message) { + data.message = truncate(data.message, max); + } + if (data.exception) { + var exception = data.exception.values[0]; + exception.value = truncate(exception.value, max); + } + + var request = data.request; + if (request) { + if (request.url) { + request.url = truncate(request.url, this._globalOptions.maxUrlLength); + } + if (request.Referer) { + request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength); + } + } + + if (data.breadcrumbs && data.breadcrumbs.values) + this._trimBreadcrumbs(data.breadcrumbs); + + return data; + }, + + /** + * Truncate breadcrumb values (right now just URLs) + */ + _trimBreadcrumbs: function(breadcrumbs) { + // known breadcrumb properties with urls + // TODO: also consider arbitrary prop values that start with (https?)?:// + var urlProps = ['to', 'from', 'url'], + urlProp, + crumb, + data; + + for (var i = 0; i < breadcrumbs.values.length; ++i) { + crumb = breadcrumbs.values[i]; + if ( + !crumb.hasOwnProperty('data') || + !isObject(crumb.data) || + objectFrozen(crumb.data) + ) + continue; + + data = objectMerge({}, crumb.data); + for (var j = 0; j < urlProps.length; ++j) { + urlProp = urlProps[j]; + if (data.hasOwnProperty(urlProp) && data[urlProp]) { + data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength); + } + } + breadcrumbs.values[i].data = data; + } + }, + + _getHttpData: function() { + if (!this._hasNavigator && !this._hasDocument) return; + var httpData = {}; + + if (this._hasNavigator && _navigator.userAgent) { + httpData.headers = { + 'User-Agent': navigator.userAgent + }; + } + + // Check in `window` instead of `document`, as we may be in ServiceWorker environment + if (_window.location && _window.location.href) { + httpData.url = _window.location.href; + } + + if (this._hasDocument && _document.referrer) { + if (!httpData.headers) httpData.headers = {}; + httpData.headers.Referer = _document.referrer; + } + + return httpData; + }, + + _resetBackoff: function() { + this._backoffDuration = 0; + this._backoffStart = null; + }, + + _shouldBackoff: function() { + return this._backoffDuration && now() - this._backoffStart < this._backoffDuration; + }, + + /** + * Returns true if the in-process data payload matches the signature + * of the previously-sent data + * + * NOTE: This has to be done at this level because TraceKit can generate + * data from window.onerror WITHOUT an exception object (IE8, IE9, + * other old browsers). This can take the form of an "exception" + * data object with a single frame (derived from the onerror args). + */ + _isRepeatData: function(current) { + var last = this._lastData; + + if ( + !last || + current.message !== last.message || // defined for captureMessage + current.culprit !== last.culprit // defined for captureException/onerror + ) + return false; + + // Stacktrace interface (i.e. from captureMessage) + if (current.stacktrace || last.stacktrace) { + return isSameStacktrace(current.stacktrace, last.stacktrace); + } else if (current.exception || last.exception) { + // Exception interface (i.e. from captureException/onerror) + return isSameException(current.exception, last.exception); + } + + return true; + }, + + _setBackoffState: function(request) { + // If we are already in a backoff state, don't change anything + if (this._shouldBackoff()) { + return; + } + + var status = request.status; + + // 400 - project_id doesn't exist or some other fatal + // 401 - invalid/revoked dsn + // 429 - too many requests + if (!(status === 400 || status === 401 || status === 429)) return; + + var retry; + try { + // If Retry-After is not in Access-Control-Expose-Headers, most + // browsers will throw an exception trying to access it + if (supportsFetch()) { + retry = request.headers.get('Retry-After'); + } else { + retry = request.getResponseHeader('Retry-After'); + } + + // Retry-After is returned in seconds + retry = parseInt(retry, 10) * 1000; + } catch (e) { + /* eslint no-empty:0 */ + } + + this._backoffDuration = retry + ? // If Sentry server returned a Retry-After value, use it + retry + : // Otherwise, double the last backoff duration (starts at 1 sec) + this._backoffDuration * 2 || 1000; + + this._backoffStart = now(); + }, + + _send: function(data) { + var globalOptions = this._globalOptions; + + var baseData = { + project: this._globalProject, + logger: globalOptions.logger, + platform: 'javascript' + }, + httpData = this._getHttpData(); + + if (httpData) { + baseData.request = httpData; + } + + // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload + if (data.trimHeadFrames) delete data.trimHeadFrames; + + data = objectMerge(baseData, data); + + // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge + data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags); + data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra); + + // Send along our own collected metadata with extra + data.extra['session:duration'] = now() - this._startTime; + + if (this._breadcrumbs && this._breadcrumbs.length > 0) { + // intentionally make shallow copy so that additions + // to breadcrumbs aren't accidentally sent in this request + data.breadcrumbs = { + values: [].slice.call(this._breadcrumbs, 0) + }; + } + + if (this._globalContext.user) { + // sentry.interfaces.User + data.user = this._globalContext.user; + } + + // Include the environment if it's defined in globalOptions + if (globalOptions.environment) data.environment = globalOptions.environment; + + // Include the release if it's defined in globalOptions + if (globalOptions.release) data.release = globalOptions.release; + + // Include server_name if it's defined in globalOptions + if (globalOptions.serverName) data.server_name = globalOptions.serverName; + + // Cleanup empty properties before sending them to the server + Object.keys(data).forEach(function(key) { + if (data[key] == null || data[key] === '' || isEmptyObject(data[key])) { + delete data[key]; + } + }); + + if (isFunction(globalOptions.dataCallback)) { + data = globalOptions.dataCallback(data) || data; + } + + // Why?????????? + if (!data || isEmptyObject(data)) { + return; + } + + // Check if the request should be filtered or not + if ( + isFunction(globalOptions.shouldSendCallback) && + !globalOptions.shouldSendCallback(data) + ) { + return; + } + + // Backoff state: Sentry server previously responded w/ an error (e.g. 429 - too many requests), + // so drop requests until "cool-off" period has elapsed. + if (this._shouldBackoff()) { + this._logDebug('warn', 'Raven dropped error due to backoff: ', data); + return; + } + + if (typeof globalOptions.sampleRate === 'number') { + if (Math.random() < globalOptions.sampleRate) { + this._sendProcessedPayload(data); + } + } else { + this._sendProcessedPayload(data); + } + }, + + _getUuid: function() { + return uuid4(); + }, + + _sendProcessedPayload: function(data, callback) { + var self = this; + var globalOptions = this._globalOptions; + + if (!this.isSetup()) return; + + // Try and clean up the packet before sending by truncating long values + data = this._trimPacket(data); + + // ideally duplicate error testing should occur *before* dataCallback/shouldSendCallback, + // but this would require copying an un-truncated copy of the data packet, which can be + // arbitrarily deep (extra_data) -- could be worthwhile? will revisit + if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) { + this._logDebug('warn', 'Raven dropped repeat event: ', data); + return; + } + + // Send along an event_id if not explicitly passed. + // This event_id can be used to reference the error within Sentry itself. + // Set lastEventId after we know the error should actually be sent + this._lastEventId = data.event_id || (data.event_id = this._getUuid()); + + // Store outbound payload after trim + this._lastData = data; + + this._logDebug('debug', 'Raven about to send:', data); + + var auth = { + sentry_version: '7', + sentry_client: 'raven-js/' + this.VERSION, + sentry_key: this._globalKey + }; + + if (this._globalSecret) { + auth.sentry_secret = this._globalSecret; + } + + var exception = data.exception && data.exception.values[0]; + + // only capture 'sentry' breadcrumb is autoBreadcrumbs is truthy + if ( + this._globalOptions.autoBreadcrumbs && + this._globalOptions.autoBreadcrumbs.sentry + ) { + this.captureBreadcrumb({ + category: 'sentry', + message: exception + ? (exception.type ? exception.type + ': ' : '') + exception.value + : data.message, + event_id: data.event_id, + level: data.level || 'error' // presume error unless specified + }); + } + + var url = this._globalEndpoint; + (globalOptions.transport || this._makeRequest).call(this, { + url: url, + auth: auth, + data: data, + options: globalOptions, + onSuccess: function success() { + self._resetBackoff(); + + self._triggerEvent('success', { + data: data, + src: url + }); + callback && callback(); + }, + onError: function failure(error) { + self._logDebug('error', 'Raven transport failed to send: ', error); + + if (error.request) { + self._setBackoffState(error.request); + } + + self._triggerEvent('failure', { + data: data, + src: url + }); + error = error || new Error('Raven send failed (no additional details provided)'); + callback && callback(error); + } + }); + }, + + _makeRequest: function(opts) { + // Auth is intentionally sent as part of query string (NOT as custom HTTP header) to avoid preflight CORS requests + var url = opts.url + '?' + urlencode(opts.auth); + + var evaluatedHeaders = null; + var evaluatedFetchParameters = {}; + + if (opts.options.headers) { + evaluatedHeaders = this._evaluateHash(opts.options.headers); + } + + if (opts.options.fetchParameters) { + evaluatedFetchParameters = this._evaluateHash(opts.options.fetchParameters); + } + + if (supportsFetch()) { + evaluatedFetchParameters.body = stringify(opts.data); + + var defaultFetchOptions = objectMerge({}, this._fetchDefaults); + var fetchOptions = objectMerge(defaultFetchOptions, evaluatedFetchParameters); + + if (evaluatedHeaders) { + fetchOptions.headers = evaluatedHeaders; + } + + return _window + .fetch(url, fetchOptions) + .then(function(response) { + if (response.ok) { + opts.onSuccess && opts.onSuccess(); + } else { + var error = new Error('Sentry error code: ' + response.status); + // It's called request only to keep compatibility with XHR interface + // and not add more redundant checks in setBackoffState method + error.request = response; + opts.onError && opts.onError(error); + } + }) + ['catch'](function() { + opts.onError && + opts.onError(new Error('Sentry error code: network unavailable')); + }); + } + + var request = _window.XMLHttpRequest && new _window.XMLHttpRequest(); + if (!request) return; + + // if browser doesn't support CORS (e.g. IE7), we are out of luck + var hasCORS = 'withCredentials' in request || typeof XDomainRequest !== 'undefined'; + + if (!hasCORS) return; + + if ('withCredentials' in request) { + request.onreadystatechange = function() { + if (request.readyState !== 4) { + return; + } else if (request.status === 200) { + opts.onSuccess && opts.onSuccess(); + } else if (opts.onError) { + var err = new Error('Sentry error code: ' + request.status); + err.request = request; + opts.onError(err); + } + }; + } else { + request = new XDomainRequest(); + // xdomainrequest cannot go http -> https (or vice versa), + // so always use protocol relative + url = url.replace(/^https?:/, ''); + + // onreadystatechange not supported by XDomainRequest + if (opts.onSuccess) { + request.onload = opts.onSuccess; + } + if (opts.onError) { + request.onerror = function() { + var err = new Error('Sentry error code: XDomainRequest'); + err.request = request; + opts.onError(err); + }; + } + } + + request.open('POST', url); + + if (evaluatedHeaders) { + each(evaluatedHeaders, function(key, value) { + request.setRequestHeader(key, value); + }); + } + + request.send(stringify(opts.data)); + }, + + _evaluateHash: function(hash) { + var evaluated = {}; + + for (var key in hash) { + if (hash.hasOwnProperty(key)) { + var value = hash[key]; + evaluated[key] = typeof value === 'function' ? value() : value; + } + } + + return evaluated; + }, + + _logDebug: function(level) { + if (this._originalConsoleMethods[level] && this.debug) { + // In IE<10 console methods do not have their own 'apply' method + Function.prototype.apply.call( + this._originalConsoleMethods[level], + this._originalConsole, + [].slice.call(arguments, 1) + ); + } + }, + + _mergeContext: function(key, context) { + if (isUndefined(context)) { + delete this._globalContext[key]; + } else { + this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context); + } + } +}; + +// Deprecations +Raven.prototype.setUser = Raven.prototype.setUserContext; +Raven.prototype.setReleaseContext = Raven.prototype.setRelease; + +module.exports = Raven; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/raven-js/src/singleton.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** + * Enforces a single instance of the Raven client, and the + * main entry point for Raven. If you are a consumer of the + * Raven library, you SHOULD load this file (vs raven.js). + **/ + +var RavenConstructor = __webpack_require__("./node_modules/raven-js/src/raven.js"); + +// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) +var _window = + typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; +var _Raven = _window.Raven; + +var Raven = new RavenConstructor(); + +/* + * Allow multiple versions of Raven to be installed. + * Strip Raven from the global context and returns the instance. + * + * @return {Raven} + */ +Raven.noConflict = function() { + _window.Raven = _Raven; + return Raven; +}; + +Raven.afterLoad(); + +module.exports = Raven; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/raven-js/src/utils.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var _window = + typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function isObject(what) { + return typeof what === 'object' && what !== null; +} + +// Yanked from https://git.io/vS8DV re-used under CC0 +// with some tiny modifications +function isError(value) { + switch ({}.toString.call(value)) { + case '[object Error]': + return true; + case '[object Exception]': + return true; + case '[object DOMException]': + return true; + default: + return value instanceof Error; + } +} + +function isErrorEvent(value) { + return supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]'; +} + +function isUndefined(what) { + return what === void 0; +} + +function isFunction(what) { + return typeof what === 'function'; +} + +function isPlainObject(what) { + return Object.prototype.toString.call(what) === '[object Object]'; +} + +function isString(what) { + return Object.prototype.toString.call(what) === '[object String]'; +} + +function isArray(what) { + return Object.prototype.toString.call(what) === '[object Array]'; +} + +function isEmptyObject(what) { + if (!isPlainObject(what)) return false; + + for (var _ in what) { + if (what.hasOwnProperty(_)) { + return false; + } + } + return true; +} + +function supportsErrorEvent() { + try { + new ErrorEvent(''); // eslint-disable-line no-new + return true; + } catch (e) { + return false; + } +} + +function supportsFetch() { + if (!('fetch' in _window)) return false; + + try { + new Headers(); // eslint-disable-line no-new + new Request(''); // eslint-disable-line no-new + new Response(); // eslint-disable-line no-new + return true; + } catch (e) { + return false; + } +} + +function wrappedCallback(callback) { + function dataCallback(data, original) { + var normalizedData = callback(data) || data; + if (original) { + return original(normalizedData) || normalizedData; + } + return normalizedData; + } + + return dataCallback; +} + +function each(obj, callback) { + var i, j; + + if (isUndefined(obj.length)) { + for (i in obj) { + if (hasKey(obj, i)) { + callback.call(null, i, obj[i]); + } + } + } else { + j = obj.length; + if (j) { + for (i = 0; i < j; i++) { + callback.call(null, i, obj[i]); + } + } + } +} + +function objectMerge(obj1, obj2) { + if (!obj2) { + return obj1; + } + each(obj2, function(key, value) { + obj1[key] = value; + }); + return obj1; +} + +/** + * This function is only used for react-native. + * react-native freezes object that have already been sent over the + * js bridge. We need this function in order to check if the object is frozen. + * So it's ok that objectFrozen returns false if Object.isFrozen is not + * supported because it's not relevant for other "platforms". See related issue: + * https://github.com/getsentry/react-native-sentry/issues/57 + */ +function objectFrozen(obj) { + if (!Object.isFrozen) { + return false; + } + return Object.isFrozen(obj); +} + +function truncate(str, max) { + return !max || str.length <= max ? str : str.substr(0, max) + '\u2026'; +} + +/** + * hasKey, a better form of hasOwnProperty + * Example: hasKey(MainHostObject, property) === true/false + * + * @param {Object} host object to check property + * @param {string} key to check + */ +function hasKey(object, key) { + return Object.prototype.hasOwnProperty.call(object, key); +} + +function joinRegExp(patterns) { + // Combine an array of regular expressions and strings into one large regexp + // Be mad. + var sources = [], + i = 0, + len = patterns.length, + pattern; + + for (; i < len; i++) { + pattern = patterns[i]; + if (isString(pattern)) { + // If it's a string, we need to escape it + // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions + sources.push(pattern.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1')); + } else if (pattern && pattern.source) { + // If it's a regexp already, we want to extract the source + sources.push(pattern.source); + } + // Intentionally skip other cases + } + return new RegExp(sources.join('|'), 'i'); +} + +function urlencode(o) { + var pairs = []; + each(o, function(key, value) { + pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)); + }); + return pairs.join('&'); +} + +// borrowed from https://tools.ietf.org/html/rfc3986#appendix-B +// intentionally using regex and not
href parsing trick because React Native and other +// environments where DOM might not be available +function parseUrl(url) { + if (typeof url !== 'string') return {}; + var match = url.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/); + + // coerce to undefined values to empty string so we don't get 'undefined' + var query = match[6] || ''; + var fragment = match[8] || ''; + return { + protocol: match[2], + host: match[4], + path: match[5], + relative: match[5] + query + fragment // everything minus origin + }; +} +function uuid4() { + var crypto = _window.crypto || _window.msCrypto; + + if (!isUndefined(crypto) && crypto.getRandomValues) { + // Use window.crypto API if available + // eslint-disable-next-line no-undef + var arr = new Uint16Array(8); + crypto.getRandomValues(arr); + + // set 4 in byte 7 + arr[3] = (arr[3] & 0xfff) | 0x4000; + // set 2 most significant bits of byte 9 to '10' + arr[4] = (arr[4] & 0x3fff) | 0x8000; + + var pad = function(num) { + var v = num.toString(16); + while (v.length < 4) { + v = '0' + v; + } + return v; + }; + + return ( + pad(arr[0]) + + pad(arr[1]) + + pad(arr[2]) + + pad(arr[3]) + + pad(arr[4]) + + pad(arr[5]) + + pad(arr[6]) + + pad(arr[7]) + ); + } else { + // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523 + return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = (Math.random() * 16) | 0, + v = c === 'x' ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); + } +} + +/** + * Given a child DOM element, returns a query-selector statement describing that + * and its ancestors + * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz] + * @param elem + * @returns {string} + */ +function htmlTreeAsString(elem) { + /* eslint no-extra-parens:0*/ + var MAX_TRAVERSE_HEIGHT = 5, + MAX_OUTPUT_LEN = 80, + out = [], + height = 0, + len = 0, + separator = ' > ', + sepLength = separator.length, + nextStr; + + while (elem && height++ < MAX_TRAVERSE_HEIGHT) { + nextStr = htmlElementAsString(elem); + // bail out if + // - nextStr is the 'html' element + // - the length of the string that would be created exceeds MAX_OUTPUT_LEN + // (ignore this limit if we are on the first iteration) + if ( + nextStr === 'html' || + (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) + ) { + break; + } + + out.push(nextStr); + + len += nextStr.length; + elem = elem.parentNode; + } + + return out.reverse().join(separator); +} + +/** + * Returns a simple, query-selector representation of a DOM element + * e.g. [HTMLElement] => input#foo.btn[name=baz] + * @param HTMLElement + * @returns {string} + */ +function htmlElementAsString(elem) { + var out = [], + className, + classes, + key, + attr, + i; + + if (!elem || !elem.tagName) { + return ''; + } + + out.push(elem.tagName.toLowerCase()); + if (elem.id) { + out.push('#' + elem.id); + } + + className = elem.className; + if (className && isString(className)) { + classes = className.split(/\s+/); + for (i = 0; i < classes.length; i++) { + out.push('.' + classes[i]); + } + } + var attrWhitelist = ['type', 'name', 'title', 'alt']; + for (i = 0; i < attrWhitelist.length; i++) { + key = attrWhitelist[i]; + attr = elem.getAttribute(key); + if (attr) { + out.push('[' + key + '="' + attr + '"]'); + } + } + return out.join(''); +} + +/** + * Returns true if either a OR b is truthy, but not both + */ +function isOnlyOneTruthy(a, b) { + return !!(!!a ^ !!b); +} + +/** + * Returns true if both parameters are undefined + */ +function isBothUndefined(a, b) { + return isUndefined(a) && isUndefined(b); +} + +/** + * Returns true if the two input exception interfaces have the same content + */ +function isSameException(ex1, ex2) { + if (isOnlyOneTruthy(ex1, ex2)) return false; + + ex1 = ex1.values[0]; + ex2 = ex2.values[0]; + + if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false; + + // in case both stacktraces are undefined, we can't decide so default to false + if (isBothUndefined(ex1.stacktrace, ex2.stacktrace)) return false; + + return isSameStacktrace(ex1.stacktrace, ex2.stacktrace); +} + +/** + * Returns true if the two input stack trace interfaces have the same content + */ +function isSameStacktrace(stack1, stack2) { + if (isOnlyOneTruthy(stack1, stack2)) return false; + + var frames1 = stack1.frames; + var frames2 = stack2.frames; + + // Exit early if frame count differs + if (frames1.length !== frames2.length) return false; + + // Iterate through every frame; bail out if anything differs + var a, b; + for (var i = 0; i < frames1.length; i++) { + a = frames1[i]; + b = frames2[i]; + if ( + a.filename !== b.filename || + a.lineno !== b.lineno || + a.colno !== b.colno || + a['function'] !== b['function'] + ) + return false; + } + return true; +} + +/** + * Polyfill a method + * @param obj object e.g. `document` + * @param name method name present on object e.g. `addEventListener` + * @param replacement replacement function + * @param track {optional} record instrumentation to an array + */ +function fill(obj, name, replacement, track) { + var orig = obj[name]; + obj[name] = replacement(orig); + obj[name].__raven__ = true; + obj[name].__orig__ = orig; + if (track) { + track.push([obj, name, orig]); + } +} + +/** + * Join values in array + * @param input array of values to be joined together + * @param delimiter string to be placed in-between values + * @returns {string} + */ +function safeJoin(input, delimiter) { + if (!isArray(input)) return ''; + + var output = []; + + for (var i = 0; i < input.length; i++) { + try { + output.push(String(input[i])); + } catch (e) { + output.push('[value cannot be serialized]'); + } + } + + return output.join(delimiter); +} + +module.exports = { + isObject: isObject, + isError: isError, + isErrorEvent: isErrorEvent, + isUndefined: isUndefined, + isFunction: isFunction, + isPlainObject: isPlainObject, + isString: isString, + isArray: isArray, + isEmptyObject: isEmptyObject, + supportsErrorEvent: supportsErrorEvent, + supportsFetch: supportsFetch, + wrappedCallback: wrappedCallback, + each: each, + objectMerge: objectMerge, + truncate: truncate, + objectFrozen: objectFrozen, + hasKey: hasKey, + joinRegExp: joinRegExp, + urlencode: urlencode, + uuid4: uuid4, + htmlTreeAsString: htmlTreeAsString, + htmlElementAsString: htmlElementAsString, + isSameException: isSameException, + isSameStacktrace: isSameStacktrace, + parseUrl: parseUrl, + fill: fill, + safeJoin: safeJoin +}; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/raven-js/vendor/TraceKit/tracekit.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var utils = __webpack_require__("./node_modules/raven-js/src/utils.js"); + +/* + TraceKit - Cross brower stack traces + + This was originally forked from github.com/occ/TraceKit, but has since been + largely re-written and is now maintained as part of raven-js. Tests for + this are in test/vendor. + + MIT license +*/ + +var TraceKit = { + collectWindowErrors: true, + debug: false +}; + +// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) +var _window = + typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +// global reference to slice +var _slice = [].slice; +var UNKNOWN_FUNCTION = '?'; + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types +var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/; + +function getLocationHref() { + if (typeof document === 'undefined' || document.location == null) return ''; + + return document.location.href; +} + +/** + * TraceKit.report: cross-browser processing of unhandled exceptions + * + * Syntax: + * TraceKit.report.subscribe(function(stackInfo) { ... }) + * TraceKit.report.unsubscribe(function(stackInfo) { ... }) + * TraceKit.report(exception) + * try { ...code... } catch(ex) { TraceKit.report(ex); } + * + * Supports: + * - Firefox: full stack trace with line numbers, plus column number + * on top frame; column number is not guaranteed + * - Opera: full stack trace with line and column numbers + * - Chrome: full stack trace with line and column numbers + * - Safari: line and column number for the top frame only; some frames + * may be missing, and column number is not guaranteed + * - IE: line and column number for the top frame only; some frames + * may be missing, and column number is not guaranteed + * + * In theory, TraceKit should work on all of the following versions: + * - IE5.5+ (only 8.0 tested) + * - Firefox 0.9+ (only 3.5+ tested) + * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require + * Exceptions Have Stacktrace to be enabled in opera:config) + * - Safari 3+ (only 4+ tested) + * - Chrome 1+ (only 5+ tested) + * - Konqueror 3.5+ (untested) + * + * Requires TraceKit.computeStackTrace. + * + * Tries to catch all unhandled exceptions and report them to the + * subscribed handlers. Please note that TraceKit.report will rethrow the + * exception. This is REQUIRED in order to get a useful stack trace in IE. + * If the exception does not reach the top of the browser, you will only + * get a stack trace from the point where TraceKit.report was called. + * + * Handlers receive a stackInfo object as described in the + * TraceKit.computeStackTrace docs. + */ +TraceKit.report = (function reportModuleWrapper() { + var handlers = [], + lastArgs = null, + lastException = null, + lastExceptionStack = null; + + /** + * Add a crash handler. + * @param {Function} handler + */ + function subscribe(handler) { + installGlobalHandler(); + handlers.push(handler); + } + + /** + * Remove a crash handler. + * @param {Function} handler + */ + function unsubscribe(handler) { + for (var i = handlers.length - 1; i >= 0; --i) { + if (handlers[i] === handler) { + handlers.splice(i, 1); + } + } + } + + /** + * Remove all crash handlers. + */ + function unsubscribeAll() { + uninstallGlobalHandler(); + handlers = []; + } + + /** + * Dispatch stack information to all handlers. + * @param {Object.} stack + */ + function notifyHandlers(stack, isWindowError) { + var exception = null; + if (isWindowError && !TraceKit.collectWindowErrors) { + return; + } + for (var i in handlers) { + if (handlers.hasOwnProperty(i)) { + try { + handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2))); + } catch (inner) { + exception = inner; + } + } + } + + if (exception) { + throw exception; + } + } + + var _oldOnerrorHandler, _onErrorHandlerInstalled; + + /** + * Ensures all global unhandled exceptions are recorded. + * Supported by Gecko and IE. + * @param {string} msg Error message. + * @param {string} url URL of script that generated the exception. + * @param {(number|string)} lineNo The line number at which the error + * occurred. + * @param {?(number|string)} colNo The column number at which the error + * occurred. + * @param {?Error} ex The actual Error object. + */ + function traceKitWindowOnError(msg, url, lineNo, colNo, ex) { + var stack = null; + // If 'ex' is ErrorEvent, get real Error from inside + var exception = utils.isErrorEvent(ex) ? ex.error : ex; + // If 'msg' is ErrorEvent, get real message from inside + var message = utils.isErrorEvent(msg) ? msg.message : msg; + + if (lastExceptionStack) { + TraceKit.computeStackTrace.augmentStackTraceWithInitialElement( + lastExceptionStack, + url, + lineNo, + message + ); + processLastException(); + } else if (exception && utils.isError(exception)) { + // non-string `exception` arg; attempt to extract stack trace + + // New chrome and blink send along a real error object + // Let's just report that like a normal error. + // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror + stack = TraceKit.computeStackTrace(exception); + notifyHandlers(stack, true); + } else { + var location = { + url: url, + line: lineNo, + column: colNo + }; + + var name = undefined; + var groups; + + if ({}.toString.call(message) === '[object String]') { + var groups = message.match(ERROR_TYPES_RE); + if (groups) { + name = groups[1]; + message = groups[2]; + } + } + + location.func = UNKNOWN_FUNCTION; + + stack = { + name: name, + message: message, + url: getLocationHref(), + stack: [location] + }; + notifyHandlers(stack, true); + } + + if (_oldOnerrorHandler) { + return _oldOnerrorHandler.apply(this, arguments); + } + + return false; + } + + function installGlobalHandler() { + if (_onErrorHandlerInstalled) { + return; + } + _oldOnerrorHandler = _window.onerror; + _window.onerror = traceKitWindowOnError; + _onErrorHandlerInstalled = true; + } + + function uninstallGlobalHandler() { + if (!_onErrorHandlerInstalled) { + return; + } + _window.onerror = _oldOnerrorHandler; + _onErrorHandlerInstalled = false; + _oldOnerrorHandler = undefined; + } + + function processLastException() { + var _lastExceptionStack = lastExceptionStack, + _lastArgs = lastArgs; + lastArgs = null; + lastExceptionStack = null; + lastException = null; + notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs)); + } + + /** + * Reports an unhandled Error to TraceKit. + * @param {Error} ex + * @param {?boolean} rethrow If false, do not re-throw the exception. + * Only used for window.onerror to not cause an infinite loop of + * rethrowing. + */ + function report(ex, rethrow) { + var args = _slice.call(arguments, 1); + if (lastExceptionStack) { + if (lastException === ex) { + return; // already caught by an inner catch block, ignore + } else { + processLastException(); + } + } + + var stack = TraceKit.computeStackTrace(ex); + lastExceptionStack = stack; + lastException = ex; + lastArgs = args; + + // If the stack trace is incomplete, wait for 2 seconds for + // slow slow IE to see if onerror occurs or not before reporting + // this exception; otherwise, we will end up with an incomplete + // stack trace + setTimeout(function() { + if (lastException === ex) { + processLastException(); + } + }, stack.incomplete ? 2000 : 0); + + if (rethrow !== false) { + throw ex; // re-throw to propagate to the top level (and cause window.onerror) + } + } + + report.subscribe = subscribe; + report.unsubscribe = unsubscribe; + report.uninstall = unsubscribeAll; + return report; +})(); + +/** + * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript + * + * Syntax: + * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below) + * Returns: + * s.name - exception name + * s.message - exception message + * s.stack[i].url - JavaScript or HTML file URL + * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work) + * s.stack[i].args - arguments passed to the function, if known + * s.stack[i].line - line number, if known + * s.stack[i].column - column number, if known + * + * Supports: + * - Firefox: full stack trace with line numbers and unreliable column + * number on top frame + * - Opera 10: full stack trace with line and column numbers + * - Opera 9-: full stack trace with line numbers + * - Chrome: full stack trace with line and column numbers + * - Safari: line and column number for the topmost stacktrace element + * only + * - IE: no line numbers whatsoever + * + * Tries to guess names of anonymous functions by looking for assignments + * in the source code. In IE and Safari, we have to guess source file names + * by searching for function bodies inside all page scripts. This will not + * work for scripts that are loaded cross-domain. + * Here be dragons: some function names may be guessed incorrectly, and + * duplicate functions may be mismatched. + * + * TraceKit.computeStackTrace should only be used for tracing purposes. + * Logging of unhandled exceptions should be done with TraceKit.report, + * which builds on top of TraceKit.computeStackTrace and provides better + * IE support by utilizing the window.onerror event to retrieve information + * about the top of the stack. + * + * Note: In IE and Safari, no stack trace is recorded on the Error object, + * so computeStackTrace instead walks its *own* chain of callers. + * This means that: + * * in Safari, some methods may be missing from the stack trace; + * * in IE, the topmost function in the stack trace will always be the + * caller of computeStackTrace. + * + * This is okay for tracing (because you are likely to be calling + * computeStackTrace from the function you want to be the topmost element + * of the stack trace anyway), but not okay for logging unhandled + * exceptions (because your catch block will likely be far away from the + * inner function that actually caused the exception). + * + */ +TraceKit.computeStackTrace = (function computeStackTraceWrapper() { + // Contents of Exception in various browsers. + // + // SAFARI: + // ex.message = Can't find variable: qq + // ex.line = 59 + // ex.sourceId = 580238192 + // ex.sourceURL = http://... + // ex.expressionBeginOffset = 96 + // ex.expressionCaretOffset = 98 + // ex.expressionEndOffset = 98 + // ex.name = ReferenceError + // + // FIREFOX: + // ex.message = qq is not defined + // ex.fileName = http://... + // ex.lineNumber = 59 + // ex.columnNumber = 69 + // ex.stack = ...stack trace... (see the example below) + // ex.name = ReferenceError + // + // CHROME: + // ex.message = qq is not defined + // ex.name = ReferenceError + // ex.type = not_defined + // ex.arguments = ['aa'] + // ex.stack = ...stack trace... + // + // INTERNET EXPLORER: + // ex.message = ... + // ex.name = ReferenceError + // + // OPERA: + // ex.message = ...message... (see the example below) + // ex.name = ReferenceError + // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message) + // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace' + + /** + * Computes stack trace information from the stack property. + * Chrome and Gecko use this property. + * @param {Error} ex + * @return {?Object.} Stack trace information. + */ + function computeStackTraceFromStackProp(ex) { + if (typeof ex.stack === 'undefined' || !ex.stack) return; + + var chrome = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, + gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, + winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx(?:-web)|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, + // Used to additionally parse URL/line/column from eval frames + geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, + chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/, + lines = ex.stack.split('\n'), + stack = [], + submatch, + parts, + element, + reference = /^(.*) is undefined$/.exec(ex.message); + + for (var i = 0, j = lines.length; i < j; ++i) { + if ((parts = chrome.exec(lines[i]))) { + var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line + var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line + if (isEval && (submatch = chromeEval.exec(parts[2]))) { + // throw out eval line/column and use top-most line/column number + parts[2] = submatch[1]; // url + parts[3] = submatch[2]; // line + parts[4] = submatch[3]; // column + } + element = { + url: !isNative ? parts[2] : null, + func: parts[1] || UNKNOWN_FUNCTION, + args: isNative ? [parts[2]] : [], + line: parts[3] ? +parts[3] : null, + column: parts[4] ? +parts[4] : null + }; + } else if ((parts = winjs.exec(lines[i]))) { + element = { + url: parts[2], + func: parts[1] || UNKNOWN_FUNCTION, + args: [], + line: +parts[3], + column: parts[4] ? +parts[4] : null + }; + } else if ((parts = gecko.exec(lines[i]))) { + var isEval = parts[3] && parts[3].indexOf(' > eval') > -1; + if (isEval && (submatch = geckoEval.exec(parts[3]))) { + // throw out eval line/column and use top-most line number + parts[3] = submatch[1]; + parts[4] = submatch[2]; + parts[5] = null; // no column when eval + } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== 'undefined') { + // FireFox uses this awesome columnNumber property for its top frame + // Also note, Firefox's column number is 0-based and everything else expects 1-based, + // so adding 1 + // NOTE: this hack doesn't work if top-most frame is eval + stack[0].column = ex.columnNumber + 1; + } + element = { + url: parts[3], + func: parts[1] || UNKNOWN_FUNCTION, + args: parts[2] ? parts[2].split(',') : [], + line: parts[4] ? +parts[4] : null, + column: parts[5] ? +parts[5] : null + }; + } else { + continue; + } + + if (!element.func && element.line) { + element.func = UNKNOWN_FUNCTION; + } + + stack.push(element); + } + + if (!stack.length) { + return null; + } + + return { + name: ex.name, + message: ex.message, + url: getLocationHref(), + stack: stack + }; + } + + /** + * Adds information about the first frame to incomplete stack traces. + * Safari and IE require this to get complete data on the first frame. + * @param {Object.} stackInfo Stack trace information from + * one of the compute* methods. + * @param {string} url The URL of the script that caused an error. + * @param {(number|string)} lineNo The line number of the script that + * caused an error. + * @param {string=} message The error generated by the browser, which + * hopefully contains the name of the object that caused the error. + * @return {boolean} Whether or not the stack information was + * augmented. + */ + function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) { + var initial = { + url: url, + line: lineNo + }; + + if (initial.url && initial.line) { + stackInfo.incomplete = false; + + if (!initial.func) { + initial.func = UNKNOWN_FUNCTION; + } + + if (stackInfo.stack.length > 0) { + if (stackInfo.stack[0].url === initial.url) { + if (stackInfo.stack[0].line === initial.line) { + return false; // already in stack trace + } else if ( + !stackInfo.stack[0].line && + stackInfo.stack[0].func === initial.func + ) { + stackInfo.stack[0].line = initial.line; + return false; + } + } + } + + stackInfo.stack.unshift(initial); + stackInfo.partial = true; + return true; + } else { + stackInfo.incomplete = true; + } + + return false; + } + + /** + * Computes stack trace information by walking the arguments.caller + * chain at the time the exception occurred. This will cause earlier + * frames to be missed but is the only way to get any stack trace in + * Safari and IE. The top frame is restored by + * {@link augmentStackTraceWithInitialElement}. + * @param {Error} ex + * @return {?Object.} Stack trace information. + */ + function computeStackTraceByWalkingCallerChain(ex, depth) { + var functionName = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i, + stack = [], + funcs = {}, + recursion = false, + parts, + item, + source; + + for ( + var curr = computeStackTraceByWalkingCallerChain.caller; + curr && !recursion; + curr = curr.caller + ) { + if (curr === computeStackTrace || curr === TraceKit.report) { + // console.log('skipping internal function'); + continue; + } + + item = { + url: null, + func: UNKNOWN_FUNCTION, + line: null, + column: null + }; + + if (curr.name) { + item.func = curr.name; + } else if ((parts = functionName.exec(curr.toString()))) { + item.func = parts[1]; + } + + if (typeof item.func === 'undefined') { + try { + item.func = parts.input.substring(0, parts.input.indexOf('{')); + } catch (e) {} + } + + if (funcs['' + curr]) { + recursion = true; + } else { + funcs['' + curr] = true; + } + + stack.push(item); + } + + if (depth) { + // console.log('depth is ' + depth); + // console.log('stack is ' + stack.length); + stack.splice(0, depth); + } + + var result = { + name: ex.name, + message: ex.message, + url: getLocationHref(), + stack: stack + }; + augmentStackTraceWithInitialElement( + result, + ex.sourceURL || ex.fileName, + ex.line || ex.lineNumber, + ex.message || ex.description + ); + return result; + } + + /** + * Computes a stack trace for an exception. + * @param {Error} ex + * @param {(string|number)=} depth + */ + function computeStackTrace(ex, depth) { + var stack = null; + depth = depth == null ? 0 : +depth; + + try { + stack = computeStackTraceFromStackProp(ex); + if (stack) { + return stack; + } + } catch (e) { + if (TraceKit.debug) { + throw e; + } + } + + try { + stack = computeStackTraceByWalkingCallerChain(ex, depth + 1); + if (stack) { + return stack; + } + } catch (e) { + if (TraceKit.debug) { + throw e; + } + } + return { + name: ex.name, + message: ex.message, + url: getLocationHref() + }; + } + + computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement; + computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp; + + return computeStackTrace; +})(); + +module.exports = TraceKit; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/raven-js/vendor/json-stringify-safe/stringify.js": +/***/ (function(module, exports) { + +/* + json-stringify-safe + Like JSON.stringify, but doesn't throw on circular references. + + Originally forked from https://github.com/isaacs/json-stringify-safe + version 5.0.1 on 3/8/2017 and modified to handle Errors serialization + and IE8 compatibility. Tests for this are in test/vendor. + + ISC license: https://github.com/isaacs/json-stringify-safe/blob/master/LICENSE +*/ + +exports = module.exports = stringify; +exports.getSerialize = serializer; + +function indexOf(haystack, needle) { + for (var i = 0; i < haystack.length; ++i) { + if (haystack[i] === needle) return i; + } + return -1; +} + +function stringify(obj, replacer, spaces, cycleReplacer) { + return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces); +} + +// https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106 +function stringifyError(value) { + var err = { + // These properties are implemented as magical getters and don't show up in for in + stack: value.stack, + message: value.message, + name: value.name + }; + + for (var i in value) { + if (Object.prototype.hasOwnProperty.call(value, i)) { + err[i] = value[i]; + } + } + + return err; +} + +function serializer(replacer, cycleReplacer) { + var stack = []; + var keys = []; + + if (cycleReplacer == null) { + cycleReplacer = function(key, value) { + if (stack[0] === value) { + return '[Circular ~]'; + } + return '[Circular ~.' + keys.slice(0, indexOf(stack, value)).join('.') + ']'; + }; + } + + return function(key, value) { + if (stack.length > 0) { + var thisPos = indexOf(stack, this); + ~thisPos ? stack.splice(thisPos + 1) : stack.push(this); + ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key); + + if (~indexOf(stack, value)) { + value = cycleReplacer.call(this, key, value); + } + } else { + stack.push(value); + } + + return replacer == null + ? value instanceof Error ? stringifyError(value) : value + : replacer.call(this, key, value); + }; +} + + +/***/ }), + +/***/ "./node_modules/react-event-listener/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); + +var _typeof3 = _interopRequireDefault(_typeof2); + +var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _assign = __webpack_require__("./node_modules/babel-runtime/core-js/object/assign.js"); + +var _assign2 = _interopRequireDefault(_assign); + +exports.withOptions = withOptions; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _shallowEqual = __webpack_require__("./node_modules/fbjs/lib/shallowEqual.js"); + +var _shallowEqual2 = _interopRequireDefault(_shallowEqual); + +var _warning = __webpack_require__("./node_modules/warning/browser.js"); + +var _warning2 = _interopRequireDefault(_warning); + +var _supports = __webpack_require__("./node_modules/react-event-listener/lib/supports.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var defaultEventOptions = { + capture: false, + passive: false +}; + +function mergeDefaultEventOptions(options) { + return (0, _assign2.default)({}, defaultEventOptions, options); +} + +function getEventListenerArgs(eventName, callback, options) { + var args = [eventName, callback]; + args.push(_supports.passiveOption ? options : options.capture); + return args; +} + +function on(target, eventName, callback, options) { + // eslint-disable-next-line prefer-spread + target.addEventListener.apply(target, getEventListenerArgs(eventName, callback, options)); +} + +function off(target, eventName, callback, options) { + // eslint-disable-next-line prefer-spread + target.removeEventListener.apply(target, getEventListenerArgs(eventName, callback, options)); +} + +function forEachListener(props, iteratee) { + var children = props.children, + target = props.target, + eventProps = (0, _objectWithoutProperties3.default)(props, ['children', 'target']); + + + (0, _keys2.default)(eventProps).forEach(function (name) { + if (name.substring(0, 2) !== 'on') { + return; + } + + var prop = eventProps[name]; + var type = typeof prop === 'undefined' ? 'undefined' : (0, _typeof3.default)(prop); + var isObject = type === 'object'; + var isFunction = type === 'function'; + + if (!isObject && !isFunction) { + return; + } + + var capture = name.substr(-7).toLowerCase() === 'capture'; + var eventName = name.substring(2).toLowerCase(); + eventName = capture ? eventName.substring(0, eventName.length - 7) : eventName; + + if (isObject) { + iteratee(eventName, prop.handler, prop.options); + } else { + iteratee(eventName, prop, mergeDefaultEventOptions({ capture: capture })); + } + }); +} + +function withOptions(handler, options) { + process.env.NODE_ENV !== "production" ? (0, _warning2.default)(options, 'react-event-listener: should be specified options in withOptions.') : void 0; + + return { + handler: handler, + options: mergeDefaultEventOptions(options) + }; +} + +var EventListener = function (_React$Component) { + (0, _inherits3.default)(EventListener, _React$Component); + + function EventListener() { + (0, _classCallCheck3.default)(this, EventListener); + return (0, _possibleConstructorReturn3.default)(this, (EventListener.__proto__ || (0, _getPrototypeOf2.default)(EventListener)).apply(this, arguments)); + } + + (0, _createClass3.default)(EventListener, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.addListeners(); + } + }, { + key: 'shouldComponentUpdate', + value: function shouldComponentUpdate(nextProps) { + return !(0, _shallowEqual2.default)(this.props, nextProps); + } + }, { + key: 'componentWillUpdate', + value: function componentWillUpdate() { + this.removeListeners(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.addListeners(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.removeListeners(); + } + }, { + key: 'addListeners', + value: function addListeners() { + this.applyListeners(on); + } + }, { + key: 'removeListeners', + value: function removeListeners() { + this.applyListeners(off); + } + }, { + key: 'applyListeners', + value: function applyListeners(onOrOff) { + var target = this.props.target; + + + if (target) { + var element = target; + + if (typeof target === 'string') { + element = window[target]; + } + + forEachListener(this.props, onOrOff.bind(null, element)); + } + } + }, { + key: 'render', + value: function render() { + return this.props.children || null; + } + }]); + return EventListener; +}(_react2.default.Component); + +EventListener.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * You can provide a single child too. + */ + children: _propTypes2.default.node, + /** + * The DOM target to listen to. + */ + target: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]).isRequired +} : {}; + +exports.default = EventListener; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/react-event-listener/lib/supports.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.passiveOption = undefined; + +var _defineProperty = __webpack_require__("./node_modules/babel-runtime/core-js/object/define-property.js"); + +var _defineProperty2 = _interopRequireDefault(_defineProperty); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function defineProperty(object, property, attr) { + return (0, _defineProperty2.default)(object, property, attr); +} + +// Passive options +// Inspired by https://github.com/Modernizr/Modernizr/blob/master/feature-detects/dom/passiveeventlisteners.js +var passiveOption = exports.passiveOption = function () { + var cache = null; + + return function () { + if (cache !== null) { + return cache; + } + + var supportsPassiveOption = false; + + try { + window.addEventListener('test', null, defineProperty({}, 'passive', { + get: function get() { + supportsPassiveOption = true; + } + })); + } catch (err) { + // + } + + cache = supportsPassiveOption; + + return supportsPassiveOption; + }(); +}(); + +exports.default = {}; + +/***/ }), + +/***/ "./node_modules/react-jss/lib/JssProvider.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _jss = __webpack_require__("./node_modules/react-jss/lib/jss.js"); + +var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); + +var ns = _interopRequireWildcard(_ns); + +var _contextTypes = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); + +var _contextTypes2 = _interopRequireDefault(_contextTypes); + +var _propTypes2 = __webpack_require__("./node_modules/react-jss/lib/propTypes.js"); + +var _propTypes3 = _interopRequireDefault(_propTypes2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var JssProvider = function (_Component) { + _inherits(JssProvider, _Component); + + function JssProvider() { + _classCallCheck(this, JssProvider); + + return _possibleConstructorReturn(this, (JssProvider.__proto__ || Object.getPrototypeOf(JssProvider)).apply(this, arguments)); + } + + _createClass(JssProvider, [{ + key: 'getChildContext', + + + // JssProvider can be nested. We allow to overwrite any context prop at any level. + // 1. Check if there is a value passed over props. + // 2. If value was passed, we set it on the child context. + // 3. If value was not passed, we proxy parent context (default context behaviour). + value: function getChildContext() { + var _props = this.props, + registry = _props.registry, + classNamePrefix = _props.classNamePrefix, + localJss = _props.jss, + generateClassName = _props.generateClassName; + + var sheetOptions = this.context[ns.sheetOptions] || {}; + var context = _defineProperty({}, ns.sheetOptions, sheetOptions); + + if (registry) { + context[ns.sheetsRegistry] = registry; + // This way we identify a new request on the server, because user will create + // a new Registry instance for each. + if (registry !== this.registry) { + // We reset managers because we have to regenerate all sheets for the new request. + this.managers = {}; + this.registry = registry; + } + } + + // Make sure we don't loose managers when JssProvider is used inside of a stateful + // component which decides to rerender. + context[ns.managers] = this.managers; + + if (generateClassName) { + sheetOptions.generateClassName = generateClassName; + } else if (!sheetOptions.generateClassName) { + if (!this.generateClassName) { + var createGenerateClassName = _jss.createGenerateClassNameDefault; + if (localJss && localJss.options.createGenerateClassName) { + createGenerateClassName = localJss.options.createGenerateClassName; + } + // Make sure we don't loose the generator when JssProvider is used inside of a stateful + // component which decides to rerender. + this.generateClassName = createGenerateClassName(); + } + + sheetOptions.generateClassName = this.generateClassName; + } + + if (classNamePrefix) sheetOptions.classNamePrefix = classNamePrefix; + if (localJss) context[ns.jss] = localJss; + + return context; + } + }, { + key: 'render', + value: function render() { + return _react.Children.only(this.props.children); + } + }]); + + return JssProvider; +}(_react.Component); + +JssProvider.propTypes = _extends({}, _propTypes3['default'], { + generateClassName: _propTypes.func, + classNamePrefix: _propTypes.string, + children: _propTypes.node.isRequired +}); +JssProvider.childContextTypes = _contextTypes2['default']; +JssProvider.contextTypes = _contextTypes2['default']; +exports['default'] = JssProvider; + +/***/ }), + +/***/ "./node_modules/react-jss/lib/compose.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +/** + * Adds `composes` property to each top level rule + * in order to have a composed class name for dynamic style sheets. + * + * It relies on jss-compose and jss-extend plugins. + * + * Example: + * classes: {left: 'a', button: 'b'} + * styles: {button: {height: () => { ... }}} + * composed: { + * button: { + * composes: 'b', + * height: () => { ... } + * }, + * left: { + * composes: 'a' + * } + * } + * + * @param {Object} classes static classes map + * @param {Object} styles dynamic styles object without static properties + * @return {Object|null} + */ +exports['default'] = function (classes, styles) { + // Add `composes` property to rules which are already defined in `classes`. + for (var name in styles) { + var className = classes[name]; + if (!className) break; + + if (typeof styles[name] === 'function') { + styles[name] = { + extend: styles[name], + composes: className + }; + continue; + } + + styles[name].composes = className; + } + + if (styles) { + // Add rules which are defined in `classes` but aren't in styles. + for (var _name in classes) { + var _className = styles[_name]; + if (!_className) { + styles[_name] = { composes: classes[_name] }; + } + } + } + + return styles; +}; + +/***/ }), + +/***/ "./node_modules/react-jss/lib/contextTypes.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _ns$jss$ns$sheetOptio; + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); + +var ns = _interopRequireWildcard(_ns); + +var _propTypes2 = __webpack_require__("./node_modules/react-jss/lib/propTypes.js"); + +var _propTypes3 = _interopRequireDefault(_propTypes2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +exports['default'] = (_ns$jss$ns$sheetOptio = {}, _defineProperty(_ns$jss$ns$sheetOptio, ns.jss, _propTypes3['default'].jss), _defineProperty(_ns$jss$ns$sheetOptio, ns.sheetOptions, _propTypes.object), _defineProperty(_ns$jss$ns$sheetOptio, ns.sheetsRegistry, _propTypes3['default'].registry), _defineProperty(_ns$jss$ns$sheetOptio, ns.managers, _propTypes.object), _ns$jss$ns$sheetOptio); + +/***/ }), + +/***/ "./node_modules/react-jss/lib/createHoc.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _theming = __webpack_require__("./node_modules/theming/dist/esm/index.js"); + +var _theming2 = _interopRequireDefault(_theming); + +var _jss = __webpack_require__("./node_modules/react-jss/lib/jss.js"); + +var _jss2 = _interopRequireDefault(_jss); + +var _compose = __webpack_require__("./node_modules/react-jss/lib/compose.js"); + +var _compose2 = _interopRequireDefault(_compose); + +var _getDisplayName = __webpack_require__("./node_modules/react-jss/lib/getDisplayName.js"); + +var _getDisplayName2 = _interopRequireDefault(_getDisplayName); + +var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); + +var ns = _interopRequireWildcard(_ns); + +var _contextTypes = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); + +var _contextTypes2 = _interopRequireDefault(_contextTypes); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var env = process.env.NODE_ENV; + +// Like a Symbol +var dynamicStylesNs = Math.random(); + +/* + * # Use cases + * + * - Unthemed component accepts styles object + * - Themed component accepts styles creator function which takes theme as a single argument + * - Multiple instances will re-use the same static sheet via sheets manager + * - Sheet manager identifies static sheets by theme as a key + * - For unthemed components theme is an empty object + * - The very first instance will add static sheet to sheets manager + * - Every further instances will get that static sheet from sheet manager + * - Every mount of every instance will call method `sheetsManager.manage`, + * thus incrementing reference counter. + * - Every unmount of every instance will call method `sheetsManager.unmanage`, + * thus decrementing reference counter. + * - `sheetsManager.unmanage` under the hood will detach static sheet once reference + * counter is zero. + * - Dynamic styles are not shared between instances + * + */ + +var getStyles = function getStyles(stylesOrCreator, theme) { + if (typeof stylesOrCreator !== 'function') { + return stylesOrCreator; + } + return stylesOrCreator(theme); +}; + +// Returns an object with array property as a key and true as a value. +var toMap = function toMap(arr) { + return arr.reduce(function (map, prop) { + map[prop] = true; + return map; + }, {}); +}; + +var defaultInjectProps = { + sheet: false, + classes: true, + theme: true +}; + +var managersCounter = 0; + +/** + * Wrap a Component into a JSS Container Component. + * + * @param {Object|Function} stylesOrCreator + * @param {Component} InnerComponent + * @param {Object} [options] + * @return {Component} + */ + +exports['default'] = function (stylesOrCreator, InnerComponent) { + var _class, _temp, _initialiseProps; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var isThemingEnabled = typeof stylesOrCreator === 'function'; + + var _options$theming = options.theming, + theming = _options$theming === undefined ? _theming2['default'] : _options$theming, + inject = options.inject, + optionsJss = options.jss, + sheetOptions = _objectWithoutProperties(options, ['theming', 'inject', 'jss']); + + var injectMap = inject ? toMap(inject) : defaultInjectProps; + var themeListener = theming.themeListener; + + var displayName = (0, _getDisplayName2['default'])(InnerComponent); + var defaultClassNamePrefix = env === 'production' ? undefined : displayName + '-'; + var noTheme = {}; + var managerId = managersCounter++; + var manager = new _jss.SheetsManager(); + var defaultProps = _extends({}, InnerComponent.defaultProps); + delete defaultProps.classes; + + return _temp = _class = function (_Component) { + _inherits(Jss, _Component); + + function Jss(props, context) { + _classCallCheck(this, Jss); + + var _this = _possibleConstructorReturn(this, (Jss.__proto__ || Object.getPrototypeOf(Jss)).call(this, props, context)); + + _initialiseProps.call(_this); + + var theme = isThemingEnabled ? themeListener.initial(context) : noTheme; + + _this.state = _this.createState({ theme: theme }, props); + return _this; + } + + _createClass(Jss, [{ + key: 'createState', + value: function createState(_ref, _ref2) { + var theme = _ref.theme, + dynamicSheet = _ref.dynamicSheet; + var userClasses = _ref2.classes; + + var contextSheetOptions = this.context[ns.sheetOptions]; + var classNamePrefix = defaultClassNamePrefix; + var staticSheet = this.manager.get(theme); + var dynamicStyles = void 0; + + if (contextSheetOptions && contextSheetOptions.classNamePrefix) { + classNamePrefix = contextSheetOptions.classNamePrefix + classNamePrefix; + } + + if (!staticSheet) { + var styles = getStyles(stylesOrCreator, theme); + staticSheet = this.jss.createStyleSheet(styles, _extends({}, sheetOptions, contextSheetOptions, { + meta: displayName + ', ' + (isThemingEnabled ? 'Themed' : 'Unthemed') + ', Static', + classNamePrefix: classNamePrefix + })); + this.manager.add(theme, staticSheet); + dynamicStyles = (0, _compose2['default'])(staticSheet.classes, (0, _jss.getDynamicStyles)(styles)); + staticSheet[dynamicStylesNs] = dynamicStyles; + } else dynamicStyles = staticSheet[dynamicStylesNs]; + + if (dynamicStyles) { + dynamicSheet = this.jss.createStyleSheet(dynamicStyles, _extends({}, sheetOptions, contextSheetOptions, { + meta: displayName + ', ' + (isThemingEnabled ? 'Themed' : 'Unthemed') + ', Dynamic', + classNamePrefix: classNamePrefix, + link: true + })); + } + + var sheet = dynamicSheet || staticSheet; + var defaultClasses = InnerComponent.defaultProps ? InnerComponent.defaultProps.classes : {}; + var classes = _extends({}, defaultClasses, sheet.classes, userClasses); + + return { theme: theme, dynamicSheet: dynamicSheet, classes: classes }; + } + }, { + key: 'manage', + value: function manage(_ref3) { + var theme = _ref3.theme, + dynamicSheet = _ref3.dynamicSheet; + + var registry = this.context[ns.sheetsRegistry]; + + var staticSheet = this.manager.manage(theme); + if (registry) registry.add(staticSheet); + + if (dynamicSheet) { + dynamicSheet.update(this.props).attach(); + if (registry) registry.add(dynamicSheet); + } + } + }, { + key: 'componentWillMount', + value: function componentWillMount() { + this.manage(this.state); + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + if (isThemingEnabled) { + this.unsubscribeId = themeListener.subscribe(this.context, this.setTheme); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + var dynamicSheet = this.state.dynamicSheet; + + if (dynamicSheet) dynamicSheet.update(nextProps); + } + }, { + key: 'componentWillUpdate', + value: function componentWillUpdate(nextProps, nextState) { + if (isThemingEnabled && this.state.theme !== nextState.theme) { + var newState = this.createState(nextState, nextProps); + this.manage(newState); + this.manager.unmanage(this.state.theme); + this.setState(newState); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps, prevState) { + // We remove previous dynamicSheet only after new one was created to avoid FOUC. + if (prevState.dynamicSheet !== this.state.dynamicSheet) { + this.jss.removeStyleSheet(prevState.dynamicSheet); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.unsubscribeId) { + themeListener.unsubscribe(this.context, this.unsubscribeId); + } + + this.manager.unmanage(this.state.theme); + if (this.state.dynamicSheet) { + this.state.dynamicSheet.detach(); + } + } + }, { + key: 'render', + value: function render() { + var _state = this.state, + theme = _state.theme, + dynamicSheet = _state.dynamicSheet, + classes = _state.classes; + + var sheet = dynamicSheet || this.manager.get(theme); + var props = {}; + if (injectMap.sheet) props.sheet = sheet; + if (isThemingEnabled && injectMap.theme) props.theme = theme; + Object.assign(props, this.props); + // We have merged classes already. + if (injectMap.classes) props.classes = classes; + return _react2['default'].createElement(InnerComponent, props); + } + }, { + key: 'jss', + get: function get() { + return this.context[ns.jss] || optionsJss || _jss2['default']; + } + }, { + key: 'manager', + get: function get() { + var managers = this.context[ns.managers]; + + // If `managers` map is present in the context, we use it in order to + // let JssProvider reset them when new response has to render server-side. + if (managers) { + if (!managers[managerId]) { + managers[managerId] = new _jss.SheetsManager(); + } + return managers[managerId]; + } + + return manager; + } + }]); + + return Jss; + }(_react.Component), _class.displayName = 'Jss(' + displayName + ')', _class.InnerComponent = InnerComponent, _class.contextTypes = _extends({}, _contextTypes2['default'], isThemingEnabled && themeListener.contextTypes), _class.defaultProps = defaultProps, _initialiseProps = function _initialiseProps() { + var _this2 = this; + + this.setTheme = function (theme) { + return _this2.setState({ theme: theme }); + }; + }, _temp; +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/react-jss/lib/getDisplayName.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports['default'] = function (Component) { + return Component.displayName || Component.name || 'Component'; +}; + +/***/ }), + +/***/ "./node_modules/react-jss/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _theming = __webpack_require__("./node_modules/theming/dist/esm/index.js"); + +Object.defineProperty(exports, 'ThemeProvider', { + enumerable: true, + get: function get() { + return _theming.ThemeProvider; + } +}); +Object.defineProperty(exports, 'withTheme', { + enumerable: true, + get: function get() { + return _theming.withTheme; + } +}); +Object.defineProperty(exports, 'createTheming', { + enumerable: true, + get: function get() { + return _theming.createTheming; + } +}); + +var _JssProvider = __webpack_require__("./node_modules/react-jss/lib/JssProvider.js"); + +Object.defineProperty(exports, 'JssProvider', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_JssProvider)['default']; + } +}); + +var _jss = __webpack_require__("./node_modules/react-jss/lib/jss.js"); + +Object.defineProperty(exports, 'jss', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_jss)['default']; + } +}); +Object.defineProperty(exports, 'SheetsRegistry', { + enumerable: true, + get: function get() { + return _jss.SheetsRegistry; + } +}); +Object.defineProperty(exports, 'createGenerateClassName', { + enumerable: true, + get: function get() { + return _jss.createGenerateClassNameDefault; + } +}); + +var _injectSheet = __webpack_require__("./node_modules/react-jss/lib/injectSheet.js"); + +Object.defineProperty(exports, 'default', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_injectSheet)['default']; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/***/ }), + +/***/ "./node_modules/react-jss/lib/injectSheet.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports['default'] = injectSheet; + +var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); + +var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); + +var _createHoc = __webpack_require__("./node_modules/react-jss/lib/createHoc.js"); + +var _createHoc2 = _interopRequireDefault(_createHoc); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Global index counter to preserve source order. + * As we create the style sheet during componentWillMount lifecycle, + * children are handled after the parents, so the order of style elements would + * be parent->child. It is a problem though when a parent passes a className + * which needs to override any childs styles. StyleSheet of the child has a higher + * specificity, because of the source order. + * So our solution is to render sheets them in the reverse order child->sheet, so + * that parent has a higher specificity. + * + * @type {Number} + */ +var indexCounter = -100000; + +var NoRenderer = function NoRenderer(_ref) { + var children = _ref.children; + return children || null; +}; + +/** + * HOC creator function that wrapps the user component. + * + * `injectSheet(styles, [options])(Component)` + * + * @api public + */ +function injectSheet(stylesOrSheet) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (options.index === undefined) { + options.index = indexCounter++; + } + return function () { + var InnerComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NoRenderer; + + var Jss = (0, _createHoc2['default'])(stylesOrSheet, InnerComponent, options); + return (0, _hoistNonReactStatics2['default'])(Jss, InnerComponent, { inner: true }); + }; +} + +/***/ }), + +/***/ "./node_modules/react-jss/lib/jss.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createGenerateClassNameDefault = exports.SheetsManager = exports.getDynamicStyles = exports.SheetsRegistry = undefined; + +var _jss = __webpack_require__("./node_modules/jss/lib/index.js"); + +Object.defineProperty(exports, 'SheetsRegistry', { + enumerable: true, + get: function get() { + return _jss.SheetsRegistry; + } +}); +Object.defineProperty(exports, 'getDynamicStyles', { + enumerable: true, + get: function get() { + return _jss.getDynamicStyles; + } +}); +Object.defineProperty(exports, 'SheetsManager', { + enumerable: true, + get: function get() { + return _jss.SheetsManager; + } +}); +Object.defineProperty(exports, 'createGenerateClassNameDefault', { + enumerable: true, + get: function get() { + return _jss.createGenerateClassName; + } +}); + +var _jssPresetDefault = __webpack_require__("./node_modules/jss-preset-default/lib/index.js"); + +var _jssPresetDefault2 = _interopRequireDefault(_jssPresetDefault); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +exports['default'] = (0, _jss.create)((0, _jssPresetDefault2['default'])()); + +/***/ }), + +/***/ "./node_modules/react-jss/lib/ns.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/** + * Namespaces to avoid conflicts on the context. + */ +var jss = exports.jss = '64a55d578f856d258dc345b094a2a2b3'; +var sheetsRegistry = exports.sheetsRegistry = 'd4bd0baacbc52bbd48bbb9eb24344ecd'; +var managers = exports.managers = 'b768b78919504fba9de2c03545c5cd3a'; +var sheetOptions = exports.sheetOptions = '6fc570d6bd61383819d0f9e7407c452d'; + +/***/ }), + +/***/ "./node_modules/react-jss/lib/propTypes.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +exports['default'] = { + jss: (0, _propTypes.shape)({ + options: (0, _propTypes.shape)({ + createGenerateClassName: _propTypes.func.isRequired + }).isRequired, + createStyleSheet: _propTypes.func.isRequired, + removeStyleSheet: _propTypes.func.isRequired + }), + registry: (0, _propTypes.shape)({ + add: _propTypes.func.isRequired, + toString: _propTypes.func.isRequired + }) +}; + +/***/ }), + +/***/ "./node_modules/react-minimalist-portal/lib/portal.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var useCreatePortal = typeof _reactDom2.default.createPortal === 'function'; + +var Portal = function (_Component) { + _inherits(Portal, _Component); + + function Portal() { + _classCallCheck(this, Portal); + + return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments)); + } + + _createClass(Portal, [{ + key: 'componentWillMount', + value: function componentWillMount() { + this.popup = document.createElement('div'); + document.body.appendChild(this.popup); + this.renderLayer(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.renderLayer(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (!useCreatePortal) { + _reactDom2.default.unmountComponentAtNode(this.popup); + } + document.body.removeChild(this.popup); + } + }, { + key: 'renderLayer', + value: function renderLayer() { + if (!useCreatePortal) { + _reactDom2.default.unstable_renderSubtreeIntoContainer(this, this.props.children, this.popup); + } + } + }, { + key: 'render', + value: function render() { + if (useCreatePortal) { + return _reactDom2.default.createPortal(this.props.children, this.popup); + } + return null; + } + }]); + + return Portal; +}(_react.Component); + +Portal.propTypes = { + children: _propTypes2.default.node // eslint-disable-line +}; + +exports.default = Portal; + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Arrow.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var Arrow = function Arrow(props, context) { + var _props$component = props.component, + component = _props$component === undefined ? 'span' : _props$component, + innerRef = props.innerRef, + children = props.children, + restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']); + + var popper = context.popper; + + var arrowRef = function arrowRef(node) { + popper.setArrowNode(node); + if (typeof innerRef === 'function') { + innerRef(node); + } + }; + var arrowStyle = popper.getArrowStyle(); + + if (typeof children === 'function') { + var arrowProps = { + ref: arrowRef, + style: arrowStyle + }; + return children({ arrowProps: arrowProps, restProps: restProps }); + } + + var componentProps = _extends({}, restProps, { + style: _extends({}, arrowStyle, restProps.style) + }); + + if (typeof component === 'string') { + componentProps.ref = arrowRef; + } else { + componentProps.innerRef = arrowRef; + } + + return (0, _react.createElement)(component, componentProps, children); +}; + +Arrow.contextTypes = { + popper: _propTypes2.default.object.isRequired +}; + +Arrow.propTypes = { + component: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), + innerRef: _propTypes2.default.func, + children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) +}; + +exports.default = Arrow; + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Manager.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Manager = function (_Component) { + _inherits(Manager, _Component); + + function Manager() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Manager); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Manager.__proto__ || Object.getPrototypeOf(Manager)).call.apply(_ref, [this].concat(args))), _this), _this._setTargetNode = function (node) { + _this._targetNode = node; + }, _this._getTargetNode = function () { + return _this._targetNode; + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Manager, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + popperManager: { + setTargetNode: this._setTargetNode, + getTargetNode: this._getTargetNode + } + }; + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + tag = _props.tag, + children = _props.children, + restProps = _objectWithoutProperties(_props, ['tag', 'children']); + + if (tag !== false) { + return (0, _react.createElement)(tag, restProps, children); + } else { + return children; + } + } + }]); + + return Manager; +}(_react.Component); + +Manager.childContextTypes = { + popperManager: _propTypes2.default.object.isRequired +}; +Manager.propTypes = { + tag: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]), + children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) +}; +Manager.defaultProps = { + tag: 'div' +}; +exports.default = Manager; + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Popper.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _popper = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js"); + +var _popper2 = _interopRequireDefault(_popper); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Popper = function (_Component) { + _inherits(Popper, _Component); + + function Popper() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Popper); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Popper.__proto__ || Object.getPrototypeOf(Popper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this._setArrowNode = function (node) { + _this._arrowNode = node; + }, _this._getTargetNode = function () { + return _this.context.popperManager.getTargetNode(); + }, _this._getOffsets = function (data) { + return Object.keys(data.offsets).map(function (key) { + return data.offsets[key]; + }); + }, _this._isDataDirty = function (data) { + if (_this.state.data) { + return JSON.stringify(_this._getOffsets(_this.state.data)) !== JSON.stringify(_this._getOffsets(data)); + } else { + return true; + } + }, _this._updateStateModifier = { + enabled: true, + order: 900, + fn: function fn(data) { + if (_this._isDataDirty(data)) { + _this.setState({ data: data }); + } + return data; + } + }, _this._getPopperStyle = function () { + var data = _this.state.data; + + + if (!_this._popper || !data) { + return { + position: 'absolute', + pointerEvents: 'none', + opacity: 0 + }; + } + + return _extends({ + position: data.offsets.popper.position + }, data.styles); + }, _this._getPopperPlacement = function () { + return _this.state.data ? _this.state.data.placement : undefined; + }, _this._getPopperHide = function () { + return !!_this.state.data && _this.state.data.hide ? '' : undefined; + }, _this._getArrowStyle = function () { + if (!_this.state.data || !_this.state.data.offsets.arrow) { + return {}; + } else { + var _this$state$data$offs = _this.state.data.offsets.arrow, + top = _this$state$data$offs.top, + left = _this$state$data$offs.left; + + return { top: top, left: left }; + } + }, _this._handlePopperRef = function (node) { + _this._popperNode = node; + if (node) { + _this._createPopper(); + } else { + _this._destroyPopper(); + } + if (_this.props.innerRef) { + _this.props.innerRef(node); + } + }, _this._scheduleUpdate = function () { + _this._popper && _this._popper.scheduleUpdate(); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Popper, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + popper: { + setArrowNode: this._setArrowNode, + getArrowStyle: this._getArrowStyle + } + }; + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(lastProps) { + if (lastProps.placement !== this.props.placement || lastProps.eventsEnabled !== this.props.eventsEnabled) { + this._destroyPopper(); + this._createPopper(); + } + if (lastProps.children !== this.props.children) { + this._scheduleUpdate(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this._destroyPopper(); + } + }, { + key: '_createPopper', + value: function _createPopper() { + var _this2 = this; + + var _props = this.props, + placement = _props.placement, + eventsEnabled = _props.eventsEnabled; + + var modifiers = _extends({}, this.props.modifiers, { + applyStyle: { enabled: false }, + updateState: this._updateStateModifier + }); + if (this._arrowNode) { + modifiers.arrow = { + element: this._arrowNode + }; + } + this._popper = new _popper2.default(this._getTargetNode(), this._popperNode, { + placement: placement, + eventsEnabled: eventsEnabled, + modifiers: modifiers + }); + + // TODO: look into setTimeout scheduleUpdate call, without it, the popper will not position properly on creation + setTimeout(function () { + return _this2._scheduleUpdate(); + }); + } + }, { + key: '_destroyPopper', + value: function _destroyPopper() { + if (this._popper) { + this._popper.destroy(); + } + } + }, { + key: 'render', + value: function render() { + var _props2 = this.props, + component = _props2.component, + innerRef = _props2.innerRef, + placement = _props2.placement, + eventsEnabled = _props2.eventsEnabled, + modifiers = _props2.modifiers, + children = _props2.children, + restProps = _objectWithoutProperties(_props2, ['component', 'innerRef', 'placement', 'eventsEnabled', 'modifiers', 'children']); + + var popperStyle = this._getPopperStyle(); + var popperPlacement = this._getPopperPlacement(); + var popperHide = this._getPopperHide(); + + if (typeof children === 'function') { + var popperProps = { + ref: this._handlePopperRef, + style: popperStyle, + 'data-placement': popperPlacement, + 'data-x-out-of-boundaries': popperHide + }; + return children({ + popperProps: popperProps, + restProps: restProps, + scheduleUpdate: this._scheduleUpdate + }); + } + + var componentProps = _extends({}, restProps, { + style: _extends({}, restProps.style, popperStyle), + 'data-placement': popperPlacement, + 'data-x-out-of-boundaries': popperHide + }); + + if (typeof component === 'string') { + componentProps.ref = this._handlePopperRef; + } else { + componentProps.innerRef = this._handlePopperRef; + } + + return (0, _react.createElement)(component, componentProps, children); + } + }]); + + return Popper; +}(_react.Component); + +Popper.contextTypes = { + popperManager: _propTypes2.default.object.isRequired +}; +Popper.childContextTypes = { + popper: _propTypes2.default.object.isRequired +}; +Popper.propTypes = { + component: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), + innerRef: _propTypes2.default.func, + placement: _propTypes2.default.oneOf(_popper2.default.placements), + eventsEnabled: _propTypes2.default.bool, + modifiers: _propTypes2.default.object, + children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) +}; +Popper.defaultProps = { + component: 'div', + placement: 'bottom', + eventsEnabled: true, + modifiers: {} +}; +exports.default = Popper; + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Target.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var Target = function Target(props, context) { + var _props$component = props.component, + component = _props$component === undefined ? 'div' : _props$component, + innerRef = props.innerRef, + children = props.children, + restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']); + + var popperManager = context.popperManager; + + var targetRef = function targetRef(node) { + popperManager.setTargetNode(node); + if (typeof innerRef === 'function') { + innerRef(node); + } + }; + + if (typeof children === 'function') { + var targetProps = { ref: targetRef }; + return children({ targetProps: targetProps, restProps: restProps }); + } + + var componentProps = _extends({}, restProps); + + if (typeof component === 'string') { + componentProps.ref = targetRef; + } else { + componentProps.innerRef = targetRef; + } + + return (0, _react.createElement)(component, componentProps, children); +}; + +Target.contextTypes = { + popperManager: _propTypes2.default.object.isRequired +}; + +Target.propTypes = { + component: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), + innerRef: _propTypes2.default.func, + children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) +}; + +exports.default = Target; + +/***/ }), + +/***/ "./node_modules/react-popper/lib/react-popper.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Manager = __webpack_require__("./node_modules/react-popper/lib/Manager.js"); + +Object.defineProperty(exports, 'Manager', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Manager).default; + } +}); + +var _Target = __webpack_require__("./node_modules/react-popper/lib/Target.js"); + +Object.defineProperty(exports, 'Target', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Target).default; + } +}); + +var _Popper = __webpack_require__("./node_modules/react-popper/lib/Popper.js"); + +Object.defineProperty(exports, 'Popper', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Popper).default; + } +}); + +var _Arrow = __webpack_require__("./node_modules/react-popper/lib/Arrow.js"); + +Object.defineProperty(exports, 'Arrow', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Arrow).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/immutable.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _reactRedux = __webpack_require__("./node_modules/react-redux/es/index.js"); + +var _loading_bar = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar.js"); + +var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +var mapImmutableStateToProps = function mapImmutableStateToProps(state, ownProps) { + return { + loading: state.get('loadingBar')[ownProps.scope || _loading_bar_ducks.DEFAULT_SCOPE] + }; +}; + +exports.default = (0, _reactRedux.connect)(mapImmutableStateToProps)(_loading_bar.LoadingBar); + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.showLoading = exports.resetLoading = exports.loadingBarReducer = exports.loadingBarMiddleware = exports.LoadingBar = exports.ImmutableLoadingBar = exports.hideLoading = undefined; + +var _loading_bar = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar.js"); + +var _loading_bar2 = _interopRequireDefault(_loading_bar); + +var _loading_bar_middleware = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_middleware.js"); + +var _loading_bar_middleware2 = _interopRequireDefault(_loading_bar_middleware); + +var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +var _immutable = __webpack_require__("./node_modules/react-redux-loading-bar/build/immutable.js"); + +var _immutable2 = _interopRequireDefault(_immutable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.hideLoading = _loading_bar_ducks.hideLoading; +exports.ImmutableLoadingBar = _immutable2.default; +exports.LoadingBar = _loading_bar.LoadingBar; +exports.loadingBarMiddleware = _loading_bar_middleware2.default; +exports.loadingBarReducer = _loading_bar_ducks.loadingBarReducer; +exports.resetLoading = _loading_bar_ducks.resetLoading; +exports.showLoading = _loading_bar_ducks.showLoading; +exports.default = _loading_bar2.default; + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/loading_bar.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LoadingBar = exports.TERMINATING_ANIMATION_TIME = exports.ANIMATION_TIME = exports.PROGRESS_INCREASE = exports.MAX_PROGRESS = exports.UPDATE_TIME = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _reactRedux = __webpack_require__("./node_modules/react-redux/es/index.js"); + +var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var UPDATE_TIME = exports.UPDATE_TIME = 200; +var MAX_PROGRESS = exports.MAX_PROGRESS = 99; +var PROGRESS_INCREASE = exports.PROGRESS_INCREASE = 10; +var ANIMATION_TIME = exports.ANIMATION_TIME = UPDATE_TIME * 4; +var TERMINATING_ANIMATION_TIME = exports.TERMINATING_ANIMATION_TIME = UPDATE_TIME / 2; + +var initialState = { + terminatingAnimationTimeout: null, + percent: 0, + progressInterval: null +}; + +var LoadingBar = exports.LoadingBar = function (_Component) { + _inherits(LoadingBar, _Component); + + function LoadingBar() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, LoadingBar); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LoadingBar.__proto__ || Object.getPrototypeOf(LoadingBar)).call.apply(_ref, [this].concat(args))), _this), _this.state = _extends({}, initialState, { + hasMounted: false + }), _this.shouldStart = function (props, nextProps) { + return props.loading === 0 && nextProps.loading > 0; + }, _this.shouldStop = function (state, nextProps) { + return state.progressInterval && nextProps.loading === 0; + }, _this.newPercent = function (percent, progressIncrease) { + // Use cos as a smoothing function + // Can be any function to slow down progress near the 100% + var smoothedProgressIncrease = progressIncrease * Math.cos(percent * (Math.PI / 2 / 100)); + + return percent + smoothedProgressIncrease; + }, _this.simulateProgress = function () { + _this.setState(function (prevState, _ref2) { + var maxProgress = _ref2.maxProgress, + progressIncrease = _ref2.progressIncrease; + var progressInterval = prevState.progressInterval, + percent = prevState.percent, + terminatingAnimationTimeout = prevState.terminatingAnimationTimeout; + + var newPercent = _this.newPercent(percent, progressIncrease); + + if (percent === 100) { + clearInterval(progressInterval); + terminatingAnimationTimeout = setTimeout(_this.resetProgress, TERMINATING_ANIMATION_TIME); + progressInterval = null; + } else if (newPercent <= maxProgress) { + percent = newPercent; + } + + return { percent: percent, progressInterval: progressInterval, terminatingAnimationTimeout: terminatingAnimationTimeout }; + }); + }, _this.resetProgress = function () { + _this.setState(initialState); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(LoadingBar, [{ + key: 'componentDidMount', + value: function componentDidMount() { + // Re-render the component after mount to fix problems with SSR and CSP. + // + // Apps that use Server Side Rendering and has Content Security Policy + // for style that doesn't allow inline styles should render an empty div + // and replace it with the actual Loading Bar after mount + // See: https://github.com/mironov/react-redux-loading-bar/issues/39 + // + // eslint-disable-next-line react/no-did-mount-set-state + this.setState({ hasMounted: true }); + + if (this.props.loading > 0) { + this.launch(); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + var _this2 = this; + + if (this.shouldStart(this.props, nextProps)) { + this.launch(); + return; + } + + this.setState(function (prevState, props) { + if (_this2.shouldStop(prevState, nextProps)) { + if (prevState.percent === 0 && !props.showFastActions) { + // not even shown yet because the action finished quickly after start + clearInterval(prevState.progressInterval); + return initialState; + } + + // should progress to 100 percent + return { percent: 100 }; + } + + return null; + }); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearInterval(this.state.progressInterval); + clearTimeout(this.state.terminatingAnimationTimeout); + } + }, { + key: 'shouldShow', + value: function shouldShow() { + return this.state.percent > 0 && this.state.percent <= 100; + } + }, { + key: 'launch', + value: function launch() { + var _this3 = this; + + this.setState(function (prevState, _ref3) { + var updateTime = _ref3.updateTime; + var progressInterval = prevState.progressInterval; + var terminatingAnimationTimeout = prevState.terminatingAnimationTimeout, + percent = prevState.percent; + + + var loadingBarNotShown = !progressInterval; + var terminatingAnimationGoing = percent === 100; + + if (loadingBarNotShown) { + progressInterval = setInterval(_this3.simulateProgress, updateTime); + } + + if (terminatingAnimationGoing) { + clearTimeout(terminatingAnimationTimeout); + } + + return { progressInterval: progressInterval, percent: 0 }; + }); + } + }, { + key: 'buildStyle', + value: function buildStyle() { + var animationTime = this.state.percent !== 100 ? ANIMATION_TIME : TERMINATING_ANIMATION_TIME; + + var style = { + opacity: '1', + transform: 'scaleX(' + this.state.percent / 100 + ')', + transformOrigin: 'left', + transition: 'transform ' + animationTime + 'ms linear', + width: '100%', + willChange: 'transform, opacity' + + // Use default styling if there's no CSS class applied + };if (!this.props.className) { + style.height = '3px'; + style.backgroundColor = 'red'; + style.position = 'absolute'; + } + + if (this.shouldShow()) { + style.opacity = '1'; + } else { + style.opacity = '0'; + } + + return _extends({}, style, this.props.style); + } + }, { + key: 'render', + value: function render() { + // In order not to violate strict style CSP it's better to make + // an extra re-render after component mount + if (!this.state.hasMounted) { + return _react2.default.createElement('div', null); + } + + return _react2.default.createElement( + 'div', + null, + _react2.default.createElement('div', { style: this.buildStyle(), className: this.props.className }), + _react2.default.createElement('div', { style: { display: 'table', clear: 'both' } }) + ); + } + }]); + + return LoadingBar; +}(_react.Component); + +LoadingBar.propTypes = { + className: _propTypes.string, + loading: _propTypes.number, + maxProgress: _propTypes.number, + progressIncrease: _propTypes.number, + showFastActions: _propTypes.bool, + updateTime: _propTypes.number, + scope: _propTypes.string, + style: _propTypes.object +}; +LoadingBar.defaultProps = { + className: '', + loading: 0, + maxProgress: MAX_PROGRESS, + progressIncrease: PROGRESS_INCREASE, + showFastActions: false, + style: {}, + updateTime: UPDATE_TIME, + scope: _loading_bar_ducks.DEFAULT_SCOPE +}; + + +var mapStateToProps = function mapStateToProps(state, ownProps) { + return { + loading: state.loadingBar[ownProps.scope || _loading_bar_ducks.DEFAULT_SCOPE] + }; +}; + +exports.default = (0, _reactRedux.connect)(mapStateToProps)(LoadingBar); + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +exports.showLoading = showLoading; +exports.hideLoading = hideLoading; +exports.resetLoading = resetLoading; +exports.loadingBarReducer = loadingBarReducer; + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +var SHOW = exports.SHOW = 'loading-bar/SHOW'; +var HIDE = exports.HIDE = 'loading-bar/HIDE'; +var RESET = exports.RESET = 'loading-bar/RESET'; + +var DEFAULT_SCOPE = exports.DEFAULT_SCOPE = 'default'; + +function showLoading() { + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; + + return { + type: SHOW, + payload: { + scope: scope + } + }; +} + +function hideLoading() { + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; + + return { + type: HIDE, + payload: { + scope: scope + } + }; +} + +function resetLoading() { + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; + + return { + type: RESET, + payload: { + scope: scope + } + }; +} + +function loadingBarReducer() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var _ref = action.payload || {}, + _ref$scope = _ref.scope, + scope = _ref$scope === undefined ? DEFAULT_SCOPE : _ref$scope; + + switch (action.type) { + case SHOW: + return _extends({}, state, _defineProperty({}, scope, (state[scope] || 0) + 1)); + case HIDE: + return _extends({}, state, _defineProperty({}, scope, Math.max(0, (state[scope] || 1) - 1))); + case RESET: + return _extends({}, state, _defineProperty({}, scope, 0)); + default: + return state; + } +} + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/loading_bar_middleware.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +exports.default = loadingBarMiddleware; + +var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +var defaultTypeSuffixes = ['PENDING', 'FULFILLED', 'REJECTED']; + +function loadingBarMiddleware() { + var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var promiseTypeSuffixes = config.promiseTypeSuffixes || defaultTypeSuffixes; + var scope = config.scope || _loading_bar_ducks.DEFAULT_SCOPE; + + return function (_ref) { + var dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type) { + var _promiseTypeSuffixes = _slicedToArray(promiseTypeSuffixes, 3), + PENDING = _promiseTypeSuffixes[0], + FULFILLED = _promiseTypeSuffixes[1], + REJECTED = _promiseTypeSuffixes[2]; + + var isPending = new RegExp(PENDING + '$', 'g'); + var isFulfilled = new RegExp(FULFILLED + '$', 'g'); + var isRejected = new RegExp(REJECTED + '$', 'g'); + + var actionScope = action.scope || scope; + + if (action.type.match(isPending)) { + dispatch((0, _loading_bar_ducks.showLoading)(actionScope)); + } else if (action.type.match(isFulfilled) || action.type.match(isRejected)) { + dispatch((0, _loading_bar_ducks.hideLoading)(actionScope)); + } + } + + return next(action); + }; + }; + }; +} + +/***/ }), + +/***/ "./node_modules/react-responsive-modal/lib/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _reactJss = __webpack_require__("./node_modules/react-jss/lib/index.js"); + +var _reactJss2 = _interopRequireDefault(_reactJss); + +var _modal = __webpack_require__("./node_modules/react-responsive-modal/lib/modal.js"); + +var _modal2 = _interopRequireDefault(_modal); + +var _styles = __webpack_require__("./node_modules/react-responsive-modal/lib/styles.js"); + +var _styles2 = _interopRequireDefault(_styles); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = (0, _reactJss2.default)(_styles2.default)(_modal2.default); + +/***/ }), + +/***/ "./node_modules/react-responsive-modal/lib/modal.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactMinimalistPortal = __webpack_require__("./node_modules/react-minimalist-portal/lib/portal.js"); + +var _reactMinimalistPortal2 = _interopRequireDefault(_reactMinimalistPortal); + +var _CSSTransition = __webpack_require__("./node_modules/react-transition-group/CSSTransition.js"); + +var _CSSTransition2 = _interopRequireDefault(_CSSTransition); + +var _classnames = __webpack_require__("./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _noScroll = __webpack_require__("./node_modules/no-scroll/index.js"); + +var _noScroll2 = _interopRequireDefault(_noScroll); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Modal = function (_Component) { + _inherits(Modal, _Component); + + function Modal(props) { + _classCallCheck(this, Modal); + + var _this = _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).call(this, props)); + + _this.onClickOverlay = function (e) { + var _this$props = _this.props, + classes = _this$props.classes, + closeOnOverlayClick = _this$props.closeOnOverlayClick; + + if (!closeOnOverlayClick || typeof e.target.className !== 'string') { + return; + } + var className = e.target.className.split(' '); + if (className.indexOf(classes.overlay) !== -1) { + e.stopPropagation(); + _this.props.onClose(); + } + }; + + _this.onClickCloseIcon = function (e) { + e.stopPropagation(); + _this.props.onClose(); + }; + + _this.handleKeydown = function (e) { + if (e.keyCode === 27) { + _this.props.onClose(); + } + }; + + _this.handleExited = function () { + _this.setState({ showPortal: false }); + _this.unblockScroll(); + }; + + _this.unblockScroll = function () { + var openedModals = document.getElementsByClassName(_this.props.classes.modal); + if (openedModals.length === 1) { + _noScroll2.default.off(); + } + }; + + _this.state = { + showPortal: props.open + }; + return _this; + } + + _createClass(Modal, [{ + key: 'componentDidMount', + value: function componentDidMount() { + if (this.props.closeOnEsc) { + document.addEventListener('keydown', this.handleKeydown); + } + // Block scroll when initial prop is open + if (this.props.open) { + this.blockScroll(); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + var _this2 = this; + + if (!this.props.open && nextProps.open) { + this.setState({ + showPortal: true + }, function () { + _this2.blockScroll(); + }); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.props.closeOnEsc) { + document.removeEventListener('keydown', this.handleKeydown); + } + this.unblockScroll(); + if (this.timeout) { + clearTimeout(this.timeout); + } + } + }, { + key: 'blockScroll', + + + // eslint-disable-next-line class-methods-use-this + value: function blockScroll() { + _noScroll2.default.on(); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + open = _props.open, + little = _props.little, + classes = _props.classes, + classNames = _props.classNames, + styles = _props.styles, + showCloseIcon = _props.showCloseIcon, + closeIconSize = _props.closeIconSize, + closeIconSvgPath = _props.closeIconSvgPath, + animationDuration = _props.animationDuration; + var showPortal = this.state.showPortal; + + if (!showPortal) return null; + return _react2.default.createElement( + _reactMinimalistPortal2.default, + null, + _react2.default.createElement( + _CSSTransition2.default, + { + 'in': open, + appear: true, + classNames: { + appear: classNames.transitionEnter || classes.transitionEnter, + appearActive: classNames.transitionEnterActive || classes.transitionEnterActive, + enter: classNames.transitionEnter || classes.transitionEnter, + enterActive: classNames.transitionEnterActive || classes.transitionEnterActive, + exit: classNames.transitionExit || classes.transitionExit, + exitActive: classNames.transitionExitActive || classes.transitionExitActive + }, + timeout: animationDuration, + onExited: this.handleExited + }, + _react2.default.createElement( + 'div', + { + className: (0, _classnames2.default)(classes.overlay, little ? classes.overlayLittle : null, classNames.overlay), + onMouseDown: this.onClickOverlay, + style: styles.overlay + }, + _react2.default.createElement( + 'div', + { + className: (0, _classnames2.default)(classes.modal, classNames.modal), + style: styles.modal + }, + showCloseIcon ? _react2.default.createElement( + 'svg', + { + className: (0, _classnames2.default)(classes.closeIcon, classNames.closeIcon), + style: styles.closeIcon, + onClick: this.onClickCloseIcon, + xmlns: 'http://www.w3.org/2000/svg', + width: closeIconSize, + height: closeIconSize, + viewBox: '0 0 36 36' + }, + closeIconSvgPath + ) : null, + this.props.children + ) + ) + ) + ); + } + }]); + + return Modal; +}(_react.Component); + +Modal.propTypes = { + closeOnEsc: _propTypes2.default.bool, + closeOnOverlayClick: _propTypes2.default.bool, + onClose: _propTypes2.default.func.isRequired, + open: _propTypes2.default.bool.isRequired, + classNames: _propTypes2.default.object, + styles: _propTypes2.default.object, + children: _propTypes2.default.node, + classes: _propTypes2.default.object.isRequired, + little: _propTypes2.default.bool, + showCloseIcon: _propTypes2.default.bool, + closeIconSize: _propTypes2.default.number, + closeIconSvgPath: _propTypes2.default.node, + animationDuration: _propTypes2.default.number +}; + +Modal.defaultProps = { + closeOnEsc: true, + closeOnOverlayClick: true, + showCloseIcon: true, + closeIconSize: 28, + closeIconSvgPath: _react2.default.createElement('path', { d: 'M28.5 9.62L26.38 7.5 18 15.88 9.62 7.5 7.5 9.62 15.88 18 7.5 26.38l2.12 2.12L18 20.12l8.38 8.38 2.12-2.12L20.12 18z' }), + classNames: {}, + styles: {}, + children: null, + little: false, + animationDuration: 500 +}; + +exports.default = Modal; + +/***/ }), + +/***/ "./node_modules/react-responsive-modal/lib/styles.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = { + overlay: { + background: 'rgba(0, 0, 0, 0.75)', + display: 'flex', + alignItems: 'flex-start', + justifyContent: 'center', + position: 'fixed', + top: 0, + left: 0, + right: 0, + bottom: 0, + overflowY: 'auto', + overflowX: 'hidden', + zIndex: 1000, + padding: '1.2rem' + }, + overlayLittle: { + alignItems: 'center' + }, + modal: { + maxWidth: 800, + position: 'relative', + padding: '1.2rem', + background: '#ffffff', + backgroundClip: 'padding-box', + boxShadow: '0 12px 15px 0 rgba(0,0,0,0.25)' + }, + closeIcon: { + position: 'absolute', + top: '14px', + right: '14px', + cursor: 'pointer' + }, + transitionEnter: { + opacity: '0.01' + }, + transitionEnterActive: { + opacity: 1, + transition: 'opacity 500ms cubic-bezier(0.23, 1, 0.32, 1)' + }, + transitionExit: { + opacity: 1 + }, + transitionExitActive: { + opacity: '0.01', + transition: 'opacity 500ms cubic-bezier(0.23, 1, 0.32, 1)' + } +}; + +/***/ }), + +/***/ "./node_modules/react-scrollbar-size/ScrollbarSize.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); + +var _reactEventListener2 = _interopRequireDefault(_reactEventListener); + +var _stifle = __webpack_require__("./node_modules/stifle/index.js"); + +var _stifle2 = _interopRequireDefault(_stifle); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var styles = { + width: '100px', + height: '100px', + position: 'absolute', + top: '-100000px', + overflow: 'scroll', + msOverflowStyle: 'scrollbar' +}; + +var ScrollbarSize = function (_Component) { + (0, _inherits3.default)(ScrollbarSize, _Component); + + function ScrollbarSize() { + var _ref; + + var _temp, _this, _ret; + + (0, _classCallCheck3.default)(this, ScrollbarSize); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ScrollbarSize.__proto__ || (0, _getPrototypeOf2.default)(ScrollbarSize)).call.apply(_ref, [this].concat(args))), _this), _this.setMeasurements = function () { + _this.scrollbarHeight = _this.node.offsetHeight - _this.node.clientHeight; + _this.scrollbarWidth = _this.node.offsetWidth - _this.node.clientWidth; + }, _this.handleResize = (0, _stifle2.default)(function () { + var onChange = _this.props.onChange; + + + var prevHeight = _this.scrollbarHeight; + var prevWidth = _this.scrollbarWidth; + _this.setMeasurements(); + if (prevHeight !== _this.scrollbarHeight || prevWidth !== _this.scrollbarWidth) { + onChange({ scrollbarHeight: _this.scrollbarHeight, scrollbarWidth: _this.scrollbarWidth }); + } + }, 166), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + + (0, _createClass3.default)(ScrollbarSize, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var onLoad = this.props.onLoad; + + + if (onLoad) { + this.setMeasurements(); + onLoad({ scrollbarHeight: this.scrollbarHeight, scrollbarWidth: this.scrollbarWidth }); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.handleResize.cancel(); + } + }, { + key: 'render', + // Corresponds to 10 frames at 60 Hz. + + value: function render() { + var _this2 = this; + + var onChange = this.props.onChange; + + + return _react2.default.createElement( + 'div', + null, + onChange ? _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }) : null, + _react2.default.createElement('div', { + style: styles, + ref: function ref(node) { + _this2.node = node; + } + }) + ); + } + }]); + return ScrollbarSize; +}(_react.Component); + +ScrollbarSize.defaultProps = { + onLoad: null, + onChange: null +}; +exports.default = ScrollbarSize; + +/***/ }), + +/***/ "./node_modules/react-scrollbar-size/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _ScrollbarSize = __webpack_require__("./node_modules/react-scrollbar-size/ScrollbarSize.js"); + +var _ScrollbarSize2 = _interopRequireDefault(_ScrollbarSize); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _ScrollbarSize2.default; + +/***/ }), + +/***/ "./node_modules/react-transition-group/CSSTransition.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var PropTypes = _interopRequireWildcard(_propTypes); + +var _addClass = __webpack_require__("./node_modules/dom-helpers/class/addClass.js"); + +var _addClass2 = _interopRequireDefault(_addClass); + +var _removeClass = __webpack_require__("./node_modules/dom-helpers/class/removeClass.js"); + +var _removeClass2 = _interopRequireDefault(_removeClass); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +var _PropTypes = __webpack_require__("./node_modules/react-transition-group/utils/PropTypes.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var addClass = function addClass(node, classes) { + return classes && classes.split(' ').forEach(function (c) { + return (0, _addClass2.default)(node, c); + }); +}; +var removeClass = function removeClass(node, classes) { + return classes && classes.split(' ').forEach(function (c) { + return (0, _removeClass2.default)(node, c); + }); +}; + +var propTypes = _extends({}, _Transition2.default.propTypes, { + + /** + * The animation classNames applied to the component as it enters or exits. + * A single name can be provided and it will be suffixed for each stage: e.g. + * + * `classNames="fade"` applies `fade-enter`, `fade-enter-active`, + * `fade-exit`, `fade-exit-active`, `fade-appear`, and `fade-appear-active`. + * Each individual classNames can also be specified independently like: + * + * ```js + * classNames={{ + * appear: 'my-appear', + * appearActive: 'my-active-appear', + * enter: 'my-enter', + * enterActive: 'my-active-enter', + * exit: 'my-exit', + * exitActive: 'my-active-exit', + * }} + * ``` + * + * @type {string | { + * appear?: string, + * appearActive?: string, + * enter?: string, + * enterActive?: string, + * exit?: string, + * exitActive?: string, + * }} + */ + classNames: _PropTypes.classNamesShape, + + /** + * A `` callback fired immediately after the 'enter' or 'appear' class is + * applied. + * + * @type Function(node: HtmlElement, isAppearing: bool) + */ + onEnter: PropTypes.func, + + /** + * A `` callback fired immediately after the 'enter-active' or + * 'appear-active' class is applied. + * + * @type Function(node: HtmlElement, isAppearing: bool) + */ + onEntering: PropTypes.func, + + /** + * A `` callback fired immediately after the 'enter' or + * 'appear' classes are **removed** from the DOM node. + * + * @type Function(node: HtmlElement, isAppearing: bool) + */ + onEntered: PropTypes.func, + + /** + * A `` callback fired immediately after the 'exit' class is + * applied. + * + * @type Function(node: HtmlElement) + */ + onExit: PropTypes.func, + + /** + * A `` callback fired immediately after the 'exit-active' is applied. + * + * @type Function(node: HtmlElement + */ + onExiting: PropTypes.func, + + /** + * A `` callback fired immediately after the 'exit' classes + * are **removed** from the DOM node. + * + * @type Function(node: HtmlElement) + */ + onExited: PropTypes.func +}); + +/** + * A `Transition` component using CSS transitions and animations. + * It's inspired by the excellent [ng-animate](http://www.nganimate.org/) library. + * + * `CSSTransition` applies a pair of class names during the `appear`, `enter`, + * and `exit` stages of the transition. The first class is applied and then a + * second "active" class in order to activate the css animation. + * + * When the `in` prop is toggled to `true` the Component will get + * the `example-enter` CSS class and the `example-enter-active` CSS class + * added in the next tick. This is a convention based on the `classNames` prop. + * + * ```js + * import CSSTransition from 'react-transition-group/CSSTransition'; + * + * const Fade = ({ children, ...props }) => ( + * + * {children} + * + * ); + * + * class FadeInAndOut extends React.Component { + * constructor(...args) { + * super(...args); + * this.state= { show: false } + * + * setInterval(() => { + * this.setState({ show: !this.state.show }) + * }, 5000) + * } + * render() { + * return ( + * + *
Hello world
+ *
+ * ) + * } + * } + * ``` + * + * And the coorresponding CSS for the `` component: + * + * ```css + * .fade-enter { + * opacity: 0.01; + * } + * + * .fade-enter.fade-enter-active { + * opacity: 1; + * transition: opacity 500ms ease-in; + * } + * + * .fade-exit { + * opacity: 1; + * } + * + * .fade-exit.fade-exit-active { + * opacity: 0.01; + * transition: opacity 300ms ease-in; + * } + * ``` + */ + +var CSSTransition = function (_React$Component) { + _inherits(CSSTransition, _React$Component); + + function CSSTransition() { + var _temp, _this, _ret; + + _classCallCheck(this, CSSTransition); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onEnter = function (node, appearing) { + var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'), + className = _this$getClassNames.className; + + _this.removeClasses(node, 'exit'); + addClass(node, className); + + if (_this.props.onEnter) { + _this.props.onEnter(node); + } + }, _this.onEntering = function (node, appearing) { + var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'), + activeClassName = _this$getClassNames2.activeClassName; + + _this.reflowAndAddClass(node, activeClassName); + + if (_this.props.onEntering) { + _this.props.onEntering(node); + } + }, _this.onEntered = function (node, appearing) { + _this.removeClasses(node, appearing ? 'appear' : 'enter'); + + if (_this.props.onEntered) { + _this.props.onEntered(node); + } + }, _this.onExit = function (node) { + var _this$getClassNames3 = _this.getClassNames('exit'), + className = _this$getClassNames3.className; + + _this.removeClasses(node, 'appear'); + _this.removeClasses(node, 'enter'); + addClass(node, className); + + if (_this.props.onExit) { + _this.props.onExit(node); + } + }, _this.onExiting = function (node) { + var _this$getClassNames4 = _this.getClassNames('exit'), + activeClassName = _this$getClassNames4.activeClassName; + + _this.reflowAndAddClass(node, activeClassName); + + if (_this.props.onExiting) { + _this.props.onExiting(node); + } + }, _this.onExited = function (node) { + _this.removeClasses(node, 'exit'); + + if (_this.props.onExited) { + _this.props.onExited(node); + } + }, _this.getClassNames = function (type) { + var classNames = _this.props.classNames; + + + var className = typeof classNames !== 'string' ? classNames[type] : classNames + '-' + type; + + var activeClassName = typeof classNames !== 'string' ? classNames[type + 'Active'] : className + '-active'; + + return { className: className, activeClassName: activeClassName }; + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + CSSTransition.prototype.removeClasses = function removeClasses(node, type) { + var _getClassNames = this.getClassNames(type), + className = _getClassNames.className, + activeClassName = _getClassNames.activeClassName; + + className && removeClass(node, className); + activeClassName && removeClass(node, activeClassName); + }; + + CSSTransition.prototype.reflowAndAddClass = function reflowAndAddClass(node, className) { + // This is for to force a repaint, + // which is necessary in order to transition styles when adding a class name. + /* eslint-disable no-unused-expressions */ + node.scrollTop; + /* eslint-enable no-unused-expressions */ + addClass(node, className); + }; + + CSSTransition.prototype.render = function render() { + var props = _extends({}, this.props); + + delete props.classNames; + + return _react2.default.createElement(_Transition2.default, _extends({}, props, { + onEnter: this.onEnter, + onEntered: this.onEntered, + onEntering: this.onEntering, + onExit: this.onExit, + onExiting: this.onExiting, + onExited: this.onExited + })); + }; + + return CSSTransition; +}(_react2.default.Component); + +CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {}; + +exports.default = CSSTransition; +module.exports = exports['default']; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/react-transition-group/Transition.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +exports.__esModule = true; +exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined; + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var PropTypes = _interopRequireWildcard(_propTypes); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _PropTypes = __webpack_require__("./node_modules/react-transition-group/utils/PropTypes.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var UNMOUNTED = exports.UNMOUNTED = 'unmounted'; +var EXITED = exports.EXITED = 'exited'; +var ENTERING = exports.ENTERING = 'entering'; +var ENTERED = exports.ENTERED = 'entered'; +var EXITING = exports.EXITING = 'exiting'; + +/** + * The Transition component lets you describe a transition from one component + * state to another _over time_ with a simple declarative API. Most commonly + * it's used to animate the mounting and unmounting of a component, but can also + * be used to describe in-place transition states as well. + * + * By default the `Transition` component does not alter the behavior of the + * component it renders, it only tracks "enter" and "exit" states for the components. + * It's up to you to give meaning and effect to those states. For example we can + * add styles to a component when it enters or exits: + * + * ```jsx + * import Transition from 'react-transition-group/Transition'; + * + * const duration = 300; + * + * const defaultStyle = { + * transition: `opacity ${duration}ms ease-in-out`, + * opacity: 0, + * } + * + * const transitionStyles = { + * entering: { opacity: 0 }, + * entered: { opacity: 1 }, + * }; + * + * const Fade = ({ in: inProp }) => ( + * + * {(state) => ( + *
+ * I'm A fade Transition! + *
+ * )} + *
+ * ); + * ``` + * + * As noted the `Transition` component doesn't _do_ anything by itself to its child component. + * What it does do is track transition states over time so you can update the + * component (such as by adding styles or classes) when it changes states. + * + * There are 4 main states a Transition can be in: + * - `ENTERING` + * - `ENTERED` + * - `EXITING` + * - `EXITED` + * + * Transition state is toggled via the `in` prop. When `true` the component begins the + * "Enter" stage. During this stage, the component will shift from its current transition state, + * to `'entering'` for the duration of the transition and then to the `'entered'` stage once + * it's complete. Let's take the following example: + * + * ```jsx + * state= { in: false }; + * + * toggleEnterState = () => { + * this.setState({ in: true }); + * } + * + * render() { + * return ( + *
+ * + * + *
+ * ); + * } + * ``` + * + * When the button is clicked the component will shift to the `'entering'` state and + * stay there for 500ms (the value of `timeout`) when finally switches to `'entered'`. + * + * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`. + */ + +var Transition = function (_React$Component) { + _inherits(Transition, _React$Component); + + function Transition(props, context) { + _classCallCheck(this, Transition); + + var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); + + var parentGroup = context.transitionGroup; + // In the context of a TransitionGroup all enters are really appears + var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear; + + var initialStatus = void 0; + _this.nextStatus = null; + + if (props.in) { + if (appear) { + initialStatus = EXITED; + _this.nextStatus = ENTERING; + } else { + initialStatus = ENTERED; + } + } else { + if (props.unmountOnExit || props.mountOnEnter) { + initialStatus = UNMOUNTED; + } else { + initialStatus = EXITED; + } + } + + _this.state = { status: initialStatus }; + + _this.nextCallback = null; + return _this; + } + + Transition.prototype.getChildContext = function getChildContext() { + return { transitionGroup: null }; // allows for nested Transitions + }; + + Transition.prototype.componentDidMount = function componentDidMount() { + this.updateStatus(true); + }; + + Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var _ref = this.pendingState || this.state, + status = _ref.status; + + if (nextProps.in) { + if (status === UNMOUNTED) { + this.setState({ status: EXITED }); + } + if (status !== ENTERING && status !== ENTERED) { + this.nextStatus = ENTERING; + } + } else { + if (status === ENTERING || status === ENTERED) { + this.nextStatus = EXITING; + } + } + }; + + Transition.prototype.componentDidUpdate = function componentDidUpdate() { + this.updateStatus(); + }; + + Transition.prototype.componentWillUnmount = function componentWillUnmount() { + this.cancelNextCallback(); + }; + + Transition.prototype.getTimeouts = function getTimeouts() { + var timeout = this.props.timeout; + + var exit = void 0, + enter = void 0, + appear = void 0; + + exit = enter = appear = timeout; + + if (timeout != null && typeof timeout !== 'number') { + exit = timeout.exit; + enter = timeout.enter; + appear = timeout.appear; + } + return { exit: exit, enter: enter, appear: appear }; + }; + + Transition.prototype.updateStatus = function updateStatus() { + var mounting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + var nextStatus = this.nextStatus; + + if (nextStatus !== null) { + this.nextStatus = null; + // nextStatus will always be ENTERING or EXITING. + this.cancelNextCallback(); + var node = _reactDom2.default.findDOMNode(this); + + if (nextStatus === ENTERING) { + this.performEnter(node, mounting); + } else { + this.performExit(node); + } + } else if (this.props.unmountOnExit && this.state.status === EXITED) { + this.setState({ status: UNMOUNTED }); + } + }; + + Transition.prototype.performEnter = function performEnter(node, mounting) { + var _this2 = this; + + var enter = this.props.enter; + + var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting; + + var timeouts = this.getTimeouts(); + + // no enter animation skip right to ENTERED + // if we are mounting and running this it means appear _must_ be set + if (!mounting && !enter) { + this.safeSetState({ status: ENTERED }, function () { + _this2.props.onEntered(node); + }); + return; + } + + this.props.onEnter(node, appearing); + + this.safeSetState({ status: ENTERING }, function () { + _this2.props.onEntering(node, appearing); + + // FIXME: appear timeout? + _this2.onTransitionEnd(node, timeouts.enter, function () { + _this2.safeSetState({ status: ENTERED }, function () { + _this2.props.onEntered(node, appearing); + }); + }); + }); + }; + + Transition.prototype.performExit = function performExit(node) { + var _this3 = this; + + var exit = this.props.exit; + + var timeouts = this.getTimeouts(); + + // no exit animation skip right to EXITED + if (!exit) { + this.safeSetState({ status: EXITED }, function () { + _this3.props.onExited(node); + }); + return; + } + this.props.onExit(node); + + this.safeSetState({ status: EXITING }, function () { + _this3.props.onExiting(node); + + _this3.onTransitionEnd(node, timeouts.exit, function () { + _this3.safeSetState({ status: EXITED }, function () { + _this3.props.onExited(node); + }); + }); + }); + }; + + Transition.prototype.cancelNextCallback = function cancelNextCallback() { + if (this.nextCallback !== null) { + this.nextCallback.cancel(); + this.nextCallback = null; + } + }; + + Transition.prototype.safeSetState = function safeSetState(nextState, callback) { + var _this4 = this; + + // We need to track pending updates for instances where a cWRP fires quickly + // after cDM and before the state flushes, which would double trigger a + // transition + this.pendingState = nextState; + + // This shouldn't be necessary, but there are weird race conditions with + // setState callbacks and unmounting in testing, so always make sure that + // we can cancel any pending setState callbacks after we unmount. + callback = this.setNextCallback(callback); + this.setState(nextState, function () { + _this4.pendingState = null; + callback(); + }); + }; + + Transition.prototype.setNextCallback = function setNextCallback(callback) { + var _this5 = this; + + var active = true; + + this.nextCallback = function (event) { + if (active) { + active = false; + _this5.nextCallback = null; + + callback(event); + } + }; + + this.nextCallback.cancel = function () { + active = false; + }; + + return this.nextCallback; + }; + + Transition.prototype.onTransitionEnd = function onTransitionEnd(node, timeout, handler) { + this.setNextCallback(handler); + + if (node) { + if (this.props.addEndListener) { + this.props.addEndListener(node, this.nextCallback); + } + if (timeout != null) { + setTimeout(this.nextCallback, timeout); + } + } else { + setTimeout(this.nextCallback, 0); + } + }; + + Transition.prototype.render = function render() { + var status = this.state.status; + if (status === UNMOUNTED) { + return null; + } + + var _props = this.props, + children = _props.children, + childProps = _objectWithoutProperties(_props, ['children']); + // filter props for Transtition + + + delete childProps.in; + delete childProps.mountOnEnter; + delete childProps.unmountOnExit; + delete childProps.appear; + delete childProps.enter; + delete childProps.exit; + delete childProps.timeout; + delete childProps.addEndListener; + delete childProps.onEnter; + delete childProps.onEntering; + delete childProps.onEntered; + delete childProps.onExit; + delete childProps.onExiting; + delete childProps.onExited; + + if (typeof children === 'function') { + return children(status, childProps); + } + + var child = _react2.default.Children.only(children); + return _react2.default.cloneElement(child, childProps); + }; + + return Transition; +}(_react2.default.Component); + +Transition.contextTypes = { + transitionGroup: PropTypes.object +}; +Transition.childContextTypes = { + transitionGroup: function transitionGroup() {} +}; + + +Transition.propTypes = process.env.NODE_ENV !== "production" ? { + /** + * A `function` child can be used instead of a React element. + * This function is called with the current transition status + * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can used + * to apply context specific props to a component. + * + * ```jsx + * + * {(status) => ( + * + * )} + * + * ``` + */ + children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired, + + /** + * Show the component; triggers the enter or exit states + */ + in: PropTypes.bool, + + /** + * By default the child component is mounted immediately along with + * the parent `Transition` component. If you want to "lazy mount" the component on the + * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay + * mounted, even on "exited", unless you also specify `unmountOnExit`. + */ + mountOnEnter: PropTypes.bool, + + /** + * By default the child component stays mounted after it reaches the `'exited'` state. + * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting. + */ + unmountOnExit: PropTypes.bool, + + /** + * Normally a component is not transitioned if it is shown when the `` component mounts. + * If you want to transition on the first mount set `appear` to `true`, and the + * component will transition in as soon as the `` mounts. + * + * > Note: there are no specific "appear" states. `appear` only adds an additional `enter` transition. + */ + appear: PropTypes.bool, + + /** + * Enable or disable enter transitions. + */ + enter: PropTypes.bool, + + /** + * Enable or disable exit transitions. + */ + exit: PropTypes.bool, + + /** + * The duration of the transition, in milliseconds. + * Required unless `addEventListener` is provided + * + * You may specify a single timeout for all transitions like: `timeout={500}`, + * or individually like: + * + * ```jsx + * timeout={{ + * enter: 300, + * exit: 500, + * }} + * ``` + * + * @type {number | { enter?: number, exit?: number }} + */ + timeout: function timeout(props) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var pt = _PropTypes.timeoutsShape; + if (!props.addEndListener) pt = pt.isRequired; + return pt.apply(undefined, [props].concat(args)); + }, + + /** + * Add a custom transition end trigger. Called with the transitioning + * DOM node and a `done` callback. Allows for more fine grained transition end + * logic. **Note:** Timeouts are still used as a fallback if provided. + * + * ```jsx + * addEndListener={(node, done) => { + * // use the css transitionend event to mark the finish of a transition + * node.addEventListener('transitionend', done, false); + * }} + * ``` + */ + addEndListener: PropTypes.func, + + /** + * Callback fired before the "entering" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) -> void + */ + onEnter: PropTypes.func, + + /** + * Callback fired after the "entering" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) + */ + onEntering: PropTypes.func, + + /** + * Callback fired after the "entered" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) -> void + */ + onEntered: PropTypes.func, + + /** + * Callback fired before the "exiting" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExit: PropTypes.func, + + /** + * Callback fired after the "exiting" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExiting: PropTypes.func, + + /** + * Callback fired after the "exited" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExited: PropTypes.func +} : {}; + +// Name the function so it is clearer in the documentation +function noop() {} + +Transition.defaultProps = { + in: false, + mountOnEnter: false, + unmountOnExit: false, + appear: false, + enter: true, + exit: true, + + onEnter: noop, + onEntering: noop, + onEntered: noop, + + onExit: noop, + onExiting: noop, + onExited: noop +}; + +Transition.UNMOUNTED = 0; +Transition.EXITED = 1; +Transition.ENTERING = 2; +Transition.ENTERED = 3; +Transition.EXITING = 4; + +exports.default = Transition; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/react-transition-group/TransitionGroup.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _react2 = _interopRequireDefault(_react); + +var _ChildMapping = __webpack_require__("./node_modules/react-transition-group/utils/ChildMapping.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var values = Object.values || function (obj) { + return Object.keys(obj).map(function (k) { + return obj[k]; + }); +}; + +var propTypes = { + /** + * `` renders a `
` by default. You can change this + * behavior by providing a `component` prop. + */ + component: _propTypes2.default.any, + /** + * A set of `` components, that are toggled `in` and out as they + * leave. the `` will inject specific transition props, so + * remember to spread them through if you are wrapping the `` as + * with our `` example. + */ + children: _propTypes2.default.node, + + /** + * A convenience prop that enables or disabled appear animations + * for all children. Note that specifying this will override any defaults set + * on individual children Transitions. + */ + appear: _propTypes2.default.bool, + /** + * A convenience prop that enables or disabled enter animations + * for all children. Note that specifying this will override any defaults set + * on individual children Transitions. + */ + enter: _propTypes2.default.bool, + /** + * A convenience prop that enables or disabled exit animations + * for all children. Note that specifying this will override any defaults set + * on individual children Transitions. + */ + exit: _propTypes2.default.bool, + + /** + * You may need to apply reactive updates to a child as it is exiting. + * This is generally done by using `cloneElement` however in the case of an exiting + * child the element has already been removed and not accessible to the consumer. + * + * If you do need to update a child as it leaves you can provide a `childFactory` + * to wrap every child, even the ones that are leaving. + * + * @type Function(child: ReactElement) -> ReactElement + */ + childFactory: _propTypes2.default.func +}; + +var defaultProps = { + component: 'div', + childFactory: function childFactory(child) { + return child; + } +}; + +/** + * The `` component manages a set of `` components + * in a list. Like with the `` component, ``, is a + * state machine for managing the mounting and unmounting of components over + * time. + * + * Consider the example below using the `Fade` CSS transition from before. + * As items are removed or added to the TodoList the `in` prop is toggled + * automatically by the ``. You can use _any_ `` + * component in a ``, not just css. + * + * ```jsx + * import TransitionGroup from 'react-transition-group/TransitionGroup'; + * + * class TodoList extends React.Component { + * constructor(props) { + * super(props) + * this.state = {items: ['hello', 'world', 'click', 'me']} + * } + * handleAdd() { + * const newItems = this.state.items.concat([ + * prompt('Enter some text') + * ]); + * this.setState({ items: newItems }); + * } + * handleRemove(i) { + * let newItems = this.state.items.slice(); + * newItems.splice(i, 1); + * this.setState({items: newItems}); + * } + * render() { + * return ( + *
+ * + * + * {this.state.items.map((item, i) => ( + * + *
+ * {item}{' '} + * + *
+ *
+ * ))} + *
+ *
+ * ); + * } + * } + * ``` + * + * Note that `` does not define any animation behavior! + * Exactly _how_ a list item animates is up to the individual `` + * components. This means you can mix and match animations across different + * list items. + */ + +var TransitionGroup = function (_React$Component) { + _inherits(TransitionGroup, _React$Component); + + function TransitionGroup(props, context) { + _classCallCheck(this, TransitionGroup); + + // Initial children should all be entering, dependent on appear + var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); + + _this.handleExited = function (key, node, originalHandler) { + var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children); + + if (key in currentChildMapping) return; + + if (originalHandler) originalHandler(node); + + _this.setState(function (state) { + var children = _extends({}, state.children); + + delete children[key]; + return { children: children }; + }); + }; + + _this.state = { + children: (0, _ChildMapping.getChildMapping)(props.children, function (child) { + var onExited = function onExited(node) { + _this.handleExited(child.key, node, child.props.onExited); + }; + + return (0, _react.cloneElement)(child, { + onExited: onExited, + in: true, + appear: _this.getProp(child, 'appear'), + enter: _this.getProp(child, 'enter'), + exit: _this.getProp(child, 'exit') + }); + }) + }; + return _this; + } + + TransitionGroup.prototype.getChildContext = function getChildContext() { + return { + transitionGroup: { isMounting: !this.appeared } + }; + }; + // use child config unless explictly set by the Group + + + TransitionGroup.prototype.getProp = function getProp(child, prop) { + var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props; + + return props[prop] != null ? props[prop] : child.props[prop]; + }; + + TransitionGroup.prototype.componentDidMount = function componentDidMount() { + this.appeared = true; + }; + + TransitionGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var _this2 = this; + + var prevChildMapping = this.state.children; + var nextChildMapping = (0, _ChildMapping.getChildMapping)(nextProps.children); + + var children = (0, _ChildMapping.mergeChildMappings)(prevChildMapping, nextChildMapping); + + Object.keys(children).forEach(function (key) { + var child = children[key]; + + if (!(0, _react.isValidElement)(child)) return; + + var onExited = function onExited(node) { + _this2.handleExited(child.key, node, child.props.onExited); + }; + + var hasPrev = key in prevChildMapping; + var hasNext = key in nextChildMapping; + + var prevChild = prevChildMapping[key]; + var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; + + // item is new (entering) + if (hasNext && (!hasPrev || isLeaving)) { + // console.log('entering', key) + children[key] = (0, _react.cloneElement)(child, { + onExited: onExited, + in: true, + exit: _this2.getProp(child, 'exit', nextProps), + enter: _this2.getProp(child, 'enter', nextProps) + }); + } + // item is old (exiting) + else if (!hasNext && hasPrev && !isLeaving) { + // console.log('leaving', key) + children[key] = (0, _react.cloneElement)(child, { in: false }); + } + // item hasn't changed transition states + // copy over the last transition props; + else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) { + // console.log('unchanged', key) + children[key] = (0, _react.cloneElement)(child, { + onExited: onExited, + in: prevChild.props.in, + exit: _this2.getProp(child, 'exit', nextProps), + enter: _this2.getProp(child, 'enter', nextProps) + }); + } + }); + + this.setState({ children: children }); + }; + + TransitionGroup.prototype.render = function render() { + var _props = this.props, + Component = _props.component, + childFactory = _props.childFactory, + props = _objectWithoutProperties(_props, ['component', 'childFactory']); + + var children = this.state.children; + + + delete props.appear; + delete props.enter; + delete props.exit; + + return _react2.default.createElement( + Component, + props, + values(children).map(childFactory) + ); + }; + + return TransitionGroup; +}(_react2.default.Component); + +TransitionGroup.childContextTypes = { + transitionGroup: _propTypes2.default.object.isRequired +}; + + +TransitionGroup.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {}; +TransitionGroup.defaultProps = defaultProps; + +exports.default = TransitionGroup; +module.exports = exports['default']; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/react-transition-group/utils/ChildMapping.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.getChildMapping = getChildMapping; +exports.mergeChildMappings = mergeChildMappings; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +/** + * Given `this.props.children`, return an object mapping key to child. + * + * @param {*} children `this.props.children` + * @return {object} Mapping of key to child + */ +function getChildMapping(children, mapFn) { + var mapper = function mapper(child) { + return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child; + }; + + var result = Object.create(null); + if (children) _react.Children.map(children, function (c) { + return c; + }).forEach(function (child) { + // run the map function here instead so that the key is the computed one + result[child.key] = mapper(child); + }); + return result; +} + +/** + * When you're adding or removing children some may be added or removed in the + * same render pass. We want to show *both* since we want to simultaneously + * animate elements in and out. This function takes a previous set of keys + * and a new set of keys and merges them with its best guess of the correct + * ordering. In the future we may expose some of the utilities in + * ReactMultiChild to make this easy, but for now React itself does not + * directly have this concept of the union of prevChildren and nextChildren + * so we implement it here. + * + * @param {object} prev prev children as returned from + * `ReactTransitionChildMapping.getChildMapping()`. + * @param {object} next next children as returned from + * `ReactTransitionChildMapping.getChildMapping()`. + * @return {object} a key set that contains all keys in `prev` and all keys + * in `next` in a reasonable order. + */ +function mergeChildMappings(prev, next) { + prev = prev || {}; + next = next || {}; + + function getValueForKey(key) { + return key in next ? next[key] : prev[key]; + } + + // For each key of `next`, the list of keys to insert before that key in + // the combined list + var nextKeysPending = Object.create(null); + + var pendingKeys = []; + for (var prevKey in prev) { + if (prevKey in next) { + if (pendingKeys.length) { + nextKeysPending[prevKey] = pendingKeys; + pendingKeys = []; + } + } else { + pendingKeys.push(prevKey); + } + } + + var i = void 0; + var childMapping = {}; + for (var nextKey in next) { + if (nextKeysPending[nextKey]) { + for (i = 0; i < nextKeysPending[nextKey].length; i++) { + var pendingNextKey = nextKeysPending[nextKey][i]; + childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey); + } + } + childMapping[nextKey] = getValueForKey(nextKey); + } + + // Finally, add the keys which didn't appear before any key in `next` + for (i = 0; i < pendingKeys.length; i++) { + childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]); + } + + return childMapping; +} + +/***/ }), + +/***/ "./node_modules/react-transition-group/utils/PropTypes.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.classNamesShape = exports.timeoutsShape = undefined; +exports.transitionTimeout = transitionTimeout; + +var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function transitionTimeout(transitionType) { + var timeoutPropName = 'transition' + transitionType + 'Timeout'; + var enabledPropName = 'transition' + transitionType; + + return function (props) { + // If the transition is enabled + if (props[enabledPropName]) { + // If no timeout duration is provided + if (props[timeoutPropName] == null) { + return new Error(timeoutPropName + ' wasn\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); + + // If the duration isn't a number + } else if (typeof props[timeoutPropName] !== 'number') { + return new Error(timeoutPropName + ' must be a number (in milliseconds)'); + } + } + + return null; + }; +} + +var timeoutsShape = exports.timeoutsShape = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ + enter: _propTypes2.default.number, + exit: _propTypes2.default.number +}).isRequired]); + +var classNamesShape = exports.classNamesShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({ + enter: _propTypes2.default.string, + exit: _propTypes2.default.string, + active: _propTypes2.default.string +}), _propTypes2.default.shape({ + enter: _propTypes2.default.string, + enterActive: _propTypes2.default.string, + exit: _propTypes2.default.string, + exitActive: _propTypes2.default.string +})]); + +/***/ }), + +/***/ "./node_modules/readable-stream/duplex-browser.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); + + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_duplex.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + + + +/**/ + +var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; +/**/ + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + keys.push(key); + }return keys; +}; +/**/ + +module.exports = Duplex; + +/**/ +var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); +/**/ + +var Readable = __webpack_require__("./node_modules/readable-stream/lib/_stream_readable.js"); +var Writable = __webpack_require__("./node_modules/readable-stream/lib/_stream_writable.js"); + +util.inherits(Duplex, Readable); + +var keys = objectKeys(Writable.prototype); +for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; +} + +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) this.readable = false; + + if (options && options.writable === false) this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + + this.once('end', onend); +} + +// the no-half-open enforcer +function onend() { + // if we allow half-open state, or if the writable side ended, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + processNextTick(onEndNT, this); +} + +function onEndNT(self) { + self.end(); +} + +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + processNextTick(cb, err); +}; + +function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + + + +module.exports = PassThrough; + +var Transform = __webpack_require__("./node_modules/readable-stream/lib/_stream_transform.js"); + +/**/ +var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); +} + +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_readable.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +/**/ + +var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; +/**/ + +module.exports = Readable; + +/**/ +var isArray = __webpack_require__("./node_modules/isarray/index.js"); +/**/ + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = __webpack_require__("./node_modules/events/events.js").EventEmitter; + +var EElistenerCount = function (emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); +/**/ + +/**/ + +var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +/**/ +var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); +/**/ + +/**/ +var debugUtil = __webpack_require__(2); +var debug = void 0; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function () {}; +} +/**/ + +var BufferList = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/BufferList.js"); +var destroyImpl = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/destroy.js"); +var StringDecoder; + +util.inherits(Readable, Stream); + +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} + +function ReadableState(options, stream) { + Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + var hwm = options.highWaterMark; + var readableHwm = options.readableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = __webpack_require__("./node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +function Readable(options) { + Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); + + if (!(this instanceof Readable)) return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + if (options) { + if (typeof options.read === 'function') this._read = options.read; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + + Stream.call(this); +} + +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); + +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; + +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + } + } + + return needMoreData(state); +} + +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); +} + +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = __webpack_require__("./node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; +}; + +// Don't raise the hwm > 8MB +var MAX_HWM = 0x800000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } + + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + + if (ret !== null) this.emit('data', ret); + + return ret; +}; + +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); + } +} + +function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + processNextTick(maybeReadMore_, stream, state); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); +}; + +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} + +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, unpipeInfo); + }return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + + dest.emit('unpipe', this, unpipeInfo); + + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + processNextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); + } + return this; +}; + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + processNextTick(resume_, stream, state); + } +} + +function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } + + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} + +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + return this; +}; + +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + + var state = this._readableState; + var paused = false; + + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + + _this.push(null); + }); + + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + + return this; +}; + +// exposed for testing purposes only. +Readable._fromList = fromList; + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } + + return ret; +} + +// Extracts only enough buffered data to satisfy the amount requested. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; +} + +// Copies a specified amount of characters from the list of buffered data +// chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +// Copies a specified amount of bytes from the list of buffered data chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); + + if (!state.endEmitted) { + state.ended = true; + processNextTick(endReadableNT, state, stream); + } +} + +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } +} + +function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} + +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_transform.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + + + +module.exports = Transform; + +var Duplex = __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); + +/**/ +var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); +/**/ + +util.inherits(Transform, Duplex); + +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) { + return this.emit('error', new Error('write callback called multiple times')); + } + + ts.writechunk = null; + ts.writecb = null; + + if (data != null) // single equals check for both `null` and `undefined` + this.push(data); + + cb(er); + + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} + +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + Duplex.call(this, options); + + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} + +function prefinish() { + var _this = this; + + if (typeof this._flush === 'function') { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +Transform.prototype._destroy = function (err, cb) { + var _this2 = this; + + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this2.emit('close'); + }); +}; + +function done(stream, er, data) { + if (er) return stream.emit('error', er); + + if (data != null) // single equals check for both `null` and `undefined` + stream.push(data); + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); + + if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); + + return stream.push(null); +} + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_writable.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + + + +/**/ + +var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; +/**/ + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; +/**/ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); +/**/ + +/**/ +var internalUtil = { + deprecate: __webpack_require__("./node_modules/util-deprecate/browser.js") +}; +/**/ + +/**/ +var Stream = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); +/**/ + +/**/ + +var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +var destroyImpl = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/destroy.js"); + +util.inherits(Writable, Stream); + +function nop() {} + +function WritableState(options, stream) { + Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + var hwm = options.highWaterMark; + var writableHwm = options.writableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} + +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; + +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function () { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function (object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function (object) { + return object instanceof this; + }; +} + +function Writable(options) { + Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + if (options) { + if (typeof options.write === 'function') this._write = options.write; + + if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; + } + + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); +}; + +function writeAfterEnd(stream, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + processNextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; + + if (chunk === null) { + er = new TypeError('May not write null values to stream'); + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + if (er) { + stream.emit('error', er); + processNextTick(cb, er); + valid = false; + } + return valid; +} + +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + + if (typeof cb !== 'function') cb = nop; + + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + + return ret; +}; + +Writable.prototype.cork = function () { + var state = this._writableState; + + state.corked++; +}; + +Writable.prototype.uncork = function () { + var state = this._writableState; + + if (state.corked) { + state.corked--; + + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; + +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + + state.length += len; + + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + + return ret; +} + +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + processNextTick(cb, er); + // this can emit finish, and it will always happen + // after error + processNextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} + +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + + onwriteStateUpdate(state); + + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state); + + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + + if (sync) { + /**/ + asyncWrite(afterWrite, stream, state, finished, cb); + /**/ + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + + if (entry === null) state.lastBufferedRequest = null; + } + + state.bufferedRequest = entry; + state.bufferProcessing = false; +} + +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new Error('_write() is not implemented')); +}; + +Writable.prototype._writev = null; + +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) endWritable(this, state, cb); +}; + +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + processNextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} + +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + } + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) processNextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} + +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } +} + +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"), __webpack_require__("./node_modules/timers-browserify/main.js").setImmediate, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer; +var util = __webpack_require__(3); + +function copyBuffer(src, target, offset) { + src.copy(target, offset); +} + +module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); + + this.head = null; + this.tail = null; + this.length = 0; + } + + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; + + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; + + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; + + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; + + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + + return BufferList; +}(); + +if (util && util.inspect && util.inspect.custom) { + module.exports.prototype[util.inspect.custom] = function () { + var obj = util.inspect({ length: this.length }); + return this.constructor.name + ' ' + obj; + }; +} + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/**/ + +var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; +/**/ + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + processNextTick(emitErrorNT, this, err); + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + + this._destroy(err || null, function (err) { + if (!cb && err) { + processNextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); + + return this; +} + +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} + +function emitErrorNT(self, err) { + self.emit('error', err); +} + +module.exports = { + destroy: destroy, + undestroy: undestroy +}; + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js": +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__("./node_modules/events/events.js").EventEmitter; + + +/***/ }), + +/***/ "./node_modules/readable-stream/readable-browser.js": +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__("./node_modules/readable-stream/lib/_stream_readable.js"); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = __webpack_require__("./node_modules/readable-stream/lib/_stream_writable.js"); +exports.Duplex = __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); +exports.Transform = __webpack_require__("./node_modules/readable-stream/lib/_stream_transform.js"); +exports.PassThrough = __webpack_require__("./node_modules/readable-stream/lib/_stream_passthrough.js"); + + +/***/ }), + +/***/ "./node_modules/recompose/getDisplayName.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +var getDisplayName = function getDisplayName(Component) { + if (typeof Component === 'string') { + return Component; + } + + if (!Component) { + return undefined; + } + + return Component.displayName || Component.name || 'Component'; +}; + +exports.default = getDisplayName; + +/***/ }), + +/***/ "./node_modules/recompose/pure.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +exports.__esModule = true; + +var _shouldUpdate = __webpack_require__("./node_modules/recompose/shouldUpdate.js"); + +var _shouldUpdate2 = _interopRequireDefault(_shouldUpdate); + +var _shallowEqual = __webpack_require__("./node_modules/recompose/shallowEqual.js"); + +var _shallowEqual2 = _interopRequireDefault(_shallowEqual); + +var _setDisplayName = __webpack_require__("./node_modules/recompose/setDisplayName.js"); + +var _setDisplayName2 = _interopRequireDefault(_setDisplayName); + +var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); + +var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var pure = function pure(BaseComponent) { + var hoc = (0, _shouldUpdate2.default)(function (props, nextProps) { + return !(0, _shallowEqual2.default)(props, nextProps); + }); + + if (process.env.NODE_ENV !== 'production') { + return (0, _setDisplayName2.default)((0, _wrapDisplayName2.default)(BaseComponent, 'pure'))(hoc(BaseComponent)); + } + + return hoc(BaseComponent); +}; + +exports.default = pure; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/recompose/setDisplayName.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _setStatic = __webpack_require__("./node_modules/recompose/setStatic.js"); + +var _setStatic2 = _interopRequireDefault(_setStatic); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var setDisplayName = function setDisplayName(displayName) { + return (0, _setStatic2.default)('displayName', displayName); +}; + +exports.default = setDisplayName; + +/***/ }), + +/***/ "./node_modules/recompose/setStatic.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +var setStatic = function setStatic(key, value) { + return function (BaseComponent) { + /* eslint-disable no-param-reassign */ + BaseComponent[key] = value; + /* eslint-enable no-param-reassign */ + return BaseComponent; + }; +}; + +exports.default = setStatic; + +/***/ }), + +/***/ "./node_modules/recompose/shallowEqual.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _shallowEqual = __webpack_require__("./node_modules/fbjs/lib/shallowEqual.js"); + +var _shallowEqual2 = _interopRequireDefault(_shallowEqual); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _shallowEqual2.default; + +/***/ }), + +/***/ "./node_modules/recompose/shouldUpdate.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +exports.__esModule = true; + +var _react = __webpack_require__("./node_modules/react/react.js"); + +var _setDisplayName = __webpack_require__("./node_modules/recompose/setDisplayName.js"); + +var _setDisplayName2 = _interopRequireDefault(_setDisplayName); + +var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); + +var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var shouldUpdate = function shouldUpdate(test) { + return function (BaseComponent) { + var factory = (0, _react.createFactory)(BaseComponent); + + var ShouldUpdate = function (_Component) { + _inherits(ShouldUpdate, _Component); + + function ShouldUpdate() { + _classCallCheck(this, ShouldUpdate); + + return _possibleConstructorReturn(this, _Component.apply(this, arguments)); + } + + ShouldUpdate.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) { + return test(this.props, nextProps); + }; + + ShouldUpdate.prototype.render = function render() { + return factory(this.props); + }; + + return ShouldUpdate; + }(_react.Component); + + if (process.env.NODE_ENV !== 'production') { + return (0, _setDisplayName2.default)((0, _wrapDisplayName2.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate); + } + return ShouldUpdate; + }; +}; + +exports.default = shouldUpdate; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/recompose/wrapDisplayName.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _getDisplayName = __webpack_require__("./node_modules/recompose/getDisplayName.js"); + +var _getDisplayName2 = _interopRequireDefault(_getDisplayName); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) { + return hocName + '(' + (0, _getDisplayName2.default)(BaseComponent) + ')'; +}; + +exports.default = wrapDisplayName; + +/***/ }), + +/***/ "./node_modules/redux-immutable-state-invariant/dist/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = immutableStateInvariantMiddleware; + +var _invariant = __webpack_require__("./node_modules/invariant/browser.js"); + +var _invariant2 = _interopRequireDefault(_invariant); + +var _jsonStringifySafe = __webpack_require__("./node_modules/json-stringify-safe/stringify.js"); + +var _jsonStringifySafe2 = _interopRequireDefault(_jsonStringifySafe); + +var _isImmutable = __webpack_require__("./node_modules/redux-immutable-state-invariant/dist/isImmutable.js"); + +var _isImmutable2 = _interopRequireDefault(_isImmutable); + +var _trackForMutations = __webpack_require__("./node_modules/redux-immutable-state-invariant/dist/trackForMutations.js"); + +var _trackForMutations2 = _interopRequireDefault(_trackForMutations); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var BETWEEN_DISPATCHES_MESSAGE = ['A state mutation was detected between dispatches, in the path `%s`.', 'This may cause incorrect behavior.', '(http://redux.js.org/docs/Troubleshooting.html#never-mutate-reducer-arguments)'].join(' '); + +var INSIDE_DISPATCH_MESSAGE = ['A state mutation was detected inside a dispatch, in the path: `%s`.', 'Take a look at the reducer(s) handling the action %s.', '(http://redux.js.org/docs/Troubleshooting.html#never-mutate-reducer-arguments)'].join(' '); + +function immutableStateInvariantMiddleware() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _options$isImmutable = options.isImmutable, + isImmutable = _options$isImmutable === undefined ? _isImmutable2.default : _options$isImmutable, + ignore = options.ignore; + + var track = _trackForMutations2.default.bind(null, isImmutable, ignore); + + return function (_ref) { + var getState = _ref.getState; + + var state = getState(); + var tracker = track(state); + + var result = void 0; + return function (next) { + return function (action) { + state = getState(); + + result = tracker.detectMutations(); + // Track before potentially not meeting the invariant + tracker = track(state); + + (0, _invariant2.default)(!result.wasMutated, BETWEEN_DISPATCHES_MESSAGE, (result.path || []).join('.')); + + var dispatchedAction = next(action); + state = getState(); + + result = tracker.detectMutations(); + // Track before potentially not meeting the invariant + tracker = track(state); + + (0, _invariant2.default)(!result.wasMutated, INSIDE_DISPATCH_MESSAGE, (result.path || []).join('.'), (0, _jsonStringifySafe2.default)(action)); + + return dispatchedAction; + }; + }; + }; +} + +/***/ }), + +/***/ "./node_modules/redux-immutable-state-invariant/dist/isImmutable.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.default = isImmutableDefault; +function isImmutableDefault(value) { + return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null || typeof value === 'undefined'; +} + +/***/ }), + +/***/ "./node_modules/redux-immutable-state-invariant/dist/trackForMutations.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = trackForMutations; +function trackForMutations(isImmutable, ignore, obj) { + var trackedProperties = trackProperties(isImmutable, ignore, obj); + return { + detectMutations: function detectMutations() { + return _detectMutations(isImmutable, ignore, trackedProperties, obj); + } + }; +} + +function trackProperties(isImmutable) { + var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var obj = arguments[2]; + var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; + + var tracked = { value: obj }; + + if (!isImmutable(obj)) { + tracked.children = {}; + + for (var key in obj) { + var childPath = path.concat(key); + if (ignore.length && ignore.indexOf(childPath.join('.')) !== -1) { + continue; + } + + tracked.children[key] = trackProperties(isImmutable, ignore, obj[key], childPath); + } + } + return tracked; +} + +function _detectMutations(isImmutable) { + var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var trackedProperty = arguments[2]; + var obj = arguments[3]; + var sameParentRef = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + var path = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : []; + + var prevObj = trackedProperty ? trackedProperty.value : undefined; + + var sameRef = prevObj === obj; + + if (sameParentRef && !sameRef && !Number.isNaN(obj)) { + return { wasMutated: true, path: path }; + } + + if (isImmutable(prevObj) || isImmutable(obj)) { + return { wasMutated: false }; + } + + // Gather all keys from prev (tracked) and after objs + var keysToDetect = {}; + Object.keys(trackedProperty.children).forEach(function (key) { + keysToDetect[key] = true; + }); + Object.keys(obj).forEach(function (key) { + keysToDetect[key] = true; + }); + + var keys = Object.keys(keysToDetect); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var childPath = path.concat(key); + if (ignore.length && ignore.indexOf(childPath.join('.')) !== -1) { + continue; + } + + var result = _detectMutations(isImmutable, ignore, trackedProperty.children[key], obj[key], sameRef, childPath); + + if (result.wasMutated) { + return result; + } + } + return { wasMutated: false }; +} + +/***/ }), + +/***/ "./node_modules/redux-logger/dist/redux-logger.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {!function(e,t){ true?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){"use strict";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t="undefined"==typeof e?"undefined":N(e);return"object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if("undefined"!=typeof d){if(c){if("function"==typeof c&&c(g,d))return;if("object"===("undefined"==typeof c?"undefined":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}"regexp"===u(e)&&"regexp"===u(t)&&(e=e.toString(),t=t.toString());var y="undefined"==typeof e?"undefined":N(e),v="undefined"==typeof t?"undefined":N(t),b="undefined"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m="undefined"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if("date"===u(e)&&e-t!==0)r(new n(g,e,t));else if("object"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&("number"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if("undefined"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport createLogger from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if("function"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&"function"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E("0",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+":"+A(e.getMinutes(),2)+":"+A(e.getSeconds(),2)+"."+A(e.getMilliseconds(),3)},O="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return"function"==typeof t||"function"==typeof r?S()({dispatch:t,getState:r}):void console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,"__esModule",{value:!0})}); + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/regenerator-runtime/runtime.js": +/***/ (function(module, exports) { + +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +!(function(global) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + var inModule = typeof module === "object"; + var runtime = global.regeneratorRuntime; + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + runtime.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + resolve(result); + }, reject); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + runtime.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator.return) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; +})( + // In sloppy mode, unbound `this` refers to the global object, fallback to + // Function constructor if we're in global strict mode. That is sadly a form + // of indirect eval which violates Content Security Policy. + (function() { return this })() || Function("return this")() +); + + +/***/ }), + +/***/ "./node_modules/reinterval/index.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function ReInterval (callback, interval, args) { + var self = this; + + this._callback = callback; + this._args = args; + + this._interval = setInterval(callback, interval, this._args); + + this.reschedule = function (interval) { + // if no interval entered, use the interval passed in on creation + if (!interval) + interval = self._interval; + + if (self._interval) + clearInterval(self._interval); + self._interval = setInterval(self._callback, interval, self._args); + }; + + this.clear = function () { + if (self._interval) { + clearInterval(self._interval); + self._interval = undefined; + } + }; + + this.destroy = function () { + if (self._interval) { + clearInterval(self._interval); + } + self._callback = undefined; + self._interval = undefined; + self._args = undefined; + }; +} + +function reInterval () { + if (typeof arguments[0] !== 'function') + throw new Error('callback needed'); + if (typeof arguments[1] !== 'number') + throw new Error('interval needed'); + + var args; + + if (arguments.length > 0) { + args = new Array(arguments.length - 2); + + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i + 2]; + } + } + + return new ReInterval(arguments[0], arguments[1], args); +} + +module.exports = reInterval; + + +/***/ }), + +/***/ "./node_modules/safe-buffer/index.js": +/***/ (function(module, exports, __webpack_require__) { + +/* eslint-disable node/no-deprecated-api */ +var buffer = __webpack_require__("./node_modules/buffer/index.js") +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} + + +/***/ }), + +/***/ "./node_modules/scroll/index.js": +/***/ (function(module, exports, __webpack_require__) { + +var raf = __webpack_require__("./node_modules/rafl/index.js") +var E_NOSCROLL = new Error('Element already at target scroll position') +var E_CANCELLED = new Error('Scroll cancelled') +var min = Math.min + +module.exports = { + left: make('scrollLeft'), + top: make('scrollTop') +} + +function make (prop) { + return function scroll (el, to, opts, cb) { + opts = opts || {} + + if (typeof opts == 'function') cb = opts, opts = {} + if (typeof cb != 'function') cb = noop + + var start = +new Date + var from = el[prop] + var ease = opts.ease || inOutSine + var duration = !isNaN(opts.duration) ? +opts.duration : 350 + var cancelled = false + + return from === to ? + cb(E_NOSCROLL, el[prop]) : + raf(animate), cancel + + function cancel () { + cancelled = true + } + + function animate (timestamp) { + if (cancelled) return cb(E_CANCELLED, el[prop]) + + var now = +new Date + var time = min(1, ((now - start) / duration)) + var eased = ease(time) + + el[prop] = (eased * (to - from)) + from + + time < 1 ? raf(animate) : raf(function () { + cb(null, el[prop]) + }) + } + } +} + +function inOutSine (n) { + return 0.5 * (1 - Math.cos(Math.PI * n)) +} + +function noop () {} + + +/***/ }), + +/***/ "./node_modules/setimmediate/setImmediate.js": +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { + "use strict"; + + if (global.setImmediate) { + return; + } + + var nextHandle = 1; // Spec says greater than zero + var tasksByHandle = {}; + var currentlyRunningATask = false; + var doc = global.document; + var registerImmediate; + + function setImmediate(callback) { + // Callback can either be a function or a string + if (typeof callback !== "function") { + callback = new Function("" + callback); + } + // Copy function arguments + var args = new Array(arguments.length - 1); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i + 1]; + } + // Store and register the task + var task = { callback: callback, args: args }; + tasksByHandle[nextHandle] = task; + registerImmediate(nextHandle); + return nextHandle++; + } + + function clearImmediate(handle) { + delete tasksByHandle[handle]; + } + + function run(task) { + var callback = task.callback; + var args = task.args; + switch (args.length) { + case 0: + callback(); + break; + case 1: + callback(args[0]); + break; + case 2: + callback(args[0], args[1]); + break; + case 3: + callback(args[0], args[1], args[2]); + break; + default: + callback.apply(undefined, args); + break; + } + } + + function runIfPresent(handle) { + // From the spec: "Wait until any invocations of this algorithm started before this one have completed." + // So if we're currently running a task, we'll need to delay this invocation. + if (currentlyRunningATask) { + // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a + // "too much recursion" error. + setTimeout(runIfPresent, 0, handle); + } else { + var task = tasksByHandle[handle]; + if (task) { + currentlyRunningATask = true; + try { + run(task); + } finally { + clearImmediate(handle); + currentlyRunningATask = false; + } + } + } + } + + function installNextTickImplementation() { + registerImmediate = function(handle) { + process.nextTick(function () { runIfPresent(handle); }); + }; + } + + function canUsePostMessage() { + // The test against `importScripts` prevents this implementation from being installed inside a web worker, + // where `global.postMessage` means something completely different and can't be used for this purpose. + if (global.postMessage && !global.importScripts) { + var postMessageIsAsynchronous = true; + var oldOnMessage = global.onmessage; + global.onmessage = function() { + postMessageIsAsynchronous = false; + }; + global.postMessage("", "*"); + global.onmessage = oldOnMessage; + return postMessageIsAsynchronous; + } + } + + function installPostMessageImplementation() { + // Installs an event handler on `global` for the `message` event: see + // * https://developer.mozilla.org/en/DOM/window.postMessage + // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages + + var messagePrefix = "setImmediate$" + Math.random() + "$"; + var onGlobalMessage = function(event) { + if (event.source === global && + typeof event.data === "string" && + event.data.indexOf(messagePrefix) === 0) { + runIfPresent(+event.data.slice(messagePrefix.length)); + } + }; + + if (global.addEventListener) { + global.addEventListener("message", onGlobalMessage, false); + } else { + global.attachEvent("onmessage", onGlobalMessage); + } + + registerImmediate = function(handle) { + global.postMessage(messagePrefix + handle, "*"); + }; + } + + function installMessageChannelImplementation() { + var channel = new MessageChannel(); + channel.port1.onmessage = function(event) { + var handle = event.data; + runIfPresent(handle); + }; + + registerImmediate = function(handle) { + channel.port2.postMessage(handle); + }; + } + + function installReadyStateChangeImplementation() { + var html = doc.documentElement; + registerImmediate = function(handle) { + // Create a + diff --git a/src/build/static/image/Richard_Smith.png b/src/build/static/image/Richard_Smith.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc8b9b0d8f1ff6d2aa2ba0414a597b9a9f3aef4 GIT binary patch literal 9766 zcmV+>CfV7EP)I1^s+WH6mpbR^$%8>A0p?&+lthbBlt@t&vvw6I$+9dRiqbg_Fb=&A>y`FM zHmzfs*0D_zVlXAaqDW8x34$ULi8R1qa-Qy<>G13R<(De>k6&Xj)6-*neRlVr^QM3A zRlTZrzjf=@t$S~cc=+LmxtjLx-GMptUG(V(>DFc`f)eq{5gJ3cB1}eH8p97mJZBKy zrztL8q$0+6`s5n-KX#T2ZAmlhFgF!Z_9BLc#sNW+^e6=ZPB{Mfub-&^RiF&iH@j{E z?c3&tSJT{(7J!t5N-;GYQx8K#Ua-*YU`i3o>kaZkb71!l=7)zd#&TfK9-e*nDaJ=? zOizyU+Sk9HoqOicB|%iKGPUPUtQi3*kaE!J=RWs20KBU~2!a43BV0cvh-VnRL| zX9RwV$rri#mV|yT+5gI0xp4d_Sckkpzt;d!_Dd)Y9g&b1ZTvi?l($KTZzD}Aj898k zF-mXs6xI2ID606AyE*jbM_I`gm%9lIom2pC20j412iS2Vrf)z2aL4BL619%6b{_`5 z2K>d&>5;C<3%n?zopiB6(pul3-|12DJSK;0tTuZbJ$;UFa*o+V5eG3g?_<1Se5tPM z^csLFV|A=Zuy%=hR8Y+hkcs_>$U}NDMKXd2r!b~ZE=%-reEF;2;=w15@YF&pTIi&| z3Y-8Q0evl*wUDCY33quwgZNj+9<4^v8 z_C|w#YaLGsoRv6F-~i_w&bjS@2m^(~Ap4i0-KTTr>$Fe)DelCh#Cj2T@;h`%s7&vG zyvuVZpXby6*T0L7t~7rKI0t+d*!TYu^EaX@@GHQvBNyBEJ#l7j-=2{gqrPOO8sXW3 zgZp+9MIN3C0 ztmckdv>#8+qO-pupDh#lKJ#yQ@9^$7fB27q_y3QXw&abAhS#y7MNt-f6RQdV-@TPjTm^RjRLm8$o&nh*3St zM(j~D7Nu9|E-Nv~e{k|Fb5mm+JARJa-rPY}%UB0Oh-+TFqAZP9AcaF_O#-GoJz zUFH67eglNW89n%>tMsM>C{^kdp2WwYn|*9Ci%n)oR~m{ML3o9eMFEA9(NE zdHj11F*;PIwZ6vc@)F%%m#`G!`yN)CLC4NwO%BFxj)TKF3r2&J>x+ zc%>?q03Q!+E+exIyoIy8`W?UVA>f~F*Tc8J^#C7v|9e<(tbof&+N%uLhX`aqJuG3h z##zwXfO9Az@q|NBU`;vz#AG;~V~PT+Gq4(rfxw%~UM@)v)Ik^vgv&8IM-hZo*^4|ku zYs+7`?+g5+-}x=D24^g_xPo>@{OmH&A=mMNWD1oyUTNGGR;Ov00 zfu!UJtHD}?bKoSxTAVEg44MM0K{$=DgDK>!!8(HzhW_OMDP9fv!~t^gdsS6-RR14d9VyQ6i!*RH-hwn zdx4v_wv?nj{`v3yTf8X7@zw#j8clC&{tLqCm7fZ0Ln)O zC0s1AaRtw-AW?t=>jqNq9M+h+Yb{n6*i8TjYk($cEO6=ZKi^Jg zDBuep`<36SxNY=_tkr5)Zj3R^&(GZr{KnRbrpRe-Y_Q&H;zu!+N`*YlvBt5!-lSTs zGFGcGH9kySj&L{xpgbQ>c{pitQs9J#5D}6Jo*P0@Mfd@D5l$#T<6IxB`$%hX&fuIw zNdY*l)rca)6d5K@!5E|*0HKXRDM_+$gd^YnFWX7QPT(^_`Uqzb?&YnPl=9^pV+>Nt z&u*f3g`9INFP>%N+)?swizLY)*Yw&Q7FX6-yxd@YqeGxzW@?V=sjX;SIPelkXL8u?1P$$GHrXcPM&2@@^NGrMP0#*s>O9VW8Rt&J8YM2W?~XK^+kw z{Sp#|a+bgq6h?!yq`7AC!g=od6r+_2)yfcIRK*w%r6g%uAf#gH+yYV?R##T34%NtnqC7Ip z#KbJ4Bcnt?h$$q>4{=ff1F;8((3^_Z8ic0?wuaSMYXOZEfaf7yfz>Iw6{NGsR*<5=tHcGh|7 z*~83tTkP34$J9`Tv}K8gCeXr1Ym4W=7Xu}jcROTxf)ikHWO;@kD8kS~T8p+4V+u@` zVQ?h5!A1pt`Db6{=Rf)D)av!C*()>fr~JtkAb@uO;nlUQwe)&j0F1RL<%8>SY56iw zeETVeChFXF-~cBsUZUS@(rm7v(*#`<4Am>_o0})ga$3y}lfw~Sk>Vqn7_HN6_IdL8 zQ#4u$6JvE=JaUf4dXs%SXBi(V6Q>px__(BpaG<=HrAsR`);B1$CN~=C`IPHr%GDU( zS4@voAg*F`hVOZ3D`|Dxtgm;N-!;zzfBENp;3J>dI@Uk46^OTOtN#Gtc&zwR@;3t5s_z_?>z90?SOd8J@?#Gy7%6D6K~h9Jz_f` zy4^0;T9n!}DV!ki%7mUzBy(PI^8`y5FH)=3*)uiD%tQ^5wt3Zo9X$E;3(Srmc zESx*ba<8Bl#++R5(#kZwtl$-+B}&Fn4|C;8g_UHZmSs??~D zj^Tw>f~-kWIA$isDGEnnQtFjaO2fk(Ilstvo;l3qXv`~a-h&rZF;dNnP$D0k@j-RCZjr3C!=6&tjhe@G)2j4`j>#XYimiCWo)&_t#vqZ_P_QnntF+5W0|V( z={u;`%M`|fGemJjJ4qQG8)fJ2S$1!%v%IuQ==+o_6;_jkzL1PnD{QnAZu`0S5Ew@< z>+sztp5g-^`T+Y6-ikBwWm&da^sW zttCZKZ2l5g{`xv62V`X&FRoCl4zp`wf`-l+E=Ra5N1_o2b!!O1yre!eXj< z-Ov3fr`OsnURp=@42{bdIeh*sZQbM*x9=w&uFy*QWX94qhH8;eYP8vR%N@*(O>76m z{+EE5-CCmcwVod5>>vQ-d^9nt95OQ%@vh0cxtJLIQVCb&NY9|t478yfcnpUT)#?aV zNO~EpwQ|}^tAt_547mtRuE4PBl|5z>t(dl1fBrt(ET3Okvh9~&vWGY z=a`Hm=BEy@BP%$0>=eh&p2jl&T*w;DYYaRm&>l!lVS`Uv@9=gzYMw28PxY7_p7MRX5{XC%>M}R;ZP)=YAgH8+j ziAEL%-x)kVz*89}>*K6PWvGT;>2P{sfl{T6_I!|#=RHc1LV5x#U}&h$uKjzc57)W4 zx=I`b-17Rn$a)FgjV8hucu|ZW`S^k4nWvuP?wb$L+OUk4OWZU+O(+!m-*^|@%yNzE z`emwm4E#aY(bcPl6AI}xfznW_6HV==SUb(`eY<$}# z&xwX{{!VPmB`=g3G-YGrnM`QldULPj$~Ol0x19hk=ghZha_(co_&G zuz)WzjDs8nVT^W~c9x@jNxRd=_k0Wn;Vf85rZbe2XsZdLh{73kp%H<@$;y_7(>*mzT70Pi1Weud7!e}B3z8?}O@RUF)N3Ja+^%Bb)P3rX; zho1Wmckh`atk>B0ciu@7j!+UlLSE;K2IzZ0YwOc1)+C@+P9YpYRzkThsjE_{4kMk$ zNslNB=qEXaDL@;7P$7gwV31M}_yNXPN}i7l0<429&xm{vDJ7Q|R><-VHr7|kI~ype z2umUL(Gl`IW4vA?o*p6T=2X3a*bng%hj5Z+r$`n>S; z^LSCfLkr8y?%v5wyCw+($;{LgVH~6Lf+#4HnVdAsNwPk@0&Ex~M8d%xlc*@5yk|eD z^YFb8-@5B!o2lC3Fsp z#VLU>V5J&_{Dnj+iI9pwDL^8m2P$NIW|nuo_w8I-yv)&)XUV!L7cZ@H_S{)q;4{B# zAAZqhVz|us#5k2|mFDtgHa416OA!<~+GvtOkQ1U5NY6tFO}$p8r>cm`5IH_&z>mVM ztOC3M17-Q*){-cS0MHbKB7#mEKPXr!0$k+t!ud8|c*OG511)~~O|u*vD)4niU>rdK zMioc`oB)Tz+YDJ0u7pBhtORLEg~e4OruWPeMLw$wmk~BaYe%_OWo&Aa;aW_&662R+ zWI4twg%rA=*VRbpNUjqQ9 zIETnGl&{I0py;iG6j)~oV-Hg(My4m(IXBPb%rtqPgA|O8kD|54DurJu(=H5gEoOaX z4P98IlsHdPXp2%3i6b`|u_=*inB2LCMgZ0tJR(ZvZPP@a0`N|qIBxeHxakoFIR!6I zk8;Gu_rJ^h`30&=E4&~#xcyac;I8>uUOaq^qGov2t8b!KD(F+7)aJ%4&!_}t`bkRU z9Ln=>+E5f-I_-6&49N=yK^>_ENu@(WOzob*bS!sH%z)Npwm^~7Xm{x5IqhCbr6duy zAPN+DZpd_wa2}~Hh{`e6Xv&^sLWuCt#Lw76dID0 zAdE1cM=m^)c8|2LsRU)56I3fTigur~=i02VuTw9ViM=w$ICTFaHj1fDPSZ1*X1j^d zUBsb(rw9t5-kB|!Ab7&14J@Cd$jFjv6S`iALa{aoU1i+*B-g|Esz}pOL{2B0v zz?J2~4~a@Bmh23Nh-*U}?P>B}pN=SDw2v_@vZA=M z@(3vjN+Ih>&U&lQnX{K^Zlu^k(d%ZE9E_IgwU7NGJD)kqxxg{{?I+mPIL1Hz?O){kkDs8|XtA<%nZ`=Su=OZf zO?u%7)l3lt4(CIXWrNki^Qe^!mlivmI(?F(r`Jgf@Vo$%L1aOPy`iB4hliJ z9&cwzY3JOZz6^vjbR!4wAGZQg{*fPHcxZ}j=>@tfB{{!DRc5^D?ka)Z&%gh|cNp`A z$&6(+%c_Y@+z0s8eCdk zA;~gU(-z%Mf-MBfT9$i#7F%oh%CKkOPNr&#QsC1n22rg+j)kB!GD{McF`2~AJP-yU z1tVia+eyP;o;h>o(iI^3%2G=0OVi^7aNtT+At+DO@VWr;g) z+C`;0f*+PJg{GPG=&v>Db~|*6jPpy2#3f1A?Gh?O7#UNp3_KDOi|OCGI`ChOU|~4ul6!pFaKls~!yvXAE1$sI~dkPav>NBGRV^yZ+rx_g?#<@Xsy_2M*xy5t};%d^|t#5g8i90_1PpF70vqu*Bub=-< zi2Mi>=6NcjgO^!?z$Z01>#ZJZy*~ZIl4{3BC&Orkl7pnvLT4CbamEt*f-v^zXI&b- z6>?I%NFquW8|27RPMT~`5v-tSK_XGEDtvGS>9k|cj!{gR*as2{C>kQrH zlc*>llU3#`3eV=O_j_DgZ*gg(%W6;4Of;Q#k8Zb5zu!e{`XnPiKq-&RIMO_)6qo4a z3FlWASrmKgoC(AuiGVUwTMw{tU6XN_gQYVX(c&hR?o5ZG6U-@co{nfw6hKq5LKncb4zTMkx zw*h|r#EBD&aJ^sF^R)-sQ7WKNnxY(Y`uW4ld+)gIqrd}fNh5mmPrjF*|Nck#cYpjP zmiiv27dLqAh)))J%#IDSt|1jEMQ&N#Xwu39%Dn_vt5B*Y3|mXJRED5VIj&KyP9Xxx zw6LH&Y@T2WO_ue^vjnYEl&9!)+GL$R%WEALSDUo*9O}dT)W?4b>mmvRbt3ld-92#g zT~D7oapJ`1w<`cpzw&o~87UQgli~#t=T4j^szzMAaQe*b?9Lqcv8!K@Qu1SOdnf%Q z;mN~Cm^4l9ny6D?iApiKDM)fdqthp|(AN&FE!G<9YwGN3Bbd#Ld9JrY@GfYp8 zGrwc@M$=&d_{kF|PNX-Ih5--;w9|xv&)UiY6XV02K6Q!*zVTONgG8)fXAmTQ@79+; z{^5`Csyko7(_i>!*v1kyslcS{8>`XjrEFx7Y3Oz{j8Q!C;(3BnmBsZkw=^>j?3Fm< z5V0jHl?N{Dq)DbzT8$M(M}}B$YtCF);HhI5S>DK4Y4<^ANSCtbz(H=>zlY(W`qoc- zi7o>_e(cz>g{ueg>c3Z>A3u7C70)Y4me8dO7{Pz&Sx2`RpF6v#(lWer}eju@P$J zm{58+YYC;Hkdn$sjoiTTORKza@+?nX*r3(xF_d)~A1?C~AN$|=-+ucaqqesi0WJb> zJ9g~Yu^Y<)eEG{?9su#$SKSHLu(G;LwOj`0&_+`f7V9k5ScHVr7giMTe>0GfZ7J(E zIrXjkc<$?8q0vgY+-Y-uwasdhv(kgrW{1KFDxP4^XoZ^ZQ;&S6hld!7L)KPTnH;K8 zAD_bbJ}bS9qYF!%TUleZoe&B5$j`o?kNo{lGrRA)*!9))0`RV*M~_~(!F0JEh@G?J z_)1WzmN9vO)|#x)1Yty$7ijASUH51xJK_~?!UoaYn1Q_aJz)0XRR;|$NXS9=yg>Fh)J7#vw^8WY#4DbKg zCz#oJUCeqb-3R>gv17-(&b_=u-UyH@K*HCXKsL4dIWW6U6Mip3$p z2^N=E?qF~R^Nwv>zlxg6iyVIZF@E^{?{VnaA9CUR8BVXXX{I?sDU5ZLLPa1zN*`e? zL$x}0+;ul^{M&Eg^>6tRZhz$~Z)7T8OSHAKU0Hif~u#+na3SD4~Ax*Q*MkGoNLUTe5;uF?c zq_Q|s;3U+C>KE!06CVR^20q6&vDE($=zG9V0i$MgGA1cGdN(jt-brdK&OB&0$(f%aWeHQ)GHqKN(4gi6L0?sKKaRCK}jDWByO7{ zja%=PQdcBG9NasNwFaU5D=9+*)LsH&5UMK*jZ{8n^LfAD0~sNOKuL%12Ph>_Qi9Wr z_?G9-H%1tk=zohrp7-ti&*_s4I1M}td>8ocKX~K8Q+;H1GNWi@hR;56Y=*)A zA~4S2U~YxMbZP^AU=cX~Yj^H2rBG4X4AW%}*86>$Nsf^Mi3X=|&eH4kadE`@y5XZA z{wP2F(;ws=?|28*Y8B7-aYDdmpy}Eq+L!6S0gy-m66i?CYybcN07*qoM6N<$f{;_3 ADF6Tf literal 0 HcmV?d00001 diff --git a/src/build/static/image/favicon.ico b/src/build/static/image/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b23103d069cc626457356c8c2c149e65145ff3a6 GIT binary patch literal 3182 zcmcJRTS!z<6oz-bn2ruiNJSS@D(GT8RP<8RL!m`PLOmE%1mROPYMPf&(`>TL%)FN4 zWo%NBN|P`$lZ+rLLPVj5us|U)j4octbZqsnefANJn$8($OKly#8JMi{cqS=8Bui$HsHc%(k4Xpf>52BoSj zp^ng%|M88Q`bOhsCNgb)SzxA1wngMh7Bj80ohDq&r5=lE zk$*>v$U(dU<~68{BDXf1GcuU%EbEl(X%UwZ^T8^FilGu2V-B?$bTXc15f{PAg9^YX zqK&KT6qC6{P@!=%FPXb{xG6QUjcRMU!OESQ-@u1aSv5B1nZ~_Jj?8D2p4>ruBO7RP z@~0Q)KR;TxqFC*h48*hGU6`8V^a^c#3*~sUah*qgHigbFn4b2}-_w$wpe_|kQIYp* zwwh-dZCF)Dov#LQCYvzNQaKil=Rh9sZ60SD9X)95%yxAS;`}8;+*eOR38+s|Yv@GO z_A2jJ=4sd05lfJFMzZuX%s!7=`@GI^e4O8n+~1fL3)yj zT_JlQ_a}c5uf#s7c*llbI)Lghc&>T=c{Q=SiRy^N~S(OULSvP zLi){}bMcSN=%~AjbsQe0sArbWt5JScH1zGqjQWX*N#rw+`!4r;UK6dB*I(n>Y5V4x z@7dgtin0}f+!e05mKV<*cJtI_I{*Ltj=l^&71uMaSSO5S3 literal 0 HcmV?d00001 diff --git a/webpackConfigs/webPackServerApp.js b/webpackConfigs/webPackServerApp.js new file mode 100755 index 000000000..8214f1e0a --- /dev/null +++ b/webpackConfigs/webPackServerApp.js @@ -0,0 +1,24 @@ +// TODO: KL: Create webpack server on port 8083 and connect to GraphQL on port 8081 +import WebpackDevServer from "webpack-dev-server"; +import WebpackCompiler from "./webpack-compiler"; + +let client = new WebpackDevServer(WebpackCompiler, { + contentBase: "build/", + historyApiFallback: true, + hotOnly: true, + proxy: { + '/mqtt': { + target: 'ws://localhost:3083', + ws: true, + secure: false + } + }, + inline: true, + stats: { + colors: true + } +}) + +client.listen(3080, () => console.log( + "App listen on 3080" +)); \ No newline at end of file diff --git a/webpackConfigs/webpack-compiler.js b/webpackConfigs/webpack-compiler.js new file mode 100755 index 000000000..288007c60 --- /dev/null +++ b/webpackConfigs/webpack-compiler.js @@ -0,0 +1,100 @@ +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const webpack = require('webpack'); +const path = require('path'); +const vendors = require('../src/vendors'); + +var ROOT_PATH = path.resolve(__dirname); +var APP_PATH = path.resolve(ROOT_PATH,'../src'); +var BUILD_PATH = path.resolve(ROOT_PATH, '../build'); + +export default webpack({ + entry: { + vendor: [...vendors], + app: `${APP_PATH}/index.js` + }, + output: { + path: BUILD_PATH, + publicPath: '/', + filename: 'bundle.[name].[chunkhash].js' + }, + module: { + rules: [ + { test: /\.js$/, + exclude: /(node_modules)/, + use: [{ + loader: 'babel-loader' + }, + ], + }, + { test: /\.scss$/, + use: [ 'style-loader', 'css-loader', 'sass-loader?outputStyle=expanded&sourceMap' ], + }, + { test: /\.css$/, + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader' + }, + ], + }, + { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ] + }, + { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ], + }, + { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/octet-stream' + }, + ], + }, + { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'file-loader' + }, + ], + }, + { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=image/svg+xml' + }, + ], + }, + { test: /\.(jpe?g|png|gif|svg|ico)$/, + use: [{ + loader: 'file-loader?name=static/image/[name].[ext]' + }, + ], + } + ] + }, + plugins: [ + new HtmlWebpackPlugin({ + template: `${APP_PATH}/template.ejs` + }), + new webpack.optimize.CommonsChunkPlugin({ + names: ['vendor', 'manifest'], + minChunks: Infinity, + }), + new webpack.NamedModulesPlugin(), + new webpack.DefinePlugin({ + 'process.env': { + 'NODE_ENV': JSON.stringify(process.env.NODE_ENV) + } + }), + ], + resolve: { + extensions: ['.js', '.json'], + modules: [ + path.resolve('node_modules'), + ] + }, + devtool: 'eval-source-map' +}); \ No newline at end of file diff --git a/webpackConfigs/webpack.production.config.js b/webpackConfigs/webpack.production.config.js new file mode 100755 index 000000000..d4466b197 --- /dev/null +++ b/webpackConfigs/webpack.production.config.js @@ -0,0 +1,101 @@ +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const webpack = require('webpack'); +const path = require('path'); +const vendors = require('../src/vendors'); + +var ROOT_PATH = path.resolve(__dirname); +var APP_PATH = path.resolve(ROOT_PATH,'../src'); +var BUILD_PATH = path.resolve(ROOT_PATH, '../src/build'); +console.log(APP_PATH); +module.exports = { + entry: { + vendor: [...vendors], + app: `${APP_PATH}/index.js` + }, + output: { + path: BUILD_PATH, + publicPath: './', + filename: 'bundle.[name].[chunkhash].js' + }, + module: { + rules: [ + { test: /\.js$/, + exclude: /(node_modules)/, + use: [{ + loader: 'babel-loader', + }, + ], + }, + { test: /\.scss$/, + use: [ 'style-loader', 'css-loader', 'sass-loader?outputStyle=expanded&sourceMap' ], + }, + { test: /\.css$/, + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader' + }, + ], + }, + { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ] + }, + { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ], + }, + { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/octet-stream' + }, + ], + }, + { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'file-loader' + }, + ], + }, + { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=image/svg+xml' + }, + ], + }, + { test: /\.(jpe?g|png|gif|svg|ico)$/, + use: [{ + loader: 'file-loader?name=static/image/[name].[ext]' + }, + ], + } + ] + }, + plugins: [ + new HtmlWebpackPlugin({ + template: `${APP_PATH}/template.ejs` + }), + new webpack.optimize.CommonsChunkPlugin({ + names: ['vendor', 'manifest'], + minChunks: Infinity, + }), + new webpack.NamedModulesPlugin(), + new webpack.DefinePlugin({ + __CLIENT__: true, + __SERVER__: false, + __DEVELOPMENT__: false, + __DEVTOOLS__: false // <-------- DISABLE redux-devtools here (btw, it causes initial double render!) + }), + ], + resolve: { + extensions: ['.js', '.json'], + modules: [ + path.resolve('node_modules'), + ] + }, + devtool: 'nosources-source-map' +}; -- GitLab From a1a38efac9f9d21d47d6fe15b67cb6d16db153bd Mon Sep 17 00:00:00 2001 From: Oleg Date: Wed, 21 Feb 2018 15:14:28 +0200 Subject: [PATCH 5/9] for me --- src/core/configs/ProtocolHandlers.config.js | 2 +- src/core/protocols/Topic.protocol.js | 2 +- src/core/protocols/Validator.protocol.js | 2 +- src/core/sagas/Root.saga.js | 4 +- src/core/services/MqttClient.service.js | 6 +- src/index.js | 1 + webpackConfigs/webPackServerApp.js | 24 ----- webpackConfigs/webpack-compiler.js | 100 ------------------- webpackConfigs/webpack.production.config.js | 101 -------------------- 9 files changed, 10 insertions(+), 232 deletions(-) delete mode 100755 webpackConfigs/webPackServerApp.js delete mode 100755 webpackConfigs/webpack-compiler.js delete mode 100755 webpackConfigs/webpack.production.config.js diff --git a/src/core/configs/ProtocolHandlers.config.js b/src/core/configs/ProtocolHandlers.config.js index 609e02112..5d70b2471 100644 --- a/src/core/configs/ProtocolHandlers.config.js +++ b/src/core/configs/ProtocolHandlers.config.js @@ -6,4 +6,4 @@ export const MESSAGE = 'message'; export const PERSON = 'person'; export const PROFILE = 'profile'; export const ROSTER = 'roster'; -export const SERVER = 'server'; \ No newline at end of file +export const SERVER = 'server'; //TODO: в чем смысл? где используется? \ No newline at end of file diff --git a/src/core/protocols/Topic.protocol.js b/src/core/protocols/Topic.protocol.js index 5d5d79d04..56222143b 100644 --- a/src/core/protocols/Topic.protocol.js +++ b/src/core/protocols/Topic.protocol.js @@ -6,7 +6,7 @@ const generateNumber = () => ( Math.floor((Math.random() * config.NODES) + 1) ); -const topic = (prefix = 'events', ...args) => { +const topic = (prefix = 'events', ...args) => { //TODO: ?? let pipe = [ prefix, ...args, diff --git a/src/core/protocols/Validator.protocol.js b/src/core/protocols/Validator.protocol.js index 718dbacab..fae615d81 100644 --- a/src/core/protocols/Validator.protocol.js +++ b/src/core/protocols/Validator.protocol.js @@ -1,6 +1,6 @@ import * as protocols from './Index.protocol'; -const isCorrespond = (x, num, name) => ( +const isCorrespond = (x, num, name) => ( // TODO: Rename variables , x? что делает эта функция?? Если вернет null? x == undefined ? false : (x.t == 106 ? false : (x.v.length === num && x.v[0].v.toLowerCase() === name)) diff --git a/src/core/sagas/Root.saga.js b/src/core/sagas/Root.saga.js index 97437e4aa..3d6c58016 100644 --- a/src/core/sagas/Root.saga.js +++ b/src/core/sagas/Root.saga.js @@ -4,8 +4,8 @@ import { authRequest, authResponse } from './Auth.saga'; function* rootSaga() { yield fork(connector); - yield fork(authRequest); - yield fork(authResponse); + yield fork(authRequest); //TODO: ??????? Move to auth saga + yield fork(authResponse); //TODO: ??????? } export { rootSaga }; \ No newline at end of file diff --git a/src/core/services/MqttClient.service.js b/src/core/services/MqttClient.service.js index ef480b83f..afba22066 100644 --- a/src/core/services/MqttClient.service.js +++ b/src/core/services/MqttClient.service.js @@ -24,9 +24,11 @@ const initSupplier = () => { ...mqttConfig }; - let client = mqtt.connect(formatPath(mqttConfig), config); + let client = mqtt.connect(formatPath(mqttConfig), config); - const xtendedClient = Object.assign(client, { + + + const xtendedClient = Object.assign(client, { onClose: () => { }, diff --git a/src/index.js b/src/index.js index f096eaa0a..7240844dd 100644 --- a/src/index.js +++ b/src/index.js @@ -10,6 +10,7 @@ import Reboot from 'material-ui/Reboot'; require('./favicon.ico'); + render(
diff --git a/webpackConfigs/webPackServerApp.js b/webpackConfigs/webPackServerApp.js deleted file mode 100755 index 8214f1e0a..000000000 --- a/webpackConfigs/webPackServerApp.js +++ /dev/null @@ -1,24 +0,0 @@ -// TODO: KL: Create webpack server on port 8083 and connect to GraphQL on port 8081 -import WebpackDevServer from "webpack-dev-server"; -import WebpackCompiler from "./webpack-compiler"; - -let client = new WebpackDevServer(WebpackCompiler, { - contentBase: "build/", - historyApiFallback: true, - hotOnly: true, - proxy: { - '/mqtt': { - target: 'ws://localhost:3083', - ws: true, - secure: false - } - }, - inline: true, - stats: { - colors: true - } -}) - -client.listen(3080, () => console.log( - "App listen on 3080" -)); \ No newline at end of file diff --git a/webpackConfigs/webpack-compiler.js b/webpackConfigs/webpack-compiler.js deleted file mode 100755 index 288007c60..000000000 --- a/webpackConfigs/webpack-compiler.js +++ /dev/null @@ -1,100 +0,0 @@ -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const webpack = require('webpack'); -const path = require('path'); -const vendors = require('../src/vendors'); - -var ROOT_PATH = path.resolve(__dirname); -var APP_PATH = path.resolve(ROOT_PATH,'../src'); -var BUILD_PATH = path.resolve(ROOT_PATH, '../build'); - -export default webpack({ - entry: { - vendor: [...vendors], - app: `${APP_PATH}/index.js` - }, - output: { - path: BUILD_PATH, - publicPath: '/', - filename: 'bundle.[name].[chunkhash].js' - }, - module: { - rules: [ - { test: /\.js$/, - exclude: /(node_modules)/, - use: [{ - loader: 'babel-loader' - }, - ], - }, - { test: /\.scss$/, - use: [ 'style-loader', 'css-loader', 'sass-loader?outputStyle=expanded&sourceMap' ], - }, - { test: /\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader' - }, - ], - }, - { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=application/font-woff' - }, - ] - }, - { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=application/font-woff' - }, - ], - }, - { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=application/octet-stream' - }, - ], - }, - { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'file-loader' - }, - ], - }, - { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=image/svg+xml' - }, - ], - }, - { test: /\.(jpe?g|png|gif|svg|ico)$/, - use: [{ - loader: 'file-loader?name=static/image/[name].[ext]' - }, - ], - } - ] - }, - plugins: [ - new HtmlWebpackPlugin({ - template: `${APP_PATH}/template.ejs` - }), - new webpack.optimize.CommonsChunkPlugin({ - names: ['vendor', 'manifest'], - minChunks: Infinity, - }), - new webpack.NamedModulesPlugin(), - new webpack.DefinePlugin({ - 'process.env': { - 'NODE_ENV': JSON.stringify(process.env.NODE_ENV) - } - }), - ], - resolve: { - extensions: ['.js', '.json'], - modules: [ - path.resolve('node_modules'), - ] - }, - devtool: 'eval-source-map' -}); \ No newline at end of file diff --git a/webpackConfigs/webpack.production.config.js b/webpackConfigs/webpack.production.config.js deleted file mode 100755 index d4466b197..000000000 --- a/webpackConfigs/webpack.production.config.js +++ /dev/null @@ -1,101 +0,0 @@ -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const webpack = require('webpack'); -const path = require('path'); -const vendors = require('../src/vendors'); - -var ROOT_PATH = path.resolve(__dirname); -var APP_PATH = path.resolve(ROOT_PATH,'../src'); -var BUILD_PATH = path.resolve(ROOT_PATH, '../src/build'); -console.log(APP_PATH); -module.exports = { - entry: { - vendor: [...vendors], - app: `${APP_PATH}/index.js` - }, - output: { - path: BUILD_PATH, - publicPath: './', - filename: 'bundle.[name].[chunkhash].js' - }, - module: { - rules: [ - { test: /\.js$/, - exclude: /(node_modules)/, - use: [{ - loader: 'babel-loader', - }, - ], - }, - { test: /\.scss$/, - use: [ 'style-loader', 'css-loader', 'sass-loader?outputStyle=expanded&sourceMap' ], - }, - { test: /\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader' - }, - ], - }, - { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=application/font-woff' - }, - ] - }, - { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=application/font-woff' - }, - ], - }, - { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=application/octet-stream' - }, - ], - }, - { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'file-loader' - }, - ], - }, - { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, - use: [{ - loader: 'url-loader?limit=10000&mimetype=image/svg+xml' - }, - ], - }, - { test: /\.(jpe?g|png|gif|svg|ico)$/, - use: [{ - loader: 'file-loader?name=static/image/[name].[ext]' - }, - ], - } - ] - }, - plugins: [ - new HtmlWebpackPlugin({ - template: `${APP_PATH}/template.ejs` - }), - new webpack.optimize.CommonsChunkPlugin({ - names: ['vendor', 'manifest'], - minChunks: Infinity, - }), - new webpack.NamedModulesPlugin(), - new webpack.DefinePlugin({ - __CLIENT__: true, - __SERVER__: false, - __DEVELOPMENT__: false, - __DEVTOOLS__: false // <-------- DISABLE redux-devtools here (btw, it causes initial double render!) - }), - ], - resolve: { - extensions: ['.js', '.json'], - modules: [ - path.resolve('node_modules'), - ] - }, - devtool: 'nosources-source-map' -}; -- GitLab From 30e3b54dad77124d8da75e75e7deb33a991117d1 Mon Sep 17 00:00:00 2001 From: Oleg Date: Thu, 22 Feb 2018 19:35:14 +0200 Subject: [PATCH 6/9] wip --- src/build/bundle.app.7ae4be9ce49ac7b83760.js | 72406 ---------------- .../bundle.app.7ae4be9ce49ac7b83760.js.map | 1 - .../bundle.manifest.d6a31cdbb5b34f305a18.js | 154 - ...undle.manifest.d6a31cdbb5b34f305a18.js.map | 1 - .../bundle.vendor.cfb6574262ec7949c15e.js | 35485 -------- .../bundle.vendor.cfb6574262ec7949c15e.js.map | 1 - src/build/index.html | 7 - src/build/static/image/Richard_Smith.png | Bin 9766 -> 0 bytes src/build/static/image/favicon.ico | Bin 3182 -> 0 bytes src/core/protocols/Index.protocol.js | 1 + src/core/protocols/Validator.protocol.js | 16 +- .../messages/utils/FormatConverter.message.js | 10 +- src/core/sagas/Auth.saga.js | 72 - src/core/sagas/Connector.saga.js | 21 - src/core/sagas/Root.saga.js | 11 - src/core/sagas/index.js | 4 - src/core/services/MqttEventChannel.service.js | 5 +- src/core/store/Configure.dev.store.js | 3 +- src/pages/NinjaApp/NinjaApp.js | 1 + 19 files changed, 22 insertions(+), 108177 deletions(-) delete mode 100644 src/build/bundle.app.7ae4be9ce49ac7b83760.js delete mode 100644 src/build/bundle.app.7ae4be9ce49ac7b83760.js.map delete mode 100644 src/build/bundle.manifest.d6a31cdbb5b34f305a18.js delete mode 100644 src/build/bundle.manifest.d6a31cdbb5b34f305a18.js.map delete mode 100644 src/build/bundle.vendor.cfb6574262ec7949c15e.js delete mode 100644 src/build/bundle.vendor.cfb6574262ec7949c15e.js.map delete mode 100644 src/build/index.html delete mode 100644 src/build/static/image/Richard_Smith.png delete mode 100644 src/build/static/image/favicon.ico delete mode 100644 src/core/sagas/Auth.saga.js delete mode 100644 src/core/sagas/Connector.saga.js delete mode 100644 src/core/sagas/Root.saga.js delete mode 100644 src/core/sagas/index.js diff --git a/src/build/bundle.app.7ae4be9ce49ac7b83760.js b/src/build/bundle.app.7ae4be9ce49ac7b83760.js deleted file mode 100644 index 96fb96279..000000000 --- a/src/build/bundle.app.7ae4be9ce49ac7b83760.js +++ /dev/null @@ -1,72406 +0,0 @@ -webpackJsonp([0],{ - -/***/ "./assets/img/Richard_Smith.png": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__.p + "static/image/Richard_Smith.png"; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/array/from.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/array/from.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/map.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/map.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/number/is-nan.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/number/is-nan.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/number/min-safe-integer.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/number/min-safe-integer.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/object/assign.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/assign.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/object/create.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/create.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/object/define-property.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/define-property.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/object/get-prototype-of.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/get-prototype-of.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/object/keys.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/keys.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/object/set-prototype-of.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/object/set-prototype-of.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/symbol.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/symbol/index.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/core-js/symbol/iterator.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__("./node_modules/core-js/library/fn/symbol/iterator.js"), __esModule: true }; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/classCallCheck.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -exports.default = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/createClass.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__("./node_modules/babel-runtime/core-js/object/define-property.js"); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - (0, _defineProperty2.default)(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -}(); - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/defineProperty.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__("./node_modules/babel-runtime/core-js/object/define-property.js"); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj, key, value) { - if (key in obj) { - (0, _defineProperty2.default)(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/extends.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _assign = __webpack_require__("./node_modules/babel-runtime/core-js/object/assign.js"); - -var _assign2 = _interopRequireDefault(_assign); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _assign2.default || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; -}; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/inherits.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _setPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/set-prototype-of.js"); - -var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); - -var _create = __webpack_require__("./node_modules/babel-runtime/core-js/object/create.js"); - -var _create2 = _interopRequireDefault(_create); - -var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); - } - - subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; -}; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -exports.default = function (obj, keys) { - var target = {}; - - for (var i in obj) { - if (keys.indexOf(i) >= 0) continue; - if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; - target[i] = obj[i]; - } - - return target; -}; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/possibleConstructorReturn.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; -}; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/toConsumableArray.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _from = __webpack_require__("./node_modules/babel-runtime/core-js/array/from.js"); - -var _from2 = _interopRequireDefault(_from); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } else { - return (0, _from2.default)(arr); - } -}; - -/***/ }), - -/***/ "./node_modules/babel-runtime/helpers/typeof.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__("./node_modules/babel-runtime/core-js/symbol/iterator.js"); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__("./node_modules/babel-runtime/core-js/symbol.js"); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), - -/***/ "./node_modules/base64-js/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.byteLength = byteLength -exports.toByteArray = toByteArray -exports.fromByteArray = fromByteArray - -var lookup = [] -var revLookup = [] -var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - -var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i -} - -// Support decoding URL-safe base64 strings, as Node.js does. -// See: https://en.wikipedia.org/wiki/Base64#URL_applications -revLookup['-'.charCodeAt(0)] = 62 -revLookup['_'.charCodeAt(0)] = 63 - -function placeHoldersCount (b64) { - var len = b64.length - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 -} - -function byteLength (b64) { - // base64 is 4/3 + up to two characters of the original data - return (b64.length * 3 / 4) - placeHoldersCount(b64) -} - -function toByteArray (b64) { - var i, l, tmp, placeHolders, arr - var len = b64.length - placeHolders = placeHoldersCount(b64) - - arr = new Arr((len * 3 / 4) - placeHolders) - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? len - 4 : len - - var L = 0 - - for (i = 0; i < l; i += 4) { - tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] - arr[L++] = (tmp >> 16) & 0xFF - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - if (placeHolders === 2) { - tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[L++] = tmp & 0xFF - } else if (placeHolders === 1) { - tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - return arr -} - -function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] -} - -function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = ((uint8[i] << 16) & 0xFF0000) + ((uint8[i + 1] << 8) & 0xFF00) + (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) - } - return output.join('') -} - -function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var output = '' - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - output += lookup[tmp >> 2] - output += lookup[(tmp << 4) & 0x3F] - output += '==' - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) - output += lookup[tmp >> 10] - output += lookup[(tmp >> 4) & 0x3F] - output += lookup[(tmp << 2) & 0x3F] - output += '=' - } - - parts.push(output) - - return parts.join('') -} - - -/***/ }), - -/***/ "./node_modules/bl/bl.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var DuplexStream = __webpack_require__("./node_modules/readable-stream/duplex-browser.js") - , util = __webpack_require__("./node_modules/util/util.js") - - -function BufferList (callback) { - if (!(this instanceof BufferList)) - return new BufferList(callback) - - this._bufs = [] - this.length = 0 - - if (typeof callback == 'function') { - this._callback = callback - - var piper = function piper (err) { - if (this._callback) { - this._callback(err) - this._callback = null - } - }.bind(this) - - this.on('pipe', function onPipe (src) { - src.on('error', piper) - }) - this.on('unpipe', function onUnpipe (src) { - src.removeListener('error', piper) - }) - } else { - this.append(callback) - } - - DuplexStream.call(this) -} - - -util.inherits(BufferList, DuplexStream) - - -BufferList.prototype._offset = function _offset (offset) { - var tot = 0, i = 0, _t - if (offset === 0) return [ 0, 0 ] - for (; i < this._bufs.length; i++) { - _t = tot + this._bufs[i].length - if (offset < _t || i == this._bufs.length - 1) - return [ i, offset - tot ] - tot = _t - } -} - - -BufferList.prototype.append = function append (buf) { - var i = 0 - - if (Buffer.isBuffer(buf)) { - this._appendBuffer(buf); - } else if (Array.isArray(buf)) { - for (; i < buf.length; i++) - this.append(buf[i]) - } else if (buf instanceof BufferList) { - // unwrap argument into individual BufferLists - for (; i < buf._bufs.length; i++) - this.append(buf._bufs[i]) - } else if (buf != null) { - // coerce number arguments to strings, since Buffer(number) does - // uninitialized memory allocation - if (typeof buf == 'number') - buf = buf.toString() - - this._appendBuffer(new Buffer(buf)); - } - - return this -} - - -BufferList.prototype._appendBuffer = function appendBuffer (buf) { - this._bufs.push(buf) - this.length += buf.length -} - - -BufferList.prototype._write = function _write (buf, encoding, callback) { - this._appendBuffer(buf) - - if (typeof callback == 'function') - callback() -} - - -BufferList.prototype._read = function _read (size) { - if (!this.length) - return this.push(null) - - size = Math.min(size, this.length) - this.push(this.slice(0, size)) - this.consume(size) -} - - -BufferList.prototype.end = function end (chunk) { - DuplexStream.prototype.end.call(this, chunk) - - if (this._callback) { - this._callback(null, this.slice()) - this._callback = null - } -} - - -BufferList.prototype.get = function get (index) { - return this.slice(index, index + 1)[0] -} - - -BufferList.prototype.slice = function slice (start, end) { - if (typeof start == 'number' && start < 0) - start += this.length - if (typeof end == 'number' && end < 0) - end += this.length - return this.copy(null, 0, start, end) -} - - -BufferList.prototype.copy = function copy (dst, dstStart, srcStart, srcEnd) { - if (typeof srcStart != 'number' || srcStart < 0) - srcStart = 0 - if (typeof srcEnd != 'number' || srcEnd > this.length) - srcEnd = this.length - if (srcStart >= this.length) - return dst || new Buffer(0) - if (srcEnd <= 0) - return dst || new Buffer(0) - - var copy = !!dst - , off = this._offset(srcStart) - , len = srcEnd - srcStart - , bytes = len - , bufoff = (copy && dstStart) || 0 - , start = off[1] - , l - , i - - // copy/slice everything - if (srcStart === 0 && srcEnd == this.length) { - if (!copy) { // slice, but full concat if multiple buffers - return this._bufs.length === 1 - ? this._bufs[0] - : Buffer.concat(this._bufs, this.length) - } - - // copy, need to copy individual buffers - for (i = 0; i < this._bufs.length; i++) { - this._bufs[i].copy(dst, bufoff) - bufoff += this._bufs[i].length - } - - return dst - } - - // easy, cheap case where it's a subset of one of the buffers - if (bytes <= this._bufs[off[0]].length - start) { - return copy - ? this._bufs[off[0]].copy(dst, dstStart, start, start + bytes) - : this._bufs[off[0]].slice(start, start + bytes) - } - - if (!copy) // a slice, we need something to copy in to - dst = new Buffer(len) - - for (i = off[0]; i < this._bufs.length; i++) { - l = this._bufs[i].length - start - - if (bytes > l) { - this._bufs[i].copy(dst, bufoff, start) - } else { - this._bufs[i].copy(dst, bufoff, start, start + bytes) - break - } - - bufoff += l - bytes -= l - - if (start) - start = 0 - } - - return dst -} - -BufferList.prototype.shallowSlice = function shallowSlice (start, end) { - start = start || 0 - end = end || this.length - - if (start < 0) - start += this.length - if (end < 0) - end += this.length - - var startOffset = this._offset(start) - , endOffset = this._offset(end) - , buffers = this._bufs.slice(startOffset[0], endOffset[0] + 1) - - if (endOffset[1] == 0) - buffers.pop() - else - buffers[buffers.length-1] = buffers[buffers.length-1].slice(0, endOffset[1]) - - if (startOffset[1] != 0) - buffers[0] = buffers[0].slice(startOffset[1]) - - return new BufferList(buffers) -} - -BufferList.prototype.toString = function toString (encoding, start, end) { - return this.slice(start, end).toString(encoding) -} - -BufferList.prototype.consume = function consume (bytes) { - while (this._bufs.length) { - if (bytes >= this._bufs[0].length) { - bytes -= this._bufs[0].length - this.length -= this._bufs[0].length - this._bufs.shift() - } else { - this._bufs[0] = this._bufs[0].slice(bytes) - this.length -= bytes - break - } - } - return this -} - - -BufferList.prototype.duplicate = function duplicate () { - var i = 0 - , copy = new BufferList() - - for (; i < this._bufs.length; i++) - copy.append(this._bufs[i]) - - return copy -} - - -BufferList.prototype.destroy = function destroy () { - this._bufs.length = 0 - this.length = 0 - this.push(null) -} - - -;(function () { - var methods = { - 'readDoubleBE' : 8 - , 'readDoubleLE' : 8 - , 'readFloatBE' : 4 - , 'readFloatLE' : 4 - , 'readInt32BE' : 4 - , 'readInt32LE' : 4 - , 'readUInt32BE' : 4 - , 'readUInt32LE' : 4 - , 'readInt16BE' : 2 - , 'readInt16LE' : 2 - , 'readUInt16BE' : 2 - , 'readUInt16LE' : 2 - , 'readInt8' : 1 - , 'readUInt8' : 1 - } - - for (var m in methods) { - (function (m) { - BufferList.prototype[m] = function (offset) { - return this.slice(offset, offset + methods[m])[m](0) - } - }(m)) - } -}()) - - -module.exports = BufferList - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/buffer/index.js").Buffer)) - -/***/ }), - -/***/ "./node_modules/brcast/dist/brcast.es.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -function createBroadcast (initialState) { - var listeners = {}; - var id = 1; - var _state = initialState; - - function getState () { - return _state - } - - function setState (state) { - _state = state; - var keys = Object.keys(listeners); - var i = 0; - var len = keys.length; - for (; i < len; i++) { - // if a listener gets unsubscribed during setState we just skip it - if (listeners[keys[i]]) { listeners[keys[i]](state); } - } - } - - // subscribe to changes and return the subscriptionId - function subscribe (listener) { - if (typeof listener !== 'function') { - throw new Error('listener must be a function.') - } - var currentId = id; - listeners[currentId] = listener; - id += 1; - return currentId - } - - // remove subscription by removing the listener function - function unsubscribe (id) { - listeners[id] = undefined; - } - - return { getState: getState, setState: setState, subscribe: subscribe, unsubscribe: unsubscribe } -} - -/* harmony default export */ __webpack_exports__["default"] = (createBroadcast); - - -/***/ }), - -/***/ "./node_modules/buffer/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) {/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ - - - -var base64 = __webpack_require__("./node_modules/base64-js/index.js") -var ieee754 = __webpack_require__("./node_modules/ieee754/index.js") -var isArray = __webpack_require__("./node_modules/isarray/index.js") - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ -Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined - ? global.TYPED_ARRAY_SUPPORT - : typedArraySupport() - -/* - * Export kMaxLength after typed array support is determined. - */ -exports.kMaxLength = kMaxLength() - -function typedArraySupport () { - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 && // typed array instances can be augmented - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } -} - -function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff -} - -function createBuffer (that, length) { - if (kMaxLength() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length) - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer(length) - } - that.length = length - } - - return that -} - -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - -function Buffer (arg, encodingOrOffset, length) { - if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { - return new Buffer(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(this, arg) - } - return from(this, arg, encodingOrOffset, length) -} - -Buffer.poolSize = 8192 // not used by this implementation - -// TODO: Legacy, not needed anymore. Remove in next major version. -Buffer._augment = function (arr) { - arr.__proto__ = Buffer.prototype - return arr -} - -function from (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(that, value, encodingOrOffset) - } - - return fromObject(that, value) -} - -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length) -} - -if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true - }) - } -} - -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } -} - -function alloc (that, size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(that, size).fill(fill, encoding) - : createBuffer(that, size).fill(fill) - } - return createBuffer(that, size) -} - -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(null, size, fill, encoding) -} - -function allocUnsafe (that, size) { - assertSize(size) - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0 - } - } - return that -} - -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(null, size) -} -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(null, size) -} - -function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0 - that = createBuffer(that, length) - - var actual = that.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual) - } - - return that -} - -function fromArrayLike (that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - that = createBuffer(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -function fromArrayBuffer (that, array, byteOffset, length) { - array.byteLength // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array) - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset) - } else { - array = new Uint8Array(array, byteOffset, length) - } - - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike(that, array) - } - return that -} - -function fromObject (that, obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - that = createBuffer(that, len) - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len) - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan(obj.length)) { - return createBuffer(that, 0) - } - return fromArrayLike(that, obj) - } - - if (obj.type === 'Buffer' && isArray(obj.data)) { - return fromArrayLike(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') -} - -function checked (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} - -Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) -} - -Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer -} - -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect -// Buffer instances. -Buffer.prototype._isBuffer = true - -function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i -} - -Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this -} - -Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this -} - -Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this -} - -Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' -} - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (Buffer.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') -} - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 -} - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) -} - -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) return i - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out -} - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end) - newBuf.__proto__ = Buffer.prototype - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start] - } - } - - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') -} - -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = (value & 0xff) - return offset + 1 -} - -function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } -} - -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } -} - -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ) - } - - return len -} - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if (code < 256) { - val = code - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : utf8ToBytes(new Buffer(val, encoding).toString()) - var len = bytes.length - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this -} - -// HELPER FUNCTIONS -// ================ - -var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') -} - -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) -} - -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -function isnan (val) { - return val !== val // eslint-disable-line no-self-compare -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/array/from.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.string.iterator.js"); -__webpack_require__("./node_modules/core-js/library/modules/es6.array.from.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Array.from; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/map.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.object.to-string.js"); -__webpack_require__("./node_modules/core-js/library/modules/es6.string.iterator.js"); -__webpack_require__("./node_modules/core-js/library/modules/web.dom.iterable.js"); -__webpack_require__("./node_modules/core-js/library/modules/es6.map.js"); -__webpack_require__("./node_modules/core-js/library/modules/es7.map.to-json.js"); -__webpack_require__("./node_modules/core-js/library/modules/es7.map.of.js"); -__webpack_require__("./node_modules/core-js/library/modules/es7.map.from.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Map; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/number/is-nan.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.number.is-nan.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Number.isNaN; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/number/min-safe-integer.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.number.min-safe-integer.js"); -module.exports = -0x1fffffffffffff; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/object/assign.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.object.assign.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.assign; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/object/create.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.object.create.js"); -var $Object = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object; -module.exports = function create(P, D) { - return $Object.create(P, D); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/object/define-property.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.object.define-property.js"); -var $Object = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object; -module.exports = function defineProperty(it, key, desc) { - return $Object.defineProperty(it, key, desc); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/object/get-prototype-of.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.object.get-prototype-of.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/object/keys.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.object.keys.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.keys; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/object/set-prototype-of.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.object.set-prototype-of.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/symbol/index.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.symbol.js"); -__webpack_require__("./node_modules/core-js/library/modules/es6.object.to-string.js"); -__webpack_require__("./node_modules/core-js/library/modules/es7.symbol.async-iterator.js"); -__webpack_require__("./node_modules/core-js/library/modules/es7.symbol.observable.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").Symbol; - - -/***/ }), - -/***/ "./node_modules/core-js/library/fn/symbol/iterator.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.string.iterator.js"); -__webpack_require__("./node_modules/core-js/library/modules/web.dom.iterable.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_wks-ext.js").f('iterator'); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_a-function.js": -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_add-to-unscopables.js": -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_an-instance.js": -/***/ (function(module, exports) { - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { - throw TypeError(name + ': incorrect invocation!'); - } return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_an-object.js": -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_array-from-iterable.js": -/***/ (function(module, exports, __webpack_require__) { - -var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); - -module.exports = function (iter, ITERATOR) { - var result = []; - forOf(iter, false, result.push, result, ITERATOR); - return result; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_array-includes.js": -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); -var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); -var toAbsoluteIndex = __webpack_require__("./node_modules/core-js/library/modules/_to-absolute-index.js"); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_array-methods.js": -/***/ (function(module, exports, __webpack_require__) { - -// 0 -> Array#forEach -// 1 -> Array#map -// 2 -> Array#filter -// 3 -> Array#some -// 4 -> Array#every -// 5 -> Array#find -// 6 -> Array#findIndex -var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); -var IObject = __webpack_require__("./node_modules/core-js/library/modules/_iobject.js"); -var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); -var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); -var asc = __webpack_require__("./node_modules/core-js/library/modules/_array-species-create.js"); -module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - for (;length > index; index++) if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - if (TYPE) { - if (IS_MAP) result[index] = res; // map - else if (res) switch (TYPE) { - case 3: return true; // some - case 5: return val; // find - case 6: return index; // findIndex - case 2: result.push(val); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_array-species-constructor.js": -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -var isArray = __webpack_require__("./node_modules/core-js/library/modules/_is-array.js"); -var SPECIES = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('species'); - -module.exports = function (original) { - var C; - if (isArray(original)) { - C = original.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return C === undefined ? Array : C; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_array-species-create.js": -/***/ (function(module, exports, __webpack_require__) { - -// 9.4.2.3 ArraySpeciesCreate(originalArray, length) -var speciesConstructor = __webpack_require__("./node_modules/core-js/library/modules/_array-species-constructor.js"); - -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_classof.js": -/***/ (function(module, exports, __webpack_require__) { - -// getting tag from 19.1.3.6 Object.prototype.toString() -var cof = __webpack_require__("./node_modules/core-js/library/modules/_cof.js"); -var TAG = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('toStringTag'); -// ES3 wrong here -var ARG = cof(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - // builtinTag case - : ARG ? cof(O) - // ES3 arguments fallback - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_cof.js": -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_collection-strong.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; -var create = __webpack_require__("./node_modules/core-js/library/modules/_object-create.js"); -var redefineAll = __webpack_require__("./node_modules/core-js/library/modules/_redefine-all.js"); -var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); -var anInstance = __webpack_require__("./node_modules/core-js/library/modules/_an-instance.js"); -var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); -var $iterDefine = __webpack_require__("./node_modules/core-js/library/modules/_iter-define.js"); -var step = __webpack_require__("./node_modules/core-js/library/modules/_iter-step.js"); -var setSpecies = __webpack_require__("./node_modules/core-js/library/modules/_set-species.js"); -var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); -var fastKey = __webpack_require__("./node_modules/core-js/library/modules/_meta.js").fastKey; -var validate = __webpack_require__("./node_modules/core-js/library/modules/_validate-collection.js"); -var SIZE = DESCRIPTORS ? '_s' : 'size'; - -var getEntry = function (that, key) { - // fast case - var index = fastKey(key); - var entry; - if (index !== 'F') return that._i[index]; - // frozen object case - for (entry = that._f; entry; entry = entry.n) { - if (entry.k == key) return entry; - } -}; - -module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = create(null); // index - that._f = undefined; // first entry - that._l = undefined; // last entry - that[SIZE] = 0; // size - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear() { - for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { - entry.r = true; - if (entry.p) entry.p = entry.p.n = undefined; - delete data[entry.i]; - } - that._f = that._l = undefined; - that[SIZE] = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function (key) { - var that = validate(this, NAME); - var entry = getEntry(that, key); - if (entry) { - var next = entry.n; - var prev = entry.p; - delete that._i[entry.i]; - entry.r = true; - if (prev) prev.n = next; - if (next) next.p = prev; - if (that._f == entry) that._f = next; - if (that._l == entry) that._l = prev; - that[SIZE]--; - } return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn /* , that = undefined */) { - validate(this, NAME); - var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - while (entry = entry ? entry.n : this._f) { - f(entry.v, entry.k, this); - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key) { - return !!getEntry(validate(this, NAME), key); - } - }); - if (DESCRIPTORS) dP(C.prototype, 'size', { - get: function () { - return validate(this, NAME)[SIZE]; - } - }); - return C; - }, - def: function (that, key, value) { - var entry = getEntry(that, key); - var prev, index; - // change existing entry - if (entry) { - entry.v = value; - // create new entry - } else { - that._l = entry = { - i: index = fastKey(key, true), // <- index - k: key, // <- key - v: value, // <- value - p: prev = that._l, // <- previous entry - n: undefined, // <- next entry - r: false // <- removed - }; - if (!that._f) that._f = entry; - if (prev) prev.n = entry; - that[SIZE]++; - // add to index - if (index !== 'F') that._i[index] = entry; - } return that; - }, - getEntry: getEntry, - setStrong: function (C, NAME, IS_MAP) { - // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - $iterDefine(C, NAME, function (iterated, kind) { - this._t = validate(iterated, NAME); // target - this._k = kind; // kind - this._l = undefined; // previous - }, function () { - var that = this; - var kind = that._k; - var entry = that._l; - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - // get next entry - if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { - // or finish the iteration - that._t = undefined; - return step(1); - } - // return step by kind - if (kind == 'keys') return step(0, entry.k); - if (kind == 'values') return step(0, entry.v); - return step(0, [entry.k, entry.v]); - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - - // add [@@species], 23.1.2.2, 23.2.2.2 - setSpecies(NAME); - } -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_collection-to-json.js": -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/DavidBruant/Map-Set.prototype.toJSON -var classof = __webpack_require__("./node_modules/core-js/library/modules/_classof.js"); -var from = __webpack_require__("./node_modules/core-js/library/modules/_array-from-iterable.js"); -module.exports = function (NAME) { - return function toJSON() { - if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); - return from(this); - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_collection.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -var meta = __webpack_require__("./node_modules/core-js/library/modules/_meta.js"); -var fails = __webpack_require__("./node_modules/core-js/library/modules/_fails.js"); -var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); -var redefineAll = __webpack_require__("./node_modules/core-js/library/modules/_redefine-all.js"); -var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); -var anInstance = __webpack_require__("./node_modules/core-js/library/modules/_an-instance.js"); -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); -var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; -var each = __webpack_require__("./node_modules/core-js/library/modules/_array-methods.js")(0); -var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); - -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - // create collection constructor - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME, '_c'); - target._c = new Base(); - if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target); - }); - each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) { - var IS_ADDER = KEY == 'add' || KEY == 'set'; - if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) { - anInstance(this, C, KEY); - if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false; - var result = this._c[KEY](a === 0 ? 0 : a, b); - return IS_ADDER ? this : result; - }); - }); - IS_WEAK || dP(C.prototype, 'size', { - get: function () { - return this._c.size; - } - }); - } - - setToStringTag(C, NAME); - - O[NAME] = C; - $export($export.G + $export.W + $export.F, O); - - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - - return C; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_core.js": -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.3' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_create-property.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $defineProperty = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); -var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); - -module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value)); - else object[index] = value; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_ctx.js": -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__("./node_modules/core-js/library/modules/_a-function.js"); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_defined.js": -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_descriptors.js": -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_dom-create.js": -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -var document = __webpack_require__("./node_modules/core-js/library/modules/_global.js").document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_enum-bug-keys.js": -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_enum-keys.js": -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); -var gOPS = __webpack_require__("./node_modules/core-js/library/modules/_object-gops.js"); -var pIE = __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js"); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_export.js": -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); -var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); -var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); -var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && key in exports) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_fails.js": -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_for-of.js": -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); -var call = __webpack_require__("./node_modules/core-js/library/modules/_iter-call.js"); -var isArrayIter = __webpack_require__("./node_modules/core-js/library/modules/_is-array-iter.js"); -var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); -var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); -var getIterFn = __webpack_require__("./node_modules/core-js/library/modules/core.get-iterator-method.js"); -var BREAK = {}; -var RETURN = {}; -var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - // fast case for arrays with default iterator - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; -exports.BREAK = BREAK; -exports.RETURN = RETURN; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_global.js": -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_has.js": -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_hide.js": -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); -var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_html.js": -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__("./node_modules/core-js/library/modules/_global.js").document; -module.exports = document && document.documentElement; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_ie8-dom-define.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { - return Object.defineProperty(__webpack_require__("./node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_iobject.js": -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__("./node_modules/core-js/library/modules/_cof.js"); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_is-array-iter.js": -/***/ (function(module, exports, __webpack_require__) { - -// check on default Array iterator -var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); -var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_is-array.js": -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__("./node_modules/core-js/library/modules/_cof.js"); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_is-object.js": -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_iter-call.js": -/***/ (function(module, exports, __webpack_require__) { - -// call something on iterator step with safe closing on error -var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_iter-create.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__("./node_modules/core-js/library/modules/_object-create.js"); -var descriptor = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); -var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__("./node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_iter-define.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__("./node_modules/core-js/library/modules/_library.js"); -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -var redefine = __webpack_require__("./node_modules/core-js/library/modules/_redefine.js"); -var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); -var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); -var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); -var $iterCreate = __webpack_require__("./node_modules/core-js/library/modules/_iter-create.js"); -var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); -var getPrototypeOf = __webpack_require__("./node_modules/core-js/library/modules/_object-gpo.js"); -var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = (!BUGGY && $native) || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_iter-detect.js": -/***/ (function(module, exports, __webpack_require__) { - -var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - // eslint-disable-next-line no-throw-literal - Array.from(riter, function () { throw 2; }); -} catch (e) { /* empty */ } - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_iter-step.js": -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_iterators.js": -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_library.js": -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_meta.js": -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__("./node_modules/core-js/library/modules/_uid.js")('meta'); -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); -var setDesc = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-assign.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// 19.1.2.1 Object.assign(target, source, ...) -var getKeys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); -var gOPS = __webpack_require__("./node_modules/core-js/library/modules/_object-gops.js"); -var pIE = __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js"); -var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); -var IObject = __webpack_require__("./node_modules/core-js/library/modules/_iobject.js"); -var $assign = Object.assign; - -// should work with symbols and should have deterministic property order (V8 bug) -module.exports = !$assign || __webpack_require__("./node_modules/core-js/library/modules/_fails.js")(function () { - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; - } return T; -} : $assign; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-create.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); -var dPs = __webpack_require__("./node_modules/core-js/library/modules/_object-dps.js"); -var enumBugKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-bug-keys.js"); -var IE_PROTO = __webpack_require__("./node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__("./node_modules/core-js/library/modules/_dom-create.js")('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__("./node_modules/core-js/library/modules/_html.js").appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-dp.js": -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); -var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/library/modules/_ie8-dom-define.js"); -var toPrimitive = __webpack_require__("./node_modules/core-js/library/modules/_to-primitive.js"); -var dP = Object.defineProperty; - -exports.f = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-dps.js": -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); -var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); -var getKeys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); - -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-gopd.js": -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js"); -var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); -var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); -var toPrimitive = __webpack_require__("./node_modules/core-js/library/modules/_to-primitive.js"); -var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); -var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/library/modules/_ie8-dom-define.js"); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-gopn-ext.js": -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); -var gOPN = __webpack_require__("./node_modules/core-js/library/modules/_object-gopn.js").f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-gopn.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys-internal.js"); -var hiddenKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-gops.js": -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-gpo.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); -var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); -var IE_PROTO = __webpack_require__("./node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-keys-internal.js": -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); -var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); -var arrayIndexOf = __webpack_require__("./node_modules/core-js/library/modules/_array-includes.js")(false); -var IE_PROTO = __webpack_require__("./node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-keys.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys-internal.js"); -var enumBugKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-bug-keys.js"); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-pie.js": -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_object-sap.js": -/***/ (function(module, exports, __webpack_require__) { - -// most Object methods by ES6 should accept primitives -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); -var fails = __webpack_require__("./node_modules/core-js/library/modules/_fails.js"); -module.exports = function (KEY, exec) { - var fn = (core.Object || {})[KEY] || Object[KEY]; - var exp = {}; - exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_property-desc.js": -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_redefine-all.js": -/***/ (function(module, exports, __webpack_require__) { - -var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); -module.exports = function (target, src, safe) { - for (var key in src) { - if (safe && target[key]) target[key] = src[key]; - else hide(target, key, src[key]); - } return target; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_redefine.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_set-collection-from.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// https://tc39.github.io/proposal-setmap-offrom/ -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -var aFunction = __webpack_require__("./node_modules/core-js/library/modules/_a-function.js"); -var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); -var forOf = __webpack_require__("./node_modules/core-js/library/modules/_for-of.js"); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { - var mapFn = arguments[1]; - var mapping, A, n, cb; - aFunction(this); - mapping = mapFn !== undefined; - if (mapping) aFunction(mapFn); - if (source == undefined) return new this(); - A = []; - if (mapping) { - n = 0; - cb = ctx(mapFn, arguments[2], 2); - forOf(source, false, function (nextItem) { - A.push(cb(nextItem, n++)); - }); - } else { - forOf(source, false, A.push, A); - } - return new this(A); - } }); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_set-collection-of.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// https://tc39.github.io/proposal-setmap-offrom/ -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { of: function of() { - var length = arguments.length; - var A = new Array(length); - while (length--) A[length] = arguments[length]; - return new this(A); - } }); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_set-proto.js": -/***/ (function(module, exports, __webpack_require__) { - -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); -var check = function (O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function (test, buggy, set) { - try { - set = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__("./node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { buggy = true; } - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_set-species.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); -var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); -var dP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); -var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); -var SPECIES = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('species'); - -module.exports = function (KEY) { - var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function () { return this; } - }); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_set-to-string-tag.js": -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; -var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); -var TAG = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_shared-key.js": -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__("./node_modules/core-js/library/modules/_shared.js")('keys'); -var uid = __webpack_require__("./node_modules/core-js/library/modules/_uid.js"); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_shared.js": -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); -module.exports = function (key) { - return store[key] || (store[key] = {}); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_string-at.js": -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__("./node_modules/core-js/library/modules/_to-integer.js"); -var defined = __webpack_require__("./node_modules/core-js/library/modules/_defined.js"); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_to-absolute-index.js": -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__("./node_modules/core-js/library/modules/_to-integer.js"); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_to-integer.js": -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_to-iobject.js": -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__("./node_modules/core-js/library/modules/_iobject.js"); -var defined = __webpack_require__("./node_modules/core-js/library/modules/_defined.js"); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_to-length.js": -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__("./node_modules/core-js/library/modules/_to-integer.js"); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_to-object.js": -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__("./node_modules/core-js/library/modules/_defined.js"); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_to-primitive.js": -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_uid.js": -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_validate-collection.js": -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_wks-define.js": -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); -var core = __webpack_require__("./node_modules/core-js/library/modules/_core.js"); -var LIBRARY = __webpack_require__("./node_modules/core-js/library/modules/_library.js"); -var wksExt = __webpack_require__("./node_modules/core-js/library/modules/_wks-ext.js"); -var defineProperty = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_wks-ext.js": -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__("./node_modules/core-js/library/modules/_wks.js"); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/_wks.js": -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__("./node_modules/core-js/library/modules/_shared.js")('wks'); -var uid = __webpack_require__("./node_modules/core-js/library/modules/_uid.js"); -var Symbol = __webpack_require__("./node_modules/core-js/library/modules/_global.js").Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/core.get-iterator-method.js": -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__("./node_modules/core-js/library/modules/_classof.js"); -var ITERATOR = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('iterator'); -var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.array.from.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var ctx = __webpack_require__("./node_modules/core-js/library/modules/_ctx.js"); -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); -var call = __webpack_require__("./node_modules/core-js/library/modules/_iter-call.js"); -var isArrayIter = __webpack_require__("./node_modules/core-js/library/modules/_is-array-iter.js"); -var toLength = __webpack_require__("./node_modules/core-js/library/modules/_to-length.js"); -var createProperty = __webpack_require__("./node_modules/core-js/library/modules/_create-property.js"); -var getIterFn = __webpack_require__("./node_modules/core-js/library/modules/core.get-iterator-method.js"); - -$export($export.S + $export.F * !__webpack_require__("./node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', { - // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) - from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - // if object isn't iterable or it's array with default iterator - use simple case - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - result.length = index; - return result; - } -}); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.array.iterator.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__("./node_modules/core-js/library/modules/_add-to-unscopables.js"); -var step = __webpack_require__("./node_modules/core-js/library/modules/_iter-step.js"); -var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); -var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.map.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var strong = __webpack_require__("./node_modules/core-js/library/modules/_collection-strong.js"); -var validate = __webpack_require__("./node_modules/core-js/library/modules/_validate-collection.js"); -var MAP = 'Map'; - -// 23.1 Map Objects -module.exports = __webpack_require__("./node_modules/core-js/library/modules/_collection.js")(MAP, function (get) { - return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key) { - var entry = strong.getEntry(validate(this, MAP), key); - return entry && entry.v; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value) { - return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); - } -}, strong, true); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.number.is-nan.js": -/***/ (function(module, exports, __webpack_require__) { - -// 20.1.2.4 Number.isNaN(number) -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); - -$export($export.S, 'Number', { - isNaN: function isNaN(number) { - // eslint-disable-next-line no-self-compare - return number != number; - } -}); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.number.min-safe-integer.js": -/***/ (function(module, exports, __webpack_require__) { - -// 20.1.2.10 Number.MIN_SAFE_INTEGER -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); - -$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.object.assign.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.3.1 Object.assign(target, source) -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); - -$export($export.S + $export.F, 'Object', { assign: __webpack_require__("./node_modules/core-js/library/modules/_object-assign.js") }); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.object.create.js": -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -$export($export.S, 'Object', { create: __webpack_require__("./node_modules/core-js/library/modules/_object-create.js") }); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.object.define-property.js": -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !__webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js").f }); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.object.get-prototype-of.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 Object.getPrototypeOf(O) -var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); -var $getPrototypeOf = __webpack_require__("./node_modules/core-js/library/modules/_object-gpo.js"); - -__webpack_require__("./node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () { - return function getPrototypeOf(it) { - return $getPrototypeOf(toObject(it)); - }; -}); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.object.keys.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 Object.keys(O) -var toObject = __webpack_require__("./node_modules/core-js/library/modules/_to-object.js"); -var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); - -__webpack_require__("./node_modules/core-js/library/modules/_object-sap.js")('keys', function () { - return function keys(it) { - return $keys(toObject(it)); - }; -}); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.object.set-prototype-of.js": -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.3.19 Object.setPrototypeOf(O, proto) -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -$export($export.S, 'Object', { setPrototypeOf: __webpack_require__("./node_modules/core-js/library/modules/_set-proto.js").set }); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.object.to-string.js": -/***/ (function(module, exports) { - - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.string.iterator.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__("./node_modules/core-js/library/modules/_string-at.js")(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__("./node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es6.symbol.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); -var has = __webpack_require__("./node_modules/core-js/library/modules/_has.js"); -var DESCRIPTORS = __webpack_require__("./node_modules/core-js/library/modules/_descriptors.js"); -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); -var redefine = __webpack_require__("./node_modules/core-js/library/modules/_redefine.js"); -var META = __webpack_require__("./node_modules/core-js/library/modules/_meta.js").KEY; -var $fails = __webpack_require__("./node_modules/core-js/library/modules/_fails.js"); -var shared = __webpack_require__("./node_modules/core-js/library/modules/_shared.js"); -var setToStringTag = __webpack_require__("./node_modules/core-js/library/modules/_set-to-string-tag.js"); -var uid = __webpack_require__("./node_modules/core-js/library/modules/_uid.js"); -var wks = __webpack_require__("./node_modules/core-js/library/modules/_wks.js"); -var wksExt = __webpack_require__("./node_modules/core-js/library/modules/_wks-ext.js"); -var wksDefine = __webpack_require__("./node_modules/core-js/library/modules/_wks-define.js"); -var enumKeys = __webpack_require__("./node_modules/core-js/library/modules/_enum-keys.js"); -var isArray = __webpack_require__("./node_modules/core-js/library/modules/_is-array.js"); -var anObject = __webpack_require__("./node_modules/core-js/library/modules/_an-object.js"); -var isObject = __webpack_require__("./node_modules/core-js/library/modules/_is-object.js"); -var toIObject = __webpack_require__("./node_modules/core-js/library/modules/_to-iobject.js"); -var toPrimitive = __webpack_require__("./node_modules/core-js/library/modules/_to-primitive.js"); -var createDesc = __webpack_require__("./node_modules/core-js/library/modules/_property-desc.js"); -var _create = __webpack_require__("./node_modules/core-js/library/modules/_object-create.js"); -var gOPNExt = __webpack_require__("./node_modules/core-js/library/modules/_object-gopn-ext.js"); -var $GOPD = __webpack_require__("./node_modules/core-js/library/modules/_object-gopd.js"); -var $DP = __webpack_require__("./node_modules/core-js/library/modules/_object-dp.js"); -var $keys = __webpack_require__("./node_modules/core-js/library/modules/_object-keys.js"); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__("./node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__("./node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable; - __webpack_require__("./node_modules/core-js/library/modules/_object-gops.js").f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__("./node_modules/core-js/library/modules/_library.js")) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__("./node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es7.map.from.js": -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from -__webpack_require__("./node_modules/core-js/library/modules/_set-collection-from.js")('Map'); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es7.map.of.js": -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of -__webpack_require__("./node_modules/core-js/library/modules/_set-collection-of.js")('Map'); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es7.map.to-json.js": -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/DavidBruant/Map-Set.prototype.toJSON -var $export = __webpack_require__("./node_modules/core-js/library/modules/_export.js"); - -$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__("./node_modules/core-js/library/modules/_collection-to-json.js")('Map') }); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es7.symbol.async-iterator.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/_wks-define.js")('asyncIterator'); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/es7.symbol.observable.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/_wks-define.js")('observable'); - - -/***/ }), - -/***/ "./node_modules/core-js/library/modules/web.dom.iterable.js": -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__("./node_modules/core-js/library/modules/es6.array.iterator.js"); -var global = __webpack_require__("./node_modules/core-js/library/modules/_global.js"); -var hide = __webpack_require__("./node_modules/core-js/library/modules/_hide.js"); -var Iterators = __webpack_require__("./node_modules/core-js/library/modules/_iterators.js"); -var TO_STRING_TAG = __webpack_require__("./node_modules/core-js/library/modules/_wks.js")('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), - -/***/ "./node_modules/core-util-is/lib/util.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/buffer/index.js").Buffer)) - -/***/ }), - -/***/ "./node_modules/css-vendor/lib/camelize.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = camelize; -var regExp = /[-\s]+(.)?/g; - -/** - * Convert dash separated strings to camel cased. - * - * @param {String} str - * @return {String} - */ -function camelize(str) { - return str.replace(regExp, toUpper); -} - -function toUpper(match, c) { - return c ? c.toUpperCase() : ''; -} - -/***/ }), - -/***/ "./node_modules/css-vendor/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.supportedValue = exports.supportedProperty = exports.prefix = undefined; - -var _prefix = __webpack_require__("./node_modules/css-vendor/lib/prefix.js"); - -var _prefix2 = _interopRequireDefault(_prefix); - -var _supportedProperty = __webpack_require__("./node_modules/css-vendor/lib/supported-property.js"); - -var _supportedProperty2 = _interopRequireDefault(_supportedProperty); - -var _supportedValue = __webpack_require__("./node_modules/css-vendor/lib/supported-value.js"); - -var _supportedValue2 = _interopRequireDefault(_supportedValue); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = { - prefix: _prefix2['default'], - supportedProperty: _supportedProperty2['default'], - supportedValue: _supportedValue2['default'] -}; /** - * CSS Vendor prefix detection and property feature testing. - * - * @copyright Oleg Slobodskoi 2015 - * @website https://github.com/jsstyles/css-vendor - * @license MIT - */ - -exports.prefix = _prefix2['default']; -exports.supportedProperty = _supportedProperty2['default']; -exports.supportedValue = _supportedValue2['default']; - -/***/ }), - -/***/ "./node_modules/css-vendor/lib/prefix.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); - -var _isInBrowser2 = _interopRequireDefault(_isInBrowser); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var js = ''; /** - * Export javascript style and css style vendor prefixes. - * Based on "transform" support test. - */ - -var css = ''; - -// We should not do anything if required serverside. -if (_isInBrowser2['default']) { - // Order matters. We need to check Webkit the last one because - // other vendors use to add Webkit prefixes to some properties - var jsCssMap = { - Moz: '-moz-', - // IE did it wrong again ... - ms: '-ms-', - O: '-o-', - Webkit: '-webkit-' - }; - var style = document.createElement('p').style; - var testProp = 'Transform'; - - for (var key in jsCssMap) { - if (key + testProp in style) { - js = key; - css = jsCssMap[key]; - break; - } - } -} - -/** - * Vendor prefix string for the current browser. - * - * @type {{js: String, css: String}} - * @api public - */ -exports['default'] = { js: js, css: css }; - -/***/ }), - -/***/ "./node_modules/css-vendor/lib/supported-property.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = supportedProperty; - -var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); - -var _isInBrowser2 = _interopRequireDefault(_isInBrowser); - -var _prefix = __webpack_require__("./node_modules/css-vendor/lib/prefix.js"); - -var _prefix2 = _interopRequireDefault(_prefix); - -var _camelize = __webpack_require__("./node_modules/css-vendor/lib/camelize.js"); - -var _camelize2 = _interopRequireDefault(_camelize); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var el = void 0; -var cache = {}; - -if (_isInBrowser2['default']) { - el = document.createElement('p'); - - /** - * We test every property on vendor prefix requirement. - * Once tested, result is cached. It gives us up to 70% perf boost. - * http://jsperf.com/element-style-object-access-vs-plain-object - * - * Prefill cache with known css properties to reduce amount of - * properties we need to feature test at runtime. - * http://davidwalsh.name/vendor-prefix - */ - var computed = window.getComputedStyle(document.documentElement, ''); - for (var key in computed) { - if (!isNaN(key)) cache[computed[key]] = computed[key]; - } -} - -/** - * Test if a property is supported, returns supported property with vendor - * prefix if required. Returns `false` if not supported. - * - * @param {String} prop dash separated - * @return {String|Boolean} - * @api public - */ -function supportedProperty(prop) { - // For server-side rendering. - if (!el) return prop; - - // We have not tested this prop yet, lets do the test. - if (cache[prop] != null) return cache[prop]; - - // Camelization is required because we can't test using - // css syntax for e.g. in FF. - // Test if property is supported as it is. - if ((0, _camelize2['default'])(prop) in el.style) { - cache[prop] = prop; - } - // Test if property is supported with vendor prefix. - else if (_prefix2['default'].js + (0, _camelize2['default'])('-' + prop) in el.style) { - cache[prop] = _prefix2['default'].css + prop; - } else { - cache[prop] = false; - } - - return cache[prop]; -} - -/***/ }), - -/***/ "./node_modules/css-vendor/lib/supported-value.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = supportedValue; - -var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); - -var _isInBrowser2 = _interopRequireDefault(_isInBrowser); - -var _prefix = __webpack_require__("./node_modules/css-vendor/lib/prefix.js"); - -var _prefix2 = _interopRequireDefault(_prefix); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var cache = {}; -var el = void 0; - -if (_isInBrowser2['default']) el = document.createElement('p'); - -/** - * Returns prefixed value if needed. Returns `false` if value is not supported. - * - * @param {String} property - * @param {String} value - * @return {String|Boolean} - * @api public - */ -function supportedValue(property, value) { - // For server-side rendering. - if (!el) return value; - - // It is a string or a number as a string like '1'. - // We want only prefixable values here. - if (typeof value !== 'string' || !isNaN(parseInt(value, 10))) return value; - - var cacheKey = property + value; - - if (cache[cacheKey] != null) return cache[cacheKey]; - - // IE can even throw an error in some cases, for e.g. style.content = 'bar' - try { - // Test value as it is. - el.style[property] = value; - } catch (err) { - cache[cacheKey] = false; - return false; - } - - // Value is supported as it is. - if (el.style[property] !== '') { - cache[cacheKey] = value; - } else { - // Test value with vendor prefix. - value = _prefix2['default'].css + value; - - // Hardcode test to convert "flex" to "-ms-flexbox" for IE10. - if (value === '-ms-flex') value = '-ms-flexbox'; - - el.style[property] = value; - - // Value is supported with vendor prefix. - if (el.style[property] !== '') cache[cacheKey] = value; - } - - if (!cache[cacheKey]) cache[cacheKey] = false; - - // Reset style value. - el.style[property] = ''; - - return cache[cacheKey]; -} - -/***/ }), - -/***/ "./node_modules/deepmerge/dist/es.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -var isMergeableObject = function isMergeableObject(value) { - return isNonNullObject(value) - && !isSpecial(value) -}; - -function isNonNullObject(value) { - return !!value && typeof value === 'object' -} - -function isSpecial(value) { - var stringValue = Object.prototype.toString.call(value); - - return stringValue === '[object RegExp]' - || stringValue === '[object Date]' - || isReactElement(value) -} - -// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 -var canUseSymbol = typeof Symbol === 'function' && Symbol.for; -var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; - -function isReactElement(value) { - return value.$$typeof === REACT_ELEMENT_TYPE -} - -function emptyTarget(val) { - return Array.isArray(val) ? [] : {} -} - -function cloneUnlessOtherwiseSpecified(value, optionsArgument) { - var clone = !optionsArgument || optionsArgument.clone !== false; - - return (clone && isMergeableObject(value)) - ? deepmerge(emptyTarget(value), value, optionsArgument) - : value -} - -function defaultArrayMerge(target, source, optionsArgument) { - return target.concat(source).map(function(element) { - return cloneUnlessOtherwiseSpecified(element, optionsArgument) - }) -} - -function mergeObject(target, source, optionsArgument) { - var destination = {}; - if (isMergeableObject(target)) { - Object.keys(target).forEach(function(key) { - destination[key] = cloneUnlessOtherwiseSpecified(target[key], optionsArgument); - }); - } - Object.keys(source).forEach(function(key) { - if (!isMergeableObject(source[key]) || !target[key]) { - destination[key] = cloneUnlessOtherwiseSpecified(source[key], optionsArgument); - } else { - destination[key] = deepmerge(target[key], source[key], optionsArgument); - } - }); - return destination -} - -function deepmerge(target, source, optionsArgument) { - var sourceIsArray = Array.isArray(source); - var targetIsArray = Array.isArray(target); - var options = optionsArgument || { arrayMerge: defaultArrayMerge }; - var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; - - if (!sourceAndTargetTypesMatch) { - return cloneUnlessOtherwiseSpecified(source, optionsArgument) - } else if (sourceIsArray) { - var arrayMerge = options.arrayMerge || defaultArrayMerge; - return arrayMerge(target, source, optionsArgument) - } else { - return mergeObject(target, source, optionsArgument) - } -} - -deepmerge.all = function deepmergeAll(array, optionsArgument) { - if (!Array.isArray(array)) { - throw new Error('first argument should be an array') - } - - return array.reduce(function(prev, next) { - return deepmerge(prev, next, optionsArgument) - }, {}) -}; - -var deepmerge_1 = deepmerge; - -/* harmony default export */ __webpack_exports__["default"] = (deepmerge_1); - - -/***/ }), - -/***/ "./node_modules/dom-helpers/activeElement.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = activeElement; - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function activeElement() { - var doc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _ownerDocument2.default)(); - - try { - return doc.activeElement; - } catch (e) {/* ie throws if no active element */} -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/class/addClass.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = addClass; - -var _hasClass = __webpack_require__("./node_modules/dom-helpers/class/hasClass.js"); - -var _hasClass2 = _interopRequireDefault(_hasClass); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function addClass(element, className) { - if (element.classList) element.classList.add(className);else if (!(0, _hasClass2.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className); -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/class/hasClass.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = hasClass; -function hasClass(element, className) { - if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1; -} -module.exports = exports["default"]; - -/***/ }), - -/***/ "./node_modules/dom-helpers/class/removeClass.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function replaceClassName(origClass, classToRemove) { - return origClass.replace(new RegExp('(^|\\s)' + classToRemove + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, ''); -} - -module.exports = function removeClass(element, className) { - if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className)); -}; - -/***/ }), - -/***/ "./node_modules/dom-helpers/ownerDocument.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = ownerDocument; -function ownerDocument(node) { - return node && node.ownerDocument || document; -} -module.exports = exports["default"]; - -/***/ }), - -/***/ "./node_modules/dom-helpers/ownerWindow.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = ownerWindow; - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function ownerWindow(node) { - var doc = (0, _ownerDocument2.default)(node); - return doc && doc.defaultView || doc.parentWindow; -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/query/contains.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); - -var _inDOM2 = _interopRequireDefault(_inDOM); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function () { - // HTML DOM and SVG DOM may have different support levels, - // so we need to check on context instead of a document root element. - return _inDOM2.default ? function (context, node) { - if (context.contains) { - return context.contains(node); - } else if (context.compareDocumentPosition) { - return context === node || !!(context.compareDocumentPosition(node) & 16); - } else { - return fallback(context, node); - } - } : fallback; -}(); - -function fallback(context, node) { - if (node) do { - if (node === context) return true; - } while (node = node.parentNode); - - return false; -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/query/isWindow.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = getWindow; -function getWindow(node) { - return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; -} -module.exports = exports["default"]; - -/***/ }), - -/***/ "./node_modules/dom-helpers/style/getComputedStyle.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _getComputedStyle; - -var _camelizeStyle = __webpack_require__("./node_modules/dom-helpers/util/camelizeStyle.js"); - -var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var rposition = /^(top|right|bottom|left)$/; -var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i; - -function _getComputedStyle(node) { - if (!node) throw new TypeError('No Element passed to `getComputedStyle()`'); - var doc = node.ownerDocument; - - return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : { - //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72 - getPropertyValue: function getPropertyValue(prop) { - var style = node.style; - - prop = (0, _camelizeStyle2.default)(prop); - - if (prop == 'float') prop = 'styleFloat'; - - var current = node.currentStyle[prop] || null; - - if (current == null && style && style[prop]) current = style[prop]; - - if (rnumnonpx.test(current) && !rposition.test(prop)) { - // Remember the original values - var left = style.left; - var runStyle = node.runtimeStyle; - var rsLeft = runStyle && runStyle.left; - - // Put in the new values to get a computed value out - if (rsLeft) runStyle.left = node.currentStyle.left; - - style.left = prop === 'fontSize' ? '1em' : current; - current = style.pixelLeft + 'px'; - - // Revert the changed values - style.left = left; - if (rsLeft) runStyle.left = rsLeft; - } - - return current; - } - }; -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/style/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = style; - -var _camelizeStyle = __webpack_require__("./node_modules/dom-helpers/util/camelizeStyle.js"); - -var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle); - -var _hyphenateStyle = __webpack_require__("./node_modules/dom-helpers/util/hyphenateStyle.js"); - -var _hyphenateStyle2 = _interopRequireDefault(_hyphenateStyle); - -var _getComputedStyle2 = __webpack_require__("./node_modules/dom-helpers/style/getComputedStyle.js"); - -var _getComputedStyle3 = _interopRequireDefault(_getComputedStyle2); - -var _removeStyle = __webpack_require__("./node_modules/dom-helpers/style/removeStyle.js"); - -var _removeStyle2 = _interopRequireDefault(_removeStyle); - -var _properties = __webpack_require__("./node_modules/dom-helpers/transition/properties.js"); - -var _isTransform = __webpack_require__("./node_modules/dom-helpers/transition/isTransform.js"); - -var _isTransform2 = _interopRequireDefault(_isTransform); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function style(node, property, value) { - var css = ''; - var transforms = ''; - var props = property; - - if (typeof property === 'string') { - if (value === undefined) { - return node.style[(0, _camelizeStyle2.default)(property)] || (0, _getComputedStyle3.default)(node).getPropertyValue((0, _hyphenateStyle2.default)(property)); - } else { - (props = {})[property] = value; - } - } - - Object.keys(props).forEach(function (key) { - var value = props[key]; - if (!value && value !== 0) { - (0, _removeStyle2.default)(node, (0, _hyphenateStyle2.default)(key)); - } else if ((0, _isTransform2.default)(key)) { - transforms += key + '(' + value + ') '; - } else { - css += (0, _hyphenateStyle2.default)(key) + ': ' + value + ';'; - } - }); - - if (transforms) { - css += _properties.transform + ': ' + transforms + ';'; - } - - node.style.cssText += ';' + css; -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/style/removeStyle.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = removeStyle; -function removeStyle(node, key) { - return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key); -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/transition/isTransform.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = isTransform; -var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i; - -function isTransform(property) { - return !!(property && supportedTransforms.test(property)); -} -module.exports = exports["default"]; - -/***/ }), - -/***/ "./node_modules/dom-helpers/transition/properties.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = undefined; - -var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); - -var _inDOM2 = _interopRequireDefault(_inDOM); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var transform = 'transform'; -var prefix = void 0, - transitionEnd = void 0, - animationEnd = void 0; -var transitionProperty = void 0, - transitionDuration = void 0, - transitionTiming = void 0, - transitionDelay = void 0; -var animationName = void 0, - animationDuration = void 0, - animationTiming = void 0, - animationDelay = void 0; - -if (_inDOM2.default) { - var _getTransitionPropert = getTransitionProperties(); - - prefix = _getTransitionPropert.prefix; - exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd; - exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd; - - - exports.transform = transform = prefix + '-' + transform; - exports.transitionProperty = transitionProperty = prefix + '-transition-property'; - exports.transitionDuration = transitionDuration = prefix + '-transition-duration'; - exports.transitionDelay = transitionDelay = prefix + '-transition-delay'; - exports.transitionTiming = transitionTiming = prefix + '-transition-timing-function'; - - exports.animationName = animationName = prefix + '-animation-name'; - exports.animationDuration = animationDuration = prefix + '-animation-duration'; - exports.animationTiming = animationTiming = prefix + '-animation-delay'; - exports.animationDelay = animationDelay = prefix + '-animation-timing-function'; -} - -exports.transform = transform; -exports.transitionProperty = transitionProperty; -exports.transitionTiming = transitionTiming; -exports.transitionDelay = transitionDelay; -exports.transitionDuration = transitionDuration; -exports.transitionEnd = transitionEnd; -exports.animationName = animationName; -exports.animationDuration = animationDuration; -exports.animationTiming = animationTiming; -exports.animationDelay = animationDelay; -exports.animationEnd = animationEnd; -exports.default = { - transform: transform, - end: transitionEnd, - property: transitionProperty, - timing: transitionTiming, - delay: transitionDelay, - duration: transitionDuration -}; - - -function getTransitionProperties() { - var style = document.createElement('div').style; - - var vendorMap = { - O: function O(e) { - return 'o' + e.toLowerCase(); - }, - Moz: function Moz(e) { - return e.toLowerCase(); - }, - Webkit: function Webkit(e) { - return 'webkit' + e; - }, - ms: function ms(e) { - return 'MS' + e; - } - }; - - var vendors = Object.keys(vendorMap); - - var transitionEnd = void 0, - animationEnd = void 0; - var prefix = ''; - - for (var i = 0; i < vendors.length; i++) { - var vendor = vendors[i]; - - if (vendor + 'TransitionProperty' in style) { - prefix = '-' + vendor.toLowerCase(); - transitionEnd = vendorMap[vendor]('TransitionEnd'); - animationEnd = vendorMap[vendor]('AnimationEnd'); - break; - } - } - - if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend'; - - if (!animationEnd && 'animationName' in style) animationEnd = 'animationend'; - - style = null; - - return { animationEnd: animationEnd, transitionEnd: transitionEnd, prefix: prefix }; -} - -/***/ }), - -/***/ "./node_modules/dom-helpers/util/camelize.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = camelize; -var rHyphen = /-(.)/g; - -function camelize(string) { - return string.replace(rHyphen, function (_, chr) { - return chr.toUpperCase(); - }); -} -module.exports = exports["default"]; - -/***/ }), - -/***/ "./node_modules/dom-helpers/util/camelizeStyle.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = camelizeStyleName; - -var _camelize = __webpack_require__("./node_modules/dom-helpers/util/camelize.js"); - -var _camelize2 = _interopRequireDefault(_camelize); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var msPattern = /^-ms-/; /** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js - */ -function camelizeStyleName(string) { - return (0, _camelize2.default)(string.replace(msPattern, 'ms-')); -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/util/hyphenate.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = hyphenate; - -var rUpper = /([A-Z])/g; - -function hyphenate(string) { - return string.replace(rUpper, '-$1').toLowerCase(); -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/util/hyphenateStyle.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = hyphenateStyleName; - -var _hyphenate = __webpack_require__("./node_modules/dom-helpers/util/hyphenate.js"); - -var _hyphenate2 = _interopRequireDefault(_hyphenate); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var msPattern = /^ms-/; /** - * Copyright 2013-2014, Facebook, Inc. - * All rights reserved. - * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js - */ - -function hyphenateStyleName(string) { - return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-'); -} -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/util/inDOM.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement); -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/dom-helpers/util/scrollbarSize.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (recalc) { - if (!size && size !== 0 || recalc) { - if (_inDOM2.default) { - var scrollDiv = document.createElement('div'); - - scrollDiv.style.position = 'absolute'; - scrollDiv.style.top = '-9999px'; - scrollDiv.style.width = '50px'; - scrollDiv.style.height = '50px'; - scrollDiv.style.overflow = 'scroll'; - - document.body.appendChild(scrollDiv); - size = scrollDiv.offsetWidth - scrollDiv.clientWidth; - document.body.removeChild(scrollDiv); - } - } - - return size; -}; - -var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); - -var _inDOM2 = _interopRequireDefault(_inDOM); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var size = void 0; - -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/duplexify/index.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer, process) {var stream = __webpack_require__("./node_modules/readable-stream/readable-browser.js") -var eos = __webpack_require__("./node_modules/end-of-stream/index.js") -var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") -var shift = __webpack_require__("./node_modules/stream-shift/index.js") - -var SIGNAL_FLUSH = new Buffer([0]) - -var onuncork = function(self, fn) { - if (self._corked) self.once('uncork', fn) - else fn() -} - -var destroyer = function(self, end) { - return function(err) { - if (err) self._destroyInterval(err) - else if (end && !self._ended) self.end() - } -} - -var end = function(ws, fn) { - if (!ws) return fn() - if (ws._writableState && ws._writableState.finished) return fn() - if (ws._writableState) return ws.end(fn) - ws.end() - fn() -} - -var toStreams2 = function(rs) { - return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs) -} - -var Duplexify = function(writable, readable, opts) { - if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts) - stream.Duplex.call(this, opts) - - this._writable = null - this._readable = null - this._readable2 = null - - this._forwardDestroy = !opts || opts.destroy !== false - this._forwardEnd = !opts || opts.end !== false - this._corked = 1 // start corked - this._ondrain = null - this._drained = false - this._forwarding = false - this._unwrite = null - this._unread = null - this._ended = false - this._error = null - this._preferError = false - - this.destroyed = false - - if (writable) this.setWritable(writable) - if (readable) this.setReadable(readable) -} - -inherits(Duplexify, stream.Duplex) - -Duplexify.obj = function(writable, readable, opts) { - if (!opts) opts = {} - opts.objectMode = true - opts.highWaterMark = 16 - return new Duplexify(writable, readable, opts) -} - -Duplexify.prototype.cork = function() { - if (++this._corked === 1) this.emit('cork') -} - -Duplexify.prototype.uncork = function() { - if (this._corked && --this._corked === 0) this.emit('uncork') -} - -Duplexify.prototype.setWritable = function(writable) { - if (this._unwrite) this._unwrite() - - if (this.destroyed) { - if (writable && writable.destroy) writable.destroy() - return - } - - if (writable === null || writable === false) { - this.end() - return - } - - var self = this - var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd)) - - var ondrain = function() { - var ondrain = self._ondrain - self._ondrain = null - if (ondrain) ondrain() - } - - var clear = function() { - self._writable.removeListener('drain', ondrain) - unend() - } - - if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks - - this._writable = writable - this._writable.on('drain', ondrain) - this._unwrite = clear - - this.uncork() // always uncork setWritable -} - -Duplexify.prototype.setReadable = function(readable) { - if (this._unread) this._unread() - - if (this.destroyed) { - if (readable && readable.destroy) readable.destroy() - return - } - - if (readable === null || readable === false) { - this.push(null) - this.resume() - return - } - - var self = this - var unend = eos(readable, {writable:false, readable:true}, destroyer(this)) - - var onreadable = function() { - self._forward() - } - - var onend = function() { - self.push(null) - } - - var clear = function() { - self._readable2.removeListener('readable', onreadable) - self._readable2.removeListener('end', onend) - unend() - } - - this._drained = true - this._readable = readable - this._readable2 = readable._readableState ? readable : toStreams2(readable) - this._readable2.on('readable', onreadable) - this._readable2.on('end', onend) - this._unread = clear - - this._forward() -} - -Duplexify.prototype._read = function() { - this._drained = true - this._forward() -} - -Duplexify.prototype._forward = function() { - if (this._forwarding || !this._readable2 || !this._drained) return - this._forwarding = true - - var data - - while (this._drained && (data = shift(this._readable2)) !== null) { - if (this.destroyed) continue - this._drained = this.push(data) - } - - this._forwarding = false -} - -Duplexify.prototype.destroy = function(err) { - if (this._preferError && !this._error && err) this._error = err - - if (this.destroyed) return - this.destroyed = true - - var self = this - process.nextTick(function() { - self._destroy(self._preferError ? self._error : err) - }) -} - -Duplexify.prototype._destroyInterval = function(err) { - if (this.destroyed) return - if (err.message !== 'premature close') return this.destroy(err) - this._preferError = true - this.destroy(null) -} - -Duplexify.prototype._destroy = function(err) { - if (err) { - var ondrain = this._ondrain - this._ondrain = null - if (ondrain) ondrain(err) - else this.emit('error', err) - } - - if (this._forwardDestroy) { - if (this._readable && this._readable.destroy) this._readable.destroy() - if (this._writable && this._writable.destroy) this._writable.destroy() - } - - this.emit('close') -} - -Duplexify.prototype._write = function(data, enc, cb) { - if (this.destroyed) return cb() - if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb)) - if (data === SIGNAL_FLUSH) return this._finish(cb) - if (!this._writable) return cb() - - if (this._writable.write(data) === false) this._ondrain = cb - else cb() -} - - -Duplexify.prototype._finish = function(cb) { - var self = this - this.emit('preend') - onuncork(this, function() { - end(self._forwardEnd && self._writable, function() { - // haxx to not emit prefinish twice - if (self._writableState.prefinished === false) self._writableState.prefinished = true - self.emit('prefinish') - onuncork(self, cb) - }) - }) -} - -Duplexify.prototype.end = function(data, enc, cb) { - if (typeof data === 'function') return this.end(null, null, data) - if (typeof enc === 'function') return this.end(data, null, enc) - this._ended = true - if (data) this.write(data) - if (!this._writableState.ending) this.write(SIGNAL_FLUSH) - return stream.Writable.prototype.end.call(this, cb) -} - -module.exports = Duplexify - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/buffer/index.js").Buffer, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/end-of-stream/index.js": -/***/ (function(module, exports, __webpack_require__) { - -var once = __webpack_require__("./node_modules/once/once.js"); - -var noop = function() {}; - -var isRequest = function(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -}; - -var isChildProcess = function(stream) { - return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 -}; - -var eos = function(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - - callback = once(callback || noop); - - var ws = stream._writableState; - var rs = stream._readableState; - var readable = opts.readable || (opts.readable !== false && stream.readable); - var writable = opts.writable || (opts.writable !== false && stream.writable); - - var onlegacyfinish = function() { - if (!stream.writable) onfinish(); - }; - - var onfinish = function() { - writable = false; - if (!readable) callback.call(stream); - }; - - var onend = function() { - readable = false; - if (!writable) callback.call(stream); - }; - - var onexit = function(exitCode) { - callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); - }; - - var onerror = function(err) { - callback.call(stream, err); - }; - - var onclose = function() { - if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close')); - if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close')); - }; - - var onrequest = function() { - stream.req.on('finish', onfinish); - }; - - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest(); - else stream.on('request', onrequest); - } else if (writable && !ws) { // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } - - if (isChildProcess(stream)) stream.on('exit', onexit); - - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - - return function() { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('exit', onexit); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -}; - -module.exports = eos; - - -/***/ }), - -/***/ "./node_modules/events/events.js": -/***/ (function(module, exports) { - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); - err.context = er; - throw err; - } - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - } else if (isObject(handler)) { - args = Array.prototype.slice.call(arguments, 1); - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.prototype.listenerCount = function(type) { - if (this._events) { - var evlistener = this._events[type]; - - if (isFunction(evlistener)) - return 1; - else if (evlistener) - return evlistener.length; - } - return 0; -}; - -EventEmitter.listenerCount = function(emitter, type) { - return emitter.listenerCount(type); -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - - -/***/ }), - -/***/ "./node_modules/global/window.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var win; - -if (typeof window !== "undefined") { - win = window; -} else if (typeof global !== "undefined") { - win = global; -} else if (typeof self !== "undefined"){ - win = self; -} else { - win = {}; -} - -module.exports = win; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/hyphenate-style-name/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var uppercasePattern = /[A-Z]/g; -var msPattern = /^ms-/; -var cache = {}; - -function hyphenateStyleName(string) { - return string in cache - ? cache[string] - : cache[string] = string - .replace(uppercasePattern, '-$&') - .toLowerCase() - .replace(msPattern, '-ms-'); -} - -module.exports = hyphenateStyleName; - - -/***/ }), - -/***/ "./node_modules/ieee754/index.js": -/***/ (function(module, exports) { - -exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -} - -exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 -} - - -/***/ }), - -/***/ "./node_modules/inherits/inherits_browser.js": -/***/ (function(module, exports) { - -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - - -/***/ }), - -/***/ "./node_modules/is-function/index.js": -/***/ (function(module, exports) { - -module.exports = isFunction - -var toString = Object.prototype.toString - -function isFunction (fn) { - var string = toString.call(fn) - return string === '[object Function]' || - (typeof fn === 'function' && string !== '[object RegExp]') || - (typeof window !== 'undefined' && - // IE8 and below - (fn === window.setTimeout || - fn === window.alert || - fn === window.confirm || - fn === window.prompt)) -}; - - -/***/ }), - -/***/ "./node_modules/is-in-browser/dist/module.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowser", function() { return isBrowser; }); -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var isBrowser = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && document.nodeType === 9; - -/* harmony default export */ __webpack_exports__["default"] = (isBrowser); - - -/***/ }), - -/***/ "./node_modules/is-plain-object/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var isObject = __webpack_require__("./node_modules/isobject/index.js"); - -function isObjectObject(o) { - return isObject(o) === true - && Object.prototype.toString.call(o) === '[object Object]'; -} - -module.exports = function isPlainObject(o) { - var ctor,prot; - - if (isObjectObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (typeof ctor !== 'function') return false; - - // If has modified prototype - prot = ctor.prototype; - if (isObjectObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -}; - - -/***/ }), - -/***/ "./node_modules/isarray/index.js": -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; - - -/***/ }), - -/***/ "./node_modules/isobject/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * isobject - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -module.exports = function isObject(val) { - return val != null && typeof val === 'object' && Array.isArray(val) === false; -}; - - -/***/ }), - -/***/ "./node_modules/json-stringify-safe/stringify.js": -/***/ (function(module, exports) { - -exports = module.exports = stringify -exports.getSerialize = serializer - -function stringify(obj, replacer, spaces, cycleReplacer) { - return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces) -} - -function serializer(replacer, cycleReplacer) { - var stack = [], keys = [] - - if (cycleReplacer == null) cycleReplacer = function(key, value) { - if (stack[0] === value) return "[Circular ~]" - return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]" - } - - return function(key, value) { - if (stack.length > 0) { - var thisPos = stack.indexOf(this) - ~thisPos ? stack.splice(thisPos + 1) : stack.push(this) - ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key) - if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value) - } - else stack.push(value) - - return replacer == null ? value : replacer.call(this, key, value) - } -} - - -/***/ }), - -/***/ "./node_modules/jss-camel-case/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = camelCase; - -var _hyphenateStyleName = __webpack_require__("./node_modules/hyphenate-style-name/index.js"); - -var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * Convert camel cased property names to dash separated. - * - * @param {Object} style - * @return {Object} - */ -function convertCase(style) { - var converted = {}; - - for (var prop in style) { - converted[(0, _hyphenateStyleName2['default'])(prop)] = style[prop]; - } - - if (style.fallbacks) { - if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks); - } - - return converted; -} - -/** - * Allow camel cased property names by converting them back to dasherized. - * - * @param {Rule} rule - */ -function camelCase() { - function onProcessStyle(style) { - if (Array.isArray(style)) { - // Handle rules like @font-face, which can have multiple styles in an array - for (var index = 0; index < style.length; index++) { - style[index] = convertCase(style[index]); - } - return style; - } - - return convertCase(style); - } - - function onChangeValue(value, prop, rule) { - var hyphenatedProp = (0, _hyphenateStyleName2['default'])(prop); - - // There was no camel case in place - if (prop === hyphenatedProp) return value; - - rule.prop(hyphenatedProp, value); - - // Core will ignore that property value we set the proper one above. - return null; - } - - return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; -} - -/***/ }), - -/***/ "./node_modules/jss-compose/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = jssCompose; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Set selector. - * - * @param {Object} original rule - * @param {String} className class string - * @return {Boolean} flag, indicating function was successfull or not - */ -function registerClass(rule, className) { - // Skip falsy values - if (!className) return true; - - // Support array of class names `{composes: ['foo', 'bar']}` - if (Array.isArray(className)) { - for (var index = 0; index < className.length; index++) { - var isSetted = registerClass(rule, className[index]); - if (!isSetted) return false; - } - - return true; - } - - // Support space separated class names `{composes: 'foo bar'}` - if (className.indexOf(' ') > -1) { - return registerClass(rule, className.split(' ')); - } - - var parent = rule.options.parent; - - // It is a ref to a local rule. - - if (className[0] === '$') { - var refRule = parent.getRule(className.substr(1)); - - if (!refRule) { - (0, _warning2.default)(false, '[JSS] Referenced rule is not defined. \r\n%s', rule); - return false; - } - - if (refRule === rule) { - (0, _warning2.default)(false, '[JSS] Cyclic composition detected. \r\n%s', rule); - return false; - } - - parent.classes[rule.key] += ' ' + parent.classes[refRule.key]; - - return true; - } - - rule.options.parent.classes[rule.key] += ' ' + className; - - return true; -} - -/** - * Convert compose property to additional class, remove property from original styles. - * - * @param {Rule} rule - * @api public - */ -function jssCompose() { - function onProcessStyle(style, rule) { - if (!style.composes) return style; - registerClass(rule, style.composes); - // Remove composes property to prevent infinite loop. - delete style.composes; - return style; - } - return { onProcessStyle: onProcessStyle }; -} - -/***/ }), - -/***/ "./node_modules/jss-default-unit/lib/defaultUnits.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -/** - * Generated jss-default-unit CSS property units - * - * @type object - */ -exports['default'] = { - 'animation-delay': 'ms', - 'animation-duration': 'ms', - 'background-position': 'px', - 'background-position-x': 'px', - 'background-position-y': 'px', - 'background-size': 'px', - border: 'px', - 'border-bottom': 'px', - 'border-bottom-left-radius': 'px', - 'border-bottom-right-radius': 'px', - 'border-bottom-width': 'px', - 'border-left': 'px', - 'border-left-width': 'px', - 'border-radius': 'px', - 'border-right': 'px', - 'border-right-width': 'px', - 'border-spacing': 'px', - 'border-top': 'px', - 'border-top-left-radius': 'px', - 'border-top-right-radius': 'px', - 'border-top-width': 'px', - 'border-width': 'px', - 'border-after-width': 'px', - 'border-before-width': 'px', - 'border-end-width': 'px', - 'border-horizontal-spacing': 'px', - 'border-start-width': 'px', - 'border-vertical-spacing': 'px', - bottom: 'px', - 'box-shadow': 'px', - 'column-gap': 'px', - 'column-rule': 'px', - 'column-rule-width': 'px', - 'column-width': 'px', - 'flex-basis': 'px', - 'font-size': 'px', - 'font-size-delta': 'px', - height: 'px', - left: 'px', - 'letter-spacing': 'px', - 'logical-height': 'px', - 'logical-width': 'px', - margin: 'px', - 'margin-after': 'px', - 'margin-before': 'px', - 'margin-bottom': 'px', - 'margin-left': 'px', - 'margin-right': 'px', - 'margin-top': 'px', - 'max-height': 'px', - 'max-width': 'px', - 'margin-end': 'px', - 'margin-start': 'px', - 'mask-position-x': 'px', - 'mask-position-y': 'px', - 'mask-size': 'px', - 'max-logical-height': 'px', - 'max-logical-width': 'px', - 'min-height': 'px', - 'min-width': 'px', - 'min-logical-height': 'px', - 'min-logical-width': 'px', - motion: 'px', - 'motion-offset': 'px', - outline: 'px', - 'outline-offset': 'px', - 'outline-width': 'px', - padding: 'px', - 'padding-bottom': 'px', - 'padding-left': 'px', - 'padding-right': 'px', - 'padding-top': 'px', - 'padding-after': 'px', - 'padding-before': 'px', - 'padding-end': 'px', - 'padding-start': 'px', - 'perspective-origin-x': '%', - 'perspective-origin-y': '%', - perspective: 'px', - right: 'px', - 'shape-margin': 'px', - size: 'px', - 'text-indent': 'px', - 'text-stroke': 'px', - 'text-stroke-width': 'px', - top: 'px', - 'transform-origin': '%', - 'transform-origin-x': '%', - 'transform-origin-y': '%', - 'transform-origin-z': '%', - 'transition-delay': 'ms', - 'transition-duration': 'ms', - 'vertical-align': 'px', - width: 'px', - 'word-spacing': 'px', - // Not existing properties. - // Used to avoid issues with jss-expand intergration. - 'box-shadow-x': 'px', - 'box-shadow-y': 'px', - 'box-shadow-blur': 'px', - 'box-shadow-spread': 'px', - 'font-line-height': 'px', - 'text-shadow-x': 'px', - 'text-shadow-y': 'px', - 'text-shadow-blur': 'px' -}; - -/***/ }), - -/***/ "./node_modules/jss-default-unit/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports['default'] = defaultUnit; - -var _defaultUnits = __webpack_require__("./node_modules/jss-default-unit/lib/defaultUnits.js"); - -var _defaultUnits2 = _interopRequireDefault(_defaultUnits); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * Clones the object and adds a camel cased property version. - */ -function addCamelCasedVersion(obj) { - var regExp = /(-[a-z])/g; - var replace = function replace(str) { - return str[1].toUpperCase(); - }; - var newObj = {}; - for (var key in obj) { - newObj[key] = obj[key]; - newObj[key.replace(regExp, replace)] = obj[key]; - } - return newObj; -} - -var units = addCamelCasedVersion(_defaultUnits2['default']); - -/** - * Recursive deep style passing function - * - * @param {String} current property - * @param {(Object|Array|Number|String)} property value - * @param {Object} options - * @return {(Object|Array|Number|String)} resulting value - */ -function iterate(prop, value, options) { - if (!value) return value; - - var convertedValue = value; - - var type = typeof value === 'undefined' ? 'undefined' : _typeof(value); - if (type === 'object' && Array.isArray(value)) type = 'array'; - - switch (type) { - case 'object': - if (prop === 'fallbacks') { - for (var innerProp in value) { - value[innerProp] = iterate(innerProp, value[innerProp], options); - } - break; - } - for (var _innerProp in value) { - value[_innerProp] = iterate(prop + '-' + _innerProp, value[_innerProp], options); - } - break; - case 'array': - for (var i = 0; i < value.length; i++) { - value[i] = iterate(prop, value[i], options); - } - break; - case 'number': - if (value !== 0) { - convertedValue = value + (options[prop] || units[prop] || ''); - } - break; - default: - break; - } - - return convertedValue; -} - -/** - * Add unit to numeric values. - */ -function defaultUnit() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var camelCasedOptions = addCamelCasedVersion(options); - - function onProcessStyle(style, rule) { - if (rule.type !== 'style') return style; - - for (var prop in style) { - style[prop] = iterate(prop, style[prop], camelCasedOptions); - } - - return style; - } - - function onChangeValue(value, prop) { - return iterate(prop, value, camelCasedOptions); - } - - return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; -} - -/***/ }), - -/***/ "./node_modules/jss-expand/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports.default = jssExpand; - -var _props = __webpack_require__("./node_modules/jss-expand/lib/props.js"); - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -/** - * Map values by given prop. - * - * @param {Array} array of values - * @param {String} original property - * @param {String} original rule - * @return {String} mapped values - */ -function mapValuesByProp(value, prop, rule) { - return value.map(function (item) { - return objectToString(item, prop, rule); - }); -} - -/** - * Convert array to string. - * - * @param {Array} array of values - * @param {String} original property - * @param {Object} sheme, for converting arrays in strings - * @param {Object} original rule - * @return {String} converted string - */ -function arrayToString(value, prop, scheme, rule) { - if (scheme[prop] == null) return value.join(','); - if (value.length === 0) return ''; - if (Array.isArray(value[0])) return arrayToString(value[0], prop, scheme); - if (_typeof(value[0]) === 'object') { - return mapValuesByProp(value, prop, rule); - } - return value.join(' '); -} - -/** - * Convert object to string. - * - * @param {Object} object of values - * @param {String} original property - * @param {Object} original rule - * @param {Boolean} is fallback prop - * @return {String} converted string - */ -function objectToString(value, prop, rule, isFallback) { - if (!(_props.propObj[prop] || _props.customPropObj[prop])) return ''; - - var result = []; - - // Check if exists any non-standart property - if (_props.customPropObj[prop]) { - value = customPropsToStyle(value, rule, _props.customPropObj[prop], isFallback); - } - - // Pass throught all standart props - if (Object.keys(value).length) { - for (var baseProp in _props.propObj[prop]) { - if (value[baseProp]) { - if (Array.isArray(value[baseProp])) { - result.push(arrayToString(value[baseProp], baseProp, _props.propArrayInObj)); - } else result.push(value[baseProp]); - continue; - } - - // Add default value from props config. - if (_props.propObj[prop][baseProp] != null) { - result.push(_props.propObj[prop][baseProp]); - } - } - } - - return result.join(' '); -} - -/** - * Convert custom properties values to styles adding them to rule directly - * - * @param {Object} object of values - * @param {Object} original rule - * @param {String} property, that contain partial custom properties - * @param {Boolean} is fallback prop - * @return {Object} value without custom properties, that was already added to rule - */ -function customPropsToStyle(value, rule, customProps, isFallback) { - for (var prop in customProps) { - var propName = customProps[prop]; - - // If current property doesn't exist already in rule - add new one - if (typeof value[prop] !== 'undefined' && (isFallback || !rule.prop(propName))) { - var appendedValue = styleDetector(_defineProperty({}, propName, value[prop]), rule)[propName]; - - // Add style directly in rule - if (isFallback) rule.style.fallbacks[propName] = appendedValue;else rule.style[propName] = appendedValue; - } - // Delete converted property to avoid double converting - delete value[prop]; - } - - return value; -} - -/** - * Detect if a style needs to be converted. - * - * @param {Object} style - * @param {Object} rule - * @param {Boolean} is fallback prop - * @return {Object} convertedStyle - */ -function styleDetector(style, rule, isFallback) { - for (var prop in style) { - var value = style[prop]; - - if (Array.isArray(value)) { - // Check double arrays to avoid recursion. - if (!Array.isArray(value[0])) { - if (prop === 'fallbacks') { - for (var index = 0; index < style.fallbacks.length; index++) { - style.fallbacks[index] = styleDetector(style.fallbacks[index], rule, true); - } - continue; - } - - style[prop] = arrayToString(value, prop, _props.propArray); - // Avoid creating properties with empty values - if (!style[prop]) delete style[prop]; - } - } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { - if (prop === 'fallbacks') { - style.fallbacks = styleDetector(style.fallbacks, rule, true); - continue; - } - - style[prop] = objectToString(value, prop, rule, isFallback); - // Avoid creating properties with empty values - if (!style[prop]) delete style[prop]; - } - - // Maybe a computed value resulting in an empty string - else if (style[prop] === '') delete style[prop]; - } - - return style; -} - -/** - * Adds possibility to write expanded styles. - * - * @param {Rule} rule - * @api public - */ -function jssExpand() { - function onProcessStyle(style, rule) { - if (!style || rule.type !== 'style') return style; - - if (Array.isArray(style)) { - // Pass rules one by one and reformat them - for (var index = 0; index < style.length; index++) { - style[index] = styleDetector(style[index], rule); - } - return style; - } - - return styleDetector(style, rule); - } - - return { onProcessStyle: onProcessStyle }; -} - -/***/ }), - -/***/ "./node_modules/jss-expand/lib/props.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -/** - * A scheme for converting properties from array to regular style. - * All properties listed below will be transformed to a string separated by space. - */ -var propArray = exports.propArray = { - 'background-size': true, - 'background-position': true, - border: true, - 'border-bottom': true, - 'border-left': true, - 'border-top': true, - 'border-right': true, - 'border-radius': true, - 'border-image': true, - 'box-shadow': true, - flex: true, - margin: true, - padding: true, - outline: true, - 'transform-origin': true, - transform: true, - transition: true - - /** - * A scheme for converting arrays to regular styles inside of objects. - * For e.g.: "{position: [0, 0]}" => "background-position: 0 0;". - */ -};var propArrayInObj = exports.propArrayInObj = { - position: true, // background-position - size: true // background-size - - - /** - * A scheme for parsing and building correct styles from passed objects. - */ -};var propObj = exports.propObj = { - padding: { - top: 0, - right: 0, - bottom: 0, - left: 0 - }, - margin: { - top: 0, - right: 0, - bottom: 0, - left: 0 - }, - background: { - attachment: null, - color: null, - image: null, - position: null, - repeat: null - }, - border: { - width: null, - style: null, - color: null - }, - 'border-top': { - width: null, - style: null, - color: null - }, - 'border-right': { - width: null, - style: null, - color: null - }, - 'border-bottom': { - width: null, - style: null, - color: null - }, - 'border-left': { - width: null, - style: null, - color: null - }, - outline: { - width: null, - style: null, - color: null - }, - 'list-style': { - type: null, - position: null, - image: null - }, - transition: { - property: null, - duration: null, - 'timing-function': null, - timingFunction: null, // Needed for avoiding comilation issues with jss-camel-case - delay: null - }, - animation: { - name: null, - duration: null, - 'timing-function': null, - timingFunction: null, // Needed to avoid compilation issues with jss-camel-case - delay: null, - 'iteration-count': null, - iterationCount: null, // Needed to avoid compilation issues with jss-camel-case - direction: null, - 'fill-mode': null, - fillMode: null, // Needed to avoid compilation issues with jss-camel-case - 'play-state': null, - playState: null // Needed to avoid compilation issues with jss-camel-case - }, - 'box-shadow': { - x: 0, - y: 0, - blur: 0, - spread: 0, - color: null, - inset: null - }, - 'text-shadow': { - x: 0, - y: 0, - blur: null, - color: null - } - - /** - * A scheme for converting non-standart properties inside object. - * For e.g.: include 'border-radius' property inside 'border' object. - */ -};var customPropObj = exports.customPropObj = { - border: { - radius: 'border-radius', - image: 'border-image' - }, - background: { - size: 'background-size', - image: 'background-image' - }, - font: { - style: 'font-style', - variant: 'font-variant', - weight: 'font-weight', - stretch: 'font-stretch', - size: 'font-size', - family: 'font-family', - lineHeight: 'line-height', // Needed to avoid compilation issues with jss-camel-case - 'line-height': 'line-height' - }, - flex: { - grow: 'flex-grow', - basis: 'flex-basis', - direction: 'flex-direction', - wrap: 'flex-wrap', - flow: 'flex-flow', - shrink: 'flex-shrink' - }, - align: { - self: 'align-self', - items: 'align-items', - content: 'align-content' - } -}; - -/***/ }), - -/***/ "./node_modules/jss-extend/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports['default'] = jssExtend; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var isObject = function isObject(obj) { - return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && !Array.isArray(obj); -}; -var valueNs = 'extendCurrValue' + Date.now(); - -function mergeExtend(style, rule, sheet, newStyle) { - var extendType = _typeof(style.extend); - // Extend using a rule name. - if (extendType === 'string') { - if (!sheet) return; - var refRule = sheet.getRule(style.extend); - if (!refRule) return; - if (refRule === rule) { - (0, _warning2['default'])(false, '[JSS] A rule tries to extend itself \r\n%s', rule); - return; - } - var parent = refRule.options.parent; - - if (parent) { - var originalStyle = parent.rules.raw[style.extend]; - extend(originalStyle, rule, sheet, newStyle); - } - return; - } - - // Extend using an array of objects. - if (Array.isArray(style.extend)) { - for (var index = 0; index < style.extend.length; index++) { - extend(style.extend[index], rule, sheet, newStyle); - } - return; - } - - // Extend is a style object. - for (var prop in style.extend) { - if (prop === 'extend') { - extend(style.extend.extend, rule, sheet, newStyle); - continue; - } - if (isObject(style.extend[prop])) { - if (!(prop in newStyle)) newStyle[prop] = {}; - extend(style.extend[prop], rule, sheet, newStyle[prop]); - continue; - } - newStyle[prop] = style.extend[prop]; - } -} - -function mergeRest(style, rule, sheet, newStyle) { - // Copy base style. - for (var prop in style) { - if (prop === 'extend') continue; - if (isObject(newStyle[prop]) && isObject(style[prop])) { - extend(style[prop], rule, sheet, newStyle[prop]); - continue; - } - - if (isObject(style[prop])) { - newStyle[prop] = extend(style[prop], rule, sheet); - continue; - } - - newStyle[prop] = style[prop]; - } -} - -/** - * Recursively extend styles. - */ -function extend(style, rule, sheet) { - var newStyle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - - mergeExtend(style, rule, sheet, newStyle); - mergeRest(style, rule, sheet, newStyle); - return newStyle; -} - -/** - * Handle `extend` property. - * - * @param {Rule} rule - * @api public - */ -function jssExtend() { - function onProcessStyle(style, rule, sheet) { - if ('extend' in style) return extend(style, rule, sheet); - return style; - } - - function onChangeValue(value, prop, rule) { - if (prop !== 'extend') return value; - - // Value is empty, remove properties set previously. - if (value == null || value === false) { - for (var key in rule[valueNs]) { - rule.prop(key, null); - } - rule[valueNs] = null; - return null; - } - - for (var _key in value) { - rule.prop(_key, value[_key]); - } - rule[valueNs] = value; - - // Make sure we don't set the value in the core. - return null; - } - - return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; -} - -/***/ }), - -/***/ "./node_modules/jss-global/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -exports['default'] = jssGlobal; - -var _jss = __webpack_require__("./node_modules/jss/lib/index.js"); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var propKey = '@global'; -var prefixKey = '@global '; - -var GlobalContainerRule = function () { - function GlobalContainerRule(key, styles, options) { - _classCallCheck(this, GlobalContainerRule); - - this.type = 'global'; - - this.key = key; - this.options = options; - this.rules = new _jss.RuleList(_extends({}, options, { - parent: this - })); - - for (var selector in styles) { - this.rules.add(selector, styles[selector], { selector: selector }); - } - - this.rules.process(); - } - - /** - * Get a rule. - */ - - - _createClass(GlobalContainerRule, [{ - key: 'getRule', - value: function getRule(name) { - return this.rules.get(name); - } - - /** - * Create and register rule, run plugins. - */ - - }, { - key: 'addRule', - value: function addRule(name, style, options) { - var rule = this.rules.add(name, style, options); - this.options.jss.plugins.onProcessRule(rule); - return rule; - } - - /** - * Get index of a rule. - */ - - }, { - key: 'indexOf', - value: function indexOf(rule) { - return this.rules.indexOf(rule); - } - - /** - * Generates a CSS string. - */ - - }, { - key: 'toString', - value: function toString() { - return this.rules.toString(); - } - }]); - - return GlobalContainerRule; -}(); - -var GlobalPrefixedRule = function () { - function GlobalPrefixedRule(name, style, options) { - _classCallCheck(this, GlobalPrefixedRule); - - this.name = name; - this.options = options; - var selector = name.substr(prefixKey.length); - this.rule = options.jss.createRule(selector, style, _extends({}, options, { - parent: this, - selector: selector - })); - } - - _createClass(GlobalPrefixedRule, [{ - key: 'toString', - value: function toString(options) { - return this.rule.toString(options); - } - }]); - - return GlobalPrefixedRule; -}(); - -var separatorRegExp = /\s*,\s*/g; - -function addScope(selector, scope) { - var parts = selector.split(separatorRegExp); - var scoped = ''; - for (var i = 0; i < parts.length; i++) { - scoped += scope + ' ' + parts[i].trim(); - if (parts[i + 1]) scoped += ', '; - } - return scoped; -} - -function handleNestedGlobalContainerRule(rule) { - var options = rule.options, - style = rule.style; - - var rules = style[propKey]; - - if (!rules) return; - - for (var name in rules) { - options.sheet.addRule(name, rules[name], _extends({}, options, { - selector: addScope(name, rule.selector) - })); - } - - delete style[propKey]; -} - -function handlePrefixedGlobalRule(rule) { - var options = rule.options, - style = rule.style; - - for (var prop in style) { - if (prop.substr(0, propKey.length) !== propKey) continue; - - var selector = addScope(prop.substr(propKey.length), rule.selector); - options.sheet.addRule(selector, style[prop], _extends({}, options, { - selector: selector - })); - delete style[prop]; - } -} - -/** - * Convert nested rules to separate, remove them from original styles. - * - * @param {Rule} rule - * @api public - */ -function jssGlobal() { - function onCreateRule(name, styles, options) { - if (name === propKey) { - return new GlobalContainerRule(name, styles, options); - } - - if (name[0] === '@' && name.substr(0, prefixKey.length) === prefixKey) { - return new GlobalPrefixedRule(name, styles, options); - } - - var parent = options.parent; - - - if (parent) { - if (parent.type === 'global' || parent.options.parent.type === 'global') { - options.global = true; - } - } - - if (options.global) options.selector = name; - - return null; - } - - function onProcessRule(rule) { - if (rule.type !== 'style') return; - - handleNestedGlobalContainerRule(rule); - handlePrefixedGlobalRule(rule); - } - - return { onCreateRule: onCreateRule, onProcessRule: onProcessRule }; -} - -/***/ }), - -/***/ "./node_modules/jss-nested/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -exports.default = jssNested; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var separatorRegExp = /\s*,\s*/g; -var parentRegExp = /&/g; -var refRegExp = /\$([\w-]+)/g; - -/** - * Convert nested rules to separate, remove them from original styles. - * - * @param {Rule} rule - * @api public - */ -function jssNested() { - // Get a function to be used for $ref replacement. - function getReplaceRef(container) { - return function (match, key) { - var rule = container.getRule(key); - if (rule) return rule.selector; - (0, _warning2.default)(false, '[JSS] Could not find the referenced rule %s in %s.', key, container.options.meta || container); - return key; - }; - } - - var hasAnd = function hasAnd(str) { - return str.indexOf('&') !== -1; - }; - - function replaceParentRefs(nestedProp, parentProp) { - var parentSelectors = parentProp.split(separatorRegExp); - var nestedSelectors = nestedProp.split(separatorRegExp); - - var result = ''; - - for (var i = 0; i < parentSelectors.length; i++) { - var parent = parentSelectors[i]; - - for (var j = 0; j < nestedSelectors.length; j++) { - var nested = nestedSelectors[j]; - if (result) result += ', '; - // Replace all & by the parent or prefix & with the parent. - result += hasAnd(nested) ? nested.replace(parentRegExp, parent) : parent + ' ' + nested; - } - } - - return result; - } - - function getOptions(rule, container, options) { - // Options has been already created, now we only increase index. - if (options) return _extends({}, options, { index: options.index + 1 }); - - var nestingLevel = rule.options.nestingLevel; - - nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1; - - return _extends({}, rule.options, { - nestingLevel: nestingLevel, - index: container.indexOf(rule) + 1 - }); - } - - function onProcessStyle(style, rule) { - if (rule.type !== 'style') return style; - var container = rule.options.parent; - var options = void 0; - var replaceRef = void 0; - for (var prop in style) { - var isNested = hasAnd(prop); - var isNestedConditional = prop[0] === '@'; - - if (!isNested && !isNestedConditional) continue; - - options = getOptions(rule, container, options); - - if (isNested) { - var selector = replaceParentRefs(prop, rule.selector - // Lazily create the ref replacer function just once for - // all nested rules within the sheet. - );if (!replaceRef) replaceRef = getReplaceRef(container - // Replace all $refs. - );selector = selector.replace(refRegExp, replaceRef); - - container.addRule(selector, style[prop], _extends({}, options, { selector: selector })); - } else if (isNestedConditional) { - container - // Place conditional right after the parent rule to ensure right ordering. - .addRule(prop, null, options).addRule(rule.key, style[prop], { selector: rule.selector }); - } - - delete style[prop]; - } - - return style; - } - - return { onProcessStyle: onProcessStyle }; -} - -/***/ }), - -/***/ "./node_modules/jss-preset-default/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jssTemplate = __webpack_require__("./node_modules/jss-template/lib/index.js"); - -var _jssTemplate2 = _interopRequireDefault(_jssTemplate); - -var _jssGlobal = __webpack_require__("./node_modules/jss-global/lib/index.js"); - -var _jssGlobal2 = _interopRequireDefault(_jssGlobal); - -var _jssExtend = __webpack_require__("./node_modules/jss-extend/lib/index.js"); - -var _jssExtend2 = _interopRequireDefault(_jssExtend); - -var _jssNested = __webpack_require__("./node_modules/jss-nested/lib/index.js"); - -var _jssNested2 = _interopRequireDefault(_jssNested); - -var _jssCompose = __webpack_require__("./node_modules/jss-compose/lib/index.js"); - -var _jssCompose2 = _interopRequireDefault(_jssCompose); - -var _jssCamelCase = __webpack_require__("./node_modules/jss-camel-case/lib/index.js"); - -var _jssCamelCase2 = _interopRequireDefault(_jssCamelCase); - -var _jssDefaultUnit = __webpack_require__("./node_modules/jss-default-unit/lib/index.js"); - -var _jssDefaultUnit2 = _interopRequireDefault(_jssDefaultUnit); - -var _jssExpand = __webpack_require__("./node_modules/jss-expand/lib/index.js"); - -var _jssExpand2 = _interopRequireDefault(_jssExpand); - -var _jssVendorPrefixer = __webpack_require__("./node_modules/jss-vendor-prefixer/lib/index.js"); - -var _jssVendorPrefixer2 = _interopRequireDefault(_jssVendorPrefixer); - -var _jssPropsSort = __webpack_require__("./node_modules/jss-props-sort/lib/index.js"); - -var _jssPropsSort2 = _interopRequireDefault(_jssPropsSort); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function () { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return { - plugins: [(0, _jssTemplate2.default)(options.template), (0, _jssGlobal2.default)(options.global), (0, _jssExtend2.default)(options.extend), (0, _jssNested2.default)(options.nested), (0, _jssCompose2.default)(options.compose), (0, _jssCamelCase2.default)(options.camelCase), (0, _jssDefaultUnit2.default)(options.defaultUnit), (0, _jssExpand2.default)(options.expand), (0, _jssVendorPrefixer2.default)(options.vendorPrefixer), (0, _jssPropsSort2.default)(options.propsSort)] - }; -}; - -/***/ }), - -/***/ "./node_modules/jss-props-sort/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = jssPropsSort; -/** - * Sort props by length. - */ -function jssPropsSort() { - function sort(prop0, prop1) { - return prop0.length - prop1.length; - } - - function onProcessStyle(style, rule) { - if (rule.type !== 'style') return style; - - var newStyle = {}; - var props = Object.keys(style).sort(sort); - for (var prop in props) { - newStyle[props[prop]] = style[props[prop]]; - } - return newStyle; - } - - return { onProcessStyle: onProcessStyle }; -} - -/***/ }), - -/***/ "./node_modules/jss-template/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _parse = __webpack_require__("./node_modules/jss-template/lib/parse.js"); - -var _parse2 = _interopRequireDefault(_parse); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var onProcessRule = function onProcessRule(rule) { - if (typeof rule.style === 'string') { - rule.style = (0, _parse2['default'])(rule.style); - } -}; - -exports['default'] = function () { - return { onProcessRule: onProcessRule }; -}; - -/***/ }), - -/***/ "./node_modules/jss-template/lib/parse.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var semiWithNl = /;\n/; - -/** - * Naive CSS parser. - * - Supports only rule body (no selectors) - * - Requires semicolon and new line after the value (except of last line) - * - No nested rules support - */ - -exports['default'] = function (cssText) { - var style = {}; - var split = cssText.split(semiWithNl); - for (var i = 0; i < split.length; i++) { - var decl = (split[i] || '').trim(); - - if (!decl) continue; - var colonIndex = decl.indexOf(':'); - if (colonIndex === -1) { - (0, _warning2['default'])(false, 'Malformed CSS string "%s"', decl); - continue; - } - var prop = decl.substr(0, colonIndex).trim(); - var value = decl.substr(colonIndex + 1).trim(); - style[prop] = value; - } - return style; -}; - -/***/ }), - -/***/ "./node_modules/jss-vendor-prefixer/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = jssVendorPrefixer; - -var _cssVendor = __webpack_require__("./node_modules/css-vendor/lib/index.js"); - -var vendor = _interopRequireWildcard(_cssVendor); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } - -/** - * Add vendor prefix to a property name when needed. - * - * @param {Rule} rule - * @api public - */ -function jssVendorPrefixer() { - function onProcessRule(rule) { - if (rule.type === 'keyframes') { - rule.key = '@' + vendor.prefix.css + rule.key.substr(1); - } - } - - function onProcessStyle(style, rule) { - if (rule.type !== 'style') return style; - - for (var prop in style) { - var value = style[prop]; - - var changeProp = false; - var supportedProp = vendor.supportedProperty(prop); - if (supportedProp && supportedProp !== prop) changeProp = true; - - var changeValue = false; - var supportedValue = vendor.supportedValue(supportedProp, value); - if (supportedValue && supportedValue !== value) changeValue = true; - - if (changeProp || changeValue) { - if (changeProp) delete style[prop]; - style[supportedProp || prop] = supportedValue || value; - } - } - - return style; - } - - function onChangeValue(value, prop) { - return vendor.supportedValue(prop, value); - } - - return { onProcessRule: onProcessRule, onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; -} - -/***/ }), - -/***/ "./node_modules/jss/lib/Jss.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _isInBrowser = __webpack_require__("./node_modules/is-in-browser/dist/module.js"); - -var _isInBrowser2 = _interopRequireDefault(_isInBrowser); - -var _StyleSheet = __webpack_require__("./node_modules/jss/lib/StyleSheet.js"); - -var _StyleSheet2 = _interopRequireDefault(_StyleSheet); - -var _PluginsRegistry = __webpack_require__("./node_modules/jss/lib/PluginsRegistry.js"); - -var _PluginsRegistry2 = _interopRequireDefault(_PluginsRegistry); - -var _rules = __webpack_require__("./node_modules/jss/lib/plugins/rules.js"); - -var _rules2 = _interopRequireDefault(_rules); - -var _observables = __webpack_require__("./node_modules/jss/lib/plugins/observables.js"); - -var _observables2 = _interopRequireDefault(_observables); - -var _functions = __webpack_require__("./node_modules/jss/lib/plugins/functions.js"); - -var _functions2 = _interopRequireDefault(_functions); - -var _sheets = __webpack_require__("./node_modules/jss/lib/sheets.js"); - -var _sheets2 = _interopRequireDefault(_sheets); - -var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); - -var _StyleRule2 = _interopRequireDefault(_StyleRule); - -var _createGenerateClassName = __webpack_require__("./node_modules/jss/lib/utils/createGenerateClassName.js"); - -var _createGenerateClassName2 = _interopRequireDefault(_createGenerateClassName); - -var _createRule2 = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); - -var _createRule3 = _interopRequireDefault(_createRule2); - -var _DomRenderer = __webpack_require__("./node_modules/jss/lib/renderers/DomRenderer.js"); - -var _DomRenderer2 = _interopRequireDefault(_DomRenderer); - -var _VirtualRenderer = __webpack_require__("./node_modules/jss/lib/renderers/VirtualRenderer.js"); - -var _VirtualRenderer2 = _interopRequireDefault(_VirtualRenderer); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var defaultPlugins = _rules2['default'].concat([_observables2['default'], _functions2['default']]); - -var instanceCounter = 0; - -var Jss = function () { - function Jss(options) { - _classCallCheck(this, Jss); - - this.id = instanceCounter++; - this.version = "9.8.0"; - this.plugins = new _PluginsRegistry2['default'](); - this.options = { - createGenerateClassName: _createGenerateClassName2['default'], - Renderer: _isInBrowser2['default'] ? _DomRenderer2['default'] : _VirtualRenderer2['default'], - plugins: [] - }; - this.generateClassName = (0, _createGenerateClassName2['default'])(); - - // eslint-disable-next-line prefer-spread - this.use.apply(this, defaultPlugins); - this.setup(options); - } - - _createClass(Jss, [{ - key: 'setup', - value: function setup() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - if (options.createGenerateClassName) { - this.options.createGenerateClassName = options.createGenerateClassName; - // $FlowFixMe - this.generateClassName = options.createGenerateClassName(); - } - - if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint; - if (options.virtual || options.Renderer) { - this.options.Renderer = options.Renderer || (options.virtual ? _VirtualRenderer2['default'] : _DomRenderer2['default']); - } - - // eslint-disable-next-line prefer-spread - if (options.plugins) this.use.apply(this, options.plugins); - - return this; - } - - /** - * Create a Style Sheet. - */ - - }, { - key: 'createStyleSheet', - value: function createStyleSheet(styles) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var index = options.index; - if (typeof index !== 'number') { - index = _sheets2['default'].index === 0 ? 0 : _sheets2['default'].index + 1; - } - var sheet = new _StyleSheet2['default'](styles, _extends({}, options, { - jss: this, - generateClassName: options.generateClassName || this.generateClassName, - insertionPoint: this.options.insertionPoint, - Renderer: this.options.Renderer, - index: index - })); - this.plugins.onProcessSheet(sheet); - - return sheet; - } - - /** - * Detach the Style Sheet and remove it from the registry. - */ - - }, { - key: 'removeStyleSheet', - value: function removeStyleSheet(sheet) { - sheet.detach(); - _sheets2['default'].remove(sheet); - return this; - } - - /** - * Create a rule without a Style Sheet. - */ - - }, { - key: 'createRule', - value: function createRule(name) { - var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - // Enable rule without name for inline styles. - if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { - options = style; - style = name; - name = undefined; - } - - // Cast from RuleFactoryOptions to RuleOptions - // https://stackoverflow.com/questions/41328728/force-casting-in-flow - var ruleOptions = options; - - ruleOptions.jss = this; - ruleOptions.Renderer = this.options.Renderer; - if (!ruleOptions.generateClassName) ruleOptions.generateClassName = this.generateClassName; - if (!ruleOptions.classes) ruleOptions.classes = {}; - var rule = (0, _createRule3['default'])(name, style, ruleOptions); - - if (!ruleOptions.selector && rule instanceof _StyleRule2['default']) { - rule.selector = '.' + ruleOptions.generateClassName(rule); - } - - this.plugins.onProcessRule(rule); - - return rule; - } - - /** - * Register plugin. Passed function will be invoked with a rule instance. - */ - - }, { - key: 'use', - value: function use() { - var _this = this; - - for (var _len = arguments.length, plugins = Array(_len), _key = 0; _key < _len; _key++) { - plugins[_key] = arguments[_key]; - } - - plugins.forEach(function (plugin) { - // Avoids applying same plugin twice, at least based on ref. - if (_this.options.plugins.indexOf(plugin) === -1) { - _this.options.plugins.push(plugin); - _this.plugins.use(plugin); - } - }); - - return this; - } - }]); - - return Jss; -}(); - -exports['default'] = Jss; - -/***/ }), - -/***/ "./node_modules/jss/lib/PluginsRegistry.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var PluginsRegistry = function () { - function PluginsRegistry() { - _classCallCheck(this, PluginsRegistry); - - this.hooks = { - onCreateRule: [], - onProcessRule: [], - onProcessStyle: [], - onProcessSheet: [], - onChangeValue: [], - onUpdate: [] - - /** - * Call `onCreateRule` hooks and return an object if returned by a hook. - */ - }; - } - - _createClass(PluginsRegistry, [{ - key: 'onCreateRule', - value: function onCreateRule(name, decl, options) { - for (var i = 0; i < this.hooks.onCreateRule.length; i++) { - var rule = this.hooks.onCreateRule[i](name, decl, options); - if (rule) return rule; - } - return null; - } - - /** - * Call `onProcessRule` hooks. - */ - - }, { - key: 'onProcessRule', - value: function onProcessRule(rule) { - if (rule.isProcessed) return; - var sheet = rule.options.sheet; - - for (var i = 0; i < this.hooks.onProcessRule.length; i++) { - this.hooks.onProcessRule[i](rule, sheet); - } - - // $FlowFixMe - if (rule.style) this.onProcessStyle(rule.style, rule, sheet); - - rule.isProcessed = true; - } - - /** - * Call `onProcessStyle` hooks. - */ - - }, { - key: 'onProcessStyle', - value: function onProcessStyle(style, rule, sheet) { - var nextStyle = style; - - for (var i = 0; i < this.hooks.onProcessStyle.length; i++) { - nextStyle = this.hooks.onProcessStyle[i](nextStyle, rule, sheet); - // $FlowFixMe - rule.style = nextStyle; - } - } - - /** - * Call `onProcessSheet` hooks. - */ - - }, { - key: 'onProcessSheet', - value: function onProcessSheet(sheet) { - for (var i = 0; i < this.hooks.onProcessSheet.length; i++) { - this.hooks.onProcessSheet[i](sheet); - } - } - - /** - * Call `onUpdate` hooks. - */ - - }, { - key: 'onUpdate', - value: function onUpdate(data, rule, sheet) { - for (var i = 0; i < this.hooks.onUpdate.length; i++) { - this.hooks.onUpdate[i](data, rule, sheet); - } - } - - /** - * Call `onChangeValue` hooks. - */ - - }, { - key: 'onChangeValue', - value: function onChangeValue(value, prop, rule) { - var processedValue = value; - for (var i = 0; i < this.hooks.onChangeValue.length; i++) { - processedValue = this.hooks.onChangeValue[i](processedValue, prop, rule); - } - return processedValue; - } - - /** - * Register a plugin. - * If function is passed, it is a shortcut for `{onProcessRule}`. - */ - - }, { - key: 'use', - value: function use(plugin) { - for (var name in plugin) { - if (this.hooks[name]) this.hooks[name].push(plugin[name]);else (0, _warning2['default'])(false, '[JSS] Unknown hook "%s".', name); - } - } - }]); - - return PluginsRegistry; -}(); - -exports['default'] = PluginsRegistry; - -/***/ }), - -/***/ "./node_modules/jss/lib/RuleList.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _createRule = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); - -var _createRule2 = _interopRequireDefault(_createRule); - -var _linkRule = __webpack_require__("./node_modules/jss/lib/utils/linkRule.js"); - -var _linkRule2 = _interopRequireDefault(_linkRule); - -var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); - -var _StyleRule2 = _interopRequireDefault(_StyleRule); - -var _escape = __webpack_require__("./node_modules/jss/lib/utils/escape.js"); - -var _escape2 = _interopRequireDefault(_escape); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Contains rules objects and allows adding/removing etc. - * Is used for e.g. by `StyleSheet` or `ConditionalRule`. - */ -var RuleList = function () { - - // Original styles object. - function RuleList(options) { - _classCallCheck(this, RuleList); - - this.map = {}; - this.raw = {}; - this.index = []; - - this.options = options; - this.classes = options.classes; - } - - /** - * Create and register rule. - * - * Will not render after Style Sheet was rendered the first time. - */ - - - // Used to ensure correct rules order. - - // Rules registry for access by .get() method. - // It contains the same rule registered by name and by selector. - - - _createClass(RuleList, [{ - key: 'add', - value: function add(name, decl, options) { - var _options = this.options, - parent = _options.parent, - sheet = _options.sheet, - jss = _options.jss, - Renderer = _options.Renderer, - generateClassName = _options.generateClassName; - - - options = _extends({ - classes: this.classes, - parent: parent, - sheet: sheet, - jss: jss, - Renderer: Renderer, - generateClassName: generateClassName - }, options); - - if (!options.selector && this.classes[name]) { - options.selector = '.' + (0, _escape2['default'])(this.classes[name]); - } - - this.raw[name] = decl; - - var rule = (0, _createRule2['default'])(name, decl, options); - - var className = void 0; - - if (!options.selector && rule instanceof _StyleRule2['default']) { - className = generateClassName(rule, sheet); - rule.selector = '.' + (0, _escape2['default'])(className); - } - - this.register(rule, className); - - var index = options.index === undefined ? this.index.length : options.index; - this.index.splice(index, 0, rule); - - return rule; - } - - /** - * Get a rule. - */ - - }, { - key: 'get', - value: function get(name) { - return this.map[name]; - } - - /** - * Delete a rule. - */ - - }, { - key: 'remove', - value: function remove(rule) { - this.unregister(rule); - this.index.splice(this.indexOf(rule), 1); - } - - /** - * Get index of a rule. - */ - - }, { - key: 'indexOf', - value: function indexOf(rule) { - return this.index.indexOf(rule); - } - - /** - * Run `onProcessRule()` plugins on every rule. - */ - - }, { - key: 'process', - value: function process() { - var plugins = this.options.jss.plugins; - // We need to clone array because if we modify the index somewhere else during a loop - // we end up with very hard-to-track-down side effects. - - this.index.slice(0).forEach(plugins.onProcessRule, plugins); - } - - /** - * Register a rule in `.map` and `.classes` maps. - */ - - }, { - key: 'register', - value: function register(rule, className) { - this.map[rule.key] = rule; - if (rule instanceof _StyleRule2['default']) { - this.map[rule.selector] = rule; - if (className) this.classes[rule.key] = className; - } - } - - /** - * Unregister a rule. - */ - - }, { - key: 'unregister', - value: function unregister(rule) { - delete this.map[rule.key]; - if (rule instanceof _StyleRule2['default']) { - delete this.map[rule.selector]; - delete this.classes[rule.key]; - } - } - - /** - * Update the function values with a new data. - */ - - }, { - key: 'update', - value: function update(name, data) { - var _options2 = this.options, - plugins = _options2.jss.plugins, - sheet = _options2.sheet; - - if (typeof name === 'string') { - plugins.onUpdate(data, this.get(name), sheet); - return; - } - - for (var index = 0; index < this.index.length; index++) { - plugins.onUpdate(name, this.index[index], sheet); - } - } - - /** - * Link renderable rules with CSSRuleList. - */ - - }, { - key: 'link', - value: function link(cssRules) { - var map = this.options.sheet.renderer.getUnescapedKeysMap(this.index); - - for (var i = 0; i < cssRules.length; i++) { - var cssRule = cssRules[i]; - var _key = this.options.sheet.renderer.getKey(cssRule); - if (map[_key]) _key = map[_key]; - var rule = this.map[_key]; - if (rule) (0, _linkRule2['default'])(rule, cssRule); - } - } - - /** - * Convert rules to a CSS string. - */ - - }, { - key: 'toString', - value: function toString(options) { - var str = ''; - var sheet = this.options.sheet; - - var link = sheet ? sheet.options.link : false; - - for (var index = 0; index < this.index.length; index++) { - var rule = this.index[index]; - var css = rule.toString(options); - - // No need to render an empty rule. - if (!css && !link) continue; - - if (str) str += '\n'; - str += css; - } - - return str; - } - }]); - - return RuleList; -}(); - -exports['default'] = RuleList; - -/***/ }), - -/***/ "./node_modules/jss/lib/SheetsManager.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * SheetsManager is like a WeakMap which is designed to count StyleSheet - * instances and attach/detach automatically. - */ -var SheetsManager = function () { - function SheetsManager() { - _classCallCheck(this, SheetsManager); - - this.sheets = []; - this.refs = []; - this.keys = []; - } - - _createClass(SheetsManager, [{ - key: 'get', - value: function get(key) { - var index = this.keys.indexOf(key); - return this.sheets[index]; - } - }, { - key: 'add', - value: function add(key, sheet) { - var sheets = this.sheets, - refs = this.refs, - keys = this.keys; - - var index = sheets.indexOf(sheet); - - if (index !== -1) return index; - - sheets.push(sheet); - refs.push(0); - keys.push(key); - - return sheets.length - 1; - } - }, { - key: 'manage', - value: function manage(key) { - var index = this.keys.indexOf(key); - var sheet = this.sheets[index]; - if (this.refs[index] === 0) sheet.attach(); - this.refs[index]++; - if (!this.keys[index]) this.keys.splice(index, 0, key); - return sheet; - } - }, { - key: 'unmanage', - value: function unmanage(key) { - var index = this.keys.indexOf(key); - if (index === -1) { - // eslint-ignore-next-line no-console - (0, _warning2['default'])(false, "SheetsManager: can't find sheet to unmanage"); - return; - } - if (this.refs[index] > 0) { - this.refs[index]--; - if (this.refs[index] === 0) this.sheets[index].detach(); - } - } - }, { - key: 'size', - get: function get() { - return this.keys.length; - } - }]); - - return SheetsManager; -}(); - -exports['default'] = SheetsManager; - -/***/ }), - -/***/ "./node_modules/jss/lib/SheetsRegistry.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Sheets registry to access them all at one place. - */ -var SheetsRegistry = function () { - function SheetsRegistry() { - _classCallCheck(this, SheetsRegistry); - - this.registry = []; - } - - _createClass(SheetsRegistry, [{ - key: 'add', - - - /** - * Register a Style Sheet. - */ - value: function add(sheet) { - var registry = this.registry; - var index = sheet.options.index; - - - if (registry.indexOf(sheet) !== -1) return; - - if (registry.length === 0 || index >= this.index) { - registry.push(sheet); - return; - } - - // Find a position. - for (var i = 0; i < registry.length; i++) { - if (registry[i].options.index > index) { - registry.splice(i, 0, sheet); - return; - } - } - } - - /** - * Reset the registry. - */ - - }, { - key: 'reset', - value: function reset() { - this.registry = []; - } - - /** - * Remove a Style Sheet. - */ - - }, { - key: 'remove', - value: function remove(sheet) { - var index = this.registry.indexOf(sheet); - this.registry.splice(index, 1); - } - - /** - * Convert all attached sheets to a CSS string. - */ - - }, { - key: 'toString', - value: function toString(options) { - return this.registry.filter(function (sheet) { - return sheet.attached; - }).map(function (sheet) { - return sheet.toString(options); - }).join('\n'); - } - }, { - key: 'index', - - - /** - * Current highest index number. - */ - get: function get() { - return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index; - } - }]); - - return SheetsRegistry; -}(); - -exports['default'] = SheetsRegistry; - -/***/ }), - -/***/ "./node_modules/jss/lib/StyleSheet.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _linkRule = __webpack_require__("./node_modules/jss/lib/utils/linkRule.js"); - -var _linkRule2 = _interopRequireDefault(_linkRule); - -var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); - -var _RuleList2 = _interopRequireDefault(_RuleList); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var StyleSheet = function () { - function StyleSheet(styles, options) { - _classCallCheck(this, StyleSheet); - - this.attached = false; - this.deployed = false; - this.linked = false; - this.classes = {}; - this.options = _extends({}, options, { - sheet: this, - parent: this, - classes: this.classes - }); - this.renderer = new options.Renderer(this); - this.rules = new _RuleList2['default'](this.options); - - for (var name in styles) { - this.rules.add(name, styles[name]); - } - - this.rules.process(); - } - - /** - * Attach renderable to the render tree. - */ - - - _createClass(StyleSheet, [{ - key: 'attach', - value: function attach() { - if (this.attached) return this; - if (!this.deployed) this.deploy(); - this.renderer.attach(); - if (!this.linked && this.options.link) this.link(); - this.attached = true; - return this; - } - - /** - * Remove renderable from render tree. - */ - - }, { - key: 'detach', - value: function detach() { - if (!this.attached) return this; - this.renderer.detach(); - this.attached = false; - return this; - } - - /** - * Add a rule to the current stylesheet. - * Will insert a rule also after the stylesheet has been rendered first time. - */ - - }, { - key: 'addRule', - value: function addRule(name, decl, options) { - var queue = this.queue; - - // Plugins can create rules. - // In order to preserve the right order, we need to queue all `.addRule` calls, - // which happen after the first `rules.add()` call. - - if (this.attached && !queue) this.queue = []; - - var rule = this.rules.add(name, decl, options); - this.options.jss.plugins.onProcessRule(rule); - - if (this.attached) { - if (!this.deployed) return rule; - // Don't insert rule directly if there is no stringified version yet. - // It will be inserted all together when .attach is called. - if (queue) queue.push(rule);else { - this.insertRule(rule); - if (this.queue) { - this.queue.forEach(this.insertRule, this); - this.queue = undefined; - } - } - return rule; - } - - // We can't add rules to a detached style node. - // We will redeploy the sheet once user will attach it. - this.deployed = false; - - return rule; - } - - /** - * Insert rule into the StyleSheet - */ - - }, { - key: 'insertRule', - value: function insertRule(rule) { - var renderable = this.renderer.insertRule(rule); - if (renderable && this.options.link) (0, _linkRule2['default'])(rule, renderable); - } - - /** - * Create and add rules. - * Will render also after Style Sheet was rendered the first time. - */ - - }, { - key: 'addRules', - value: function addRules(styles, options) { - var added = []; - for (var name in styles) { - added.push(this.addRule(name, styles[name], options)); - } - return added; - } - - /** - * Get a rule by name. - */ - - }, { - key: 'getRule', - value: function getRule(name) { - return this.rules.get(name); - } - - /** - * Delete a rule by name. - * Returns `true`: if rule has been deleted from the DOM. - */ - - }, { - key: 'deleteRule', - value: function deleteRule(name) { - var rule = this.rules.get(name); - - if (!rule) return false; - - this.rules.remove(rule); - - if (this.attached && rule.renderable) { - return this.renderer.deleteRule(rule.renderable); - } - - return true; - } - - /** - * Get index of a rule. - */ - - }, { - key: 'indexOf', - value: function indexOf(rule) { - return this.rules.indexOf(rule); - } - - /** - * Deploy pure CSS string to a renderable. - */ - - }, { - key: 'deploy', - value: function deploy() { - this.renderer.deploy(); - this.deployed = true; - return this; - } - - /** - * Link renderable CSS rules from sheet with their corresponding models. - */ - - }, { - key: 'link', - value: function link() { - var cssRules = this.renderer.getRules(); - - // Is undefined when VirtualRenderer is used. - if (cssRules) this.rules.link(cssRules); - this.linked = true; - return this; - } - - /** - * Update the function values with a new data. - */ - - }, { - key: 'update', - value: function update(name, data) { - this.rules.update(name, data); - return this; - } - - /** - * Convert rules to a CSS string. - */ - - }, { - key: 'toString', - value: function toString(options) { - return this.rules.toString(options); - } - }]); - - return StyleSheet; -}(); - -exports['default'] = StyleSheet; - -/***/ }), - -/***/ "./node_modules/jss/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.create = exports.createGenerateClassName = exports.sheets = exports.RuleList = exports.SheetsManager = exports.SheetsRegistry = exports.toCssValue = exports.getDynamicStyles = undefined; - -var _getDynamicStyles = __webpack_require__("./node_modules/jss/lib/utils/getDynamicStyles.js"); - -Object.defineProperty(exports, 'getDynamicStyles', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_getDynamicStyles)['default']; - } -}); - -var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); - -Object.defineProperty(exports, 'toCssValue', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_toCssValue)['default']; - } -}); - -var _SheetsRegistry = __webpack_require__("./node_modules/jss/lib/SheetsRegistry.js"); - -Object.defineProperty(exports, 'SheetsRegistry', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_SheetsRegistry)['default']; - } -}); - -var _SheetsManager = __webpack_require__("./node_modules/jss/lib/SheetsManager.js"); - -Object.defineProperty(exports, 'SheetsManager', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_SheetsManager)['default']; - } -}); - -var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); - -Object.defineProperty(exports, 'RuleList', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_RuleList)['default']; - } -}); - -var _sheets = __webpack_require__("./node_modules/jss/lib/sheets.js"); - -Object.defineProperty(exports, 'sheets', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_sheets)['default']; - } -}); - -var _createGenerateClassName = __webpack_require__("./node_modules/jss/lib/utils/createGenerateClassName.js"); - -Object.defineProperty(exports, 'createGenerateClassName', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_createGenerateClassName)['default']; - } -}); - -var _Jss = __webpack_require__("./node_modules/jss/lib/Jss.js"); - -var _Jss2 = _interopRequireDefault(_Jss); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * Creates a new instance of Jss. - */ -var create = exports.create = function create(options) { - return new _Jss2['default'](options); -}; - -/** - * A global Jss instance. - */ -exports['default'] = create(); - -/***/ }), - -/***/ "./node_modules/jss/lib/plugins/functions.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); - -var _RuleList2 = _interopRequireDefault(_RuleList); - -var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); - -var _StyleRule2 = _interopRequireDefault(_StyleRule); - -var _createRule = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); - -var _createRule2 = _interopRequireDefault(_createRule); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -// A symbol replacement. -var now = Date.now(); - -var fnValuesNs = 'fnValues' + now; -var fnStyleNs = 'fnStyle' + ++now; - -exports['default'] = { - onCreateRule: function onCreateRule(name, decl, options) { - if (typeof decl !== 'function') return null; - var rule = (0, _createRule2['default'])(name, {}, options); - rule[fnStyleNs] = decl; - return rule; - }, - onProcessStyle: function onProcessStyle(style, rule) { - var fn = {}; - for (var prop in style) { - var value = style[prop]; - if (typeof value !== 'function') continue; - delete style[prop]; - fn[prop] = value; - } - rule = rule; - rule[fnValuesNs] = fn; - return style; - }, - onUpdate: function onUpdate(data, rule) { - // It is a rules container like for e.g. ConditionalRule. - if (rule.rules instanceof _RuleList2['default']) { - rule.rules.update(data); - return; - } - if (!(rule instanceof _StyleRule2['default'])) return; - - rule = rule; - - // If we have a fn values map, it is a rule with function values. - if (rule[fnValuesNs]) { - for (var prop in rule[fnValuesNs]) { - rule.prop(prop, rule[fnValuesNs][prop](data)); - } - } - - rule = rule; - - var fnStyle = rule[fnStyleNs]; - - // If we have a style function, the entire rule is dynamic and style object - // will be returned from that function. - if (fnStyle) { - var style = fnStyle(data); - for (var _prop in style) { - rule.prop(_prop, style[_prop]); - } - } - } -}; - -/***/ }), - -/***/ "./node_modules/jss/lib/plugins/observables.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); - -var _StyleRule2 = _interopRequireDefault(_StyleRule); - -var _createRule = __webpack_require__("./node_modules/jss/lib/utils/createRule.js"); - -var _createRule2 = _interopRequireDefault(_createRule); - -var _isObservable = __webpack_require__("./node_modules/jss/lib/utils/isObservable.js"); - -var _isObservable2 = _interopRequireDefault(_isObservable); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = { - onCreateRule: function onCreateRule(name, decl, options) { - if (!(0, _isObservable2['default'])(decl)) return null; - - // Cast `decl` to `Observable`, since it passed the type guard. - var style$ = decl; - - var rule = (0, _createRule2['default'])(name, {}, options); - - // TODO - // Call `stream.subscribe()` returns a subscription, which should be explicitly - // unsubscribed from when we know this sheet is no longer needed. - style$.subscribe(function (style) { - for (var prop in style) { - rule.prop(prop, style[prop]); - } - }); - - return rule; - }, - onProcessRule: function onProcessRule(rule) { - if (!(rule instanceof _StyleRule2['default'])) return; - var styleRule = rule; - var style = styleRule.style; - - var _loop = function _loop(prop) { - var value = style[prop]; - if (!(0, _isObservable2['default'])(value)) return 'continue'; - delete style[prop]; - value.subscribe({ - next: function next(nextValue) { - styleRule.prop(prop, nextValue); - } - }); - }; - - for (var prop in style) { - var _ret = _loop(prop); - - if (_ret === 'continue') continue; - } - } -}; - -/***/ }), - -/***/ "./node_modules/jss/lib/plugins/rules.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _SimpleRule = __webpack_require__("./node_modules/jss/lib/rules/SimpleRule.js"); - -var _SimpleRule2 = _interopRequireDefault(_SimpleRule); - -var _KeyframesRule = __webpack_require__("./node_modules/jss/lib/rules/KeyframesRule.js"); - -var _KeyframesRule2 = _interopRequireDefault(_KeyframesRule); - -var _ConditionalRule = __webpack_require__("./node_modules/jss/lib/rules/ConditionalRule.js"); - -var _ConditionalRule2 = _interopRequireDefault(_ConditionalRule); - -var _FontFaceRule = __webpack_require__("./node_modules/jss/lib/rules/FontFaceRule.js"); - -var _FontFaceRule2 = _interopRequireDefault(_FontFaceRule); - -var _ViewportRule = __webpack_require__("./node_modules/jss/lib/rules/ViewportRule.js"); - -var _ViewportRule2 = _interopRequireDefault(_ViewportRule); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var classes = { - '@charset': _SimpleRule2['default'], - '@import': _SimpleRule2['default'], - '@namespace': _SimpleRule2['default'], - '@keyframes': _KeyframesRule2['default'], - '@media': _ConditionalRule2['default'], - '@supports': _ConditionalRule2['default'], - '@font-face': _FontFaceRule2['default'], - '@viewport': _ViewportRule2['default'], - '@-ms-viewport': _ViewportRule2['default'] - - /** - * Generate plugins which will register all rules. - */ -}; -exports['default'] = Object.keys(classes).map(function (key) { - // https://jsperf.com/indexof-vs-substr-vs-regex-at-the-beginning-3 - var re = new RegExp('^' + key); - var onCreateRule = function onCreateRule(name, decl, options) { - return re.test(name) ? new classes[key](name, decl, options) : null; - }; - return { onCreateRule: onCreateRule }; -}); - -/***/ }), - -/***/ "./node_modules/jss/lib/renderers/DomRenderer.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _sheets = __webpack_require__("./node_modules/jss/lib/sheets.js"); - -var _sheets2 = _interopRequireDefault(_sheets); - -var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); - -var _StyleRule2 = _interopRequireDefault(_StyleRule); - -var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); - -var _toCssValue2 = _interopRequireDefault(_toCssValue); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Cache the value from the first time a function is called. - */ -var memoize = function memoize(fn) { - var value = void 0; - return function () { - if (!value) value = fn(); - return value; - }; -}; - -/** - * Get a style property value. - */ -function getPropertyValue(cssRule, prop) { - try { - return cssRule.style.getPropertyValue(prop); - } catch (err) { - // IE may throw if property is unknown. - return ''; - } -} - -/** - * Set a style property. - */ -function setProperty(cssRule, prop, value) { - try { - var cssValue = value; - - if (Array.isArray(value)) { - cssValue = (0, _toCssValue2['default'])(value, true); - - if (value[value.length - 1] === '!important') { - cssRule.style.setProperty(prop, cssValue, 'important'); - return true; - } - } - - cssRule.style.setProperty(prop, cssValue); - } catch (err) { - // IE may throw if property is unknown. - return false; - } - return true; -} - -/** - * Remove a style property. - */ -function removeProperty(cssRule, prop) { - try { - cssRule.style.removeProperty(prop); - } catch (err) { - (0, _warning2['default'])(false, '[JSS] DOMException "%s" was thrown. Tried to remove property "%s".', err.message, prop); - } -} - -var CSSRuleTypes = { - STYLE_RULE: 1, - KEYFRAMES_RULE: 7 - - /** - * Get the CSS Rule key. - */ - -};var getKey = function () { - var extractKey = function extractKey(cssText) { - var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return cssText.substr(from, cssText.indexOf('{') - 1); - }; - - return function (cssRule) { - if (cssRule.type === CSSRuleTypes.STYLE_RULE) return cssRule.selectorText; - if (cssRule.type === CSSRuleTypes.KEYFRAMES_RULE) { - var name = cssRule.name; - - if (name) return '@keyframes ' + name; - - // There is no rule.name in the following browsers: - // - IE 9 - // - Safari 7.1.8 - // - Mobile Safari 9.0.0 - var cssText = cssRule.cssText; - - return '@' + extractKey(cssText, cssText.indexOf('keyframes')); - } - - // Conditionals. - return extractKey(cssRule.cssText); - }; -}(); - -/** - * Set the selector. - */ -function setSelector(cssRule, selectorText) { - cssRule.selectorText = selectorText; - - // Return false if setter was not successful. - // Currently works in chrome only. - return cssRule.selectorText === selectorText; -} - -/** - * Gets the `head` element upon the first call and caches it. - */ -var getHead = memoize(function () { - return document.head || document.getElementsByTagName('head')[0]; -}); - -/** - * Gets a map of rule keys, where the property is an unescaped key and value - * is a potentially escaped one. - * It is used to identify CSS rules and the corresponding JSS rules. As an identifier - * for CSSStyleRule we normally use `selectorText`. Though if original selector text - * contains escaped code points e.g. `:not(#\\20)`, CSSOM will compile it to `:not(# )` - * and so CSS rule's `selectorText` won't match JSS rule selector. - * - * https://www.w3.org/International/questions/qa-escapes#cssescapes - */ -var getUnescapedKeysMap = function () { - var style = void 0; - var isAttached = false; - - return function (rules) { - var map = {}; - // https://github.com/facebook/flow/issues/2696 - if (!style) style = document.createElement('style'); - for (var i = 0; i < rules.length; i++) { - var rule = rules[i]; - if (!(rule instanceof _StyleRule2['default'])) continue; - var selector = rule.selector; - // Only unescape selector over CSSOM if it contains a back slash. - - if (selector && selector.indexOf('\\') !== -1) { - // Lazilly attach when needed. - if (!isAttached) { - getHead().appendChild(style); - isAttached = true; - } - style.textContent = selector + ' {}'; - var _style = style, - sheet = _style.sheet; - - if (sheet) { - var cssRules = sheet.cssRules; - - if (cssRules) map[cssRules[0].selectorText] = rule.key; - } - } - } - if (isAttached) { - getHead().removeChild(style); - isAttached = false; - } - return map; - }; -}(); - -/** - * Find attached sheet with an index higher than the passed one. - */ -function findHigherSheet(registry, options) { - for (var i = 0; i < registry.length; i++) { - var sheet = registry[i]; - if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) { - return sheet; - } - } - return null; -} - -/** - * Find attached sheet with the highest index. - */ -function findHighestSheet(registry, options) { - for (var i = registry.length - 1; i >= 0; i--) { - var sheet = registry[i]; - if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) { - return sheet; - } - } - return null; -} - -/** - * Find a comment with "jss" inside. - */ -function findCommentNode(text) { - var head = getHead(); - for (var i = 0; i < head.childNodes.length; i++) { - var node = head.childNodes[i]; - if (node.nodeType === 8 && node.nodeValue.trim() === text) { - return node; - } - } - return null; -} - -/** - * Find a node before which we can insert the sheet. - */ -function findPrevNode(options) { - var registry = _sheets2['default'].registry; - - - if (registry.length > 0) { - // Try to insert before the next higher sheet. - var sheet = findHigherSheet(registry, options); - if (sheet) return sheet.renderer.element; - - // Otherwise insert after the last attached. - sheet = findHighestSheet(registry, options); - if (sheet) return sheet.renderer.element.nextElementSibling; - } - - // Try to find a comment placeholder if registry is empty. - var insertionPoint = options.insertionPoint; - - if (insertionPoint && typeof insertionPoint === 'string') { - var comment = findCommentNode(insertionPoint); - if (comment) return comment.nextSibling; - // If user specifies an insertion point and it can't be found in the document - - // bad specificity issues may appear. - (0, _warning2['default'])(insertionPoint === 'jss', '[JSS] Insertion point "%s" not found.', insertionPoint); - } - - return null; -} - -/** - * Insert style element into the DOM. - */ -function insertStyle(style, options) { - var insertionPoint = options.insertionPoint; - - var prevNode = findPrevNode(options); - - if (prevNode) { - var parentNode = prevNode.parentNode; - - if (parentNode) parentNode.insertBefore(style, prevNode); - return; - } - - // Works with iframes and any node types. - if (insertionPoint && typeof insertionPoint.nodeType === 'number') { - // https://stackoverflow.com/questions/41328728/force-casting-in-flow - var insertionPointElement = insertionPoint; - var _parentNode = insertionPointElement.parentNode; - - if (_parentNode) _parentNode.insertBefore(style, insertionPointElement.nextSibling);else (0, _warning2['default'])(false, '[JSS] Insertion point is not in the DOM.'); - return; - } - - getHead().insertBefore(style, prevNode); -} - -/** - * Read jss nonce setting from the page if the user has set it. - */ -var getNonce = memoize(function () { - var node = document.querySelector('meta[property="csp-nonce"]'); - return node ? node.getAttribute('content') : null; -}); - -var DomRenderer = function () { - function DomRenderer(sheet) { - _classCallCheck(this, DomRenderer); - - this.getPropertyValue = getPropertyValue; - this.setProperty = setProperty; - this.removeProperty = removeProperty; - this.setSelector = setSelector; - this.getKey = getKey; - this.getUnescapedKeysMap = getUnescapedKeysMap; - this.hasInsertedRules = false; - - // There is no sheet when the renderer is used from a standalone StyleRule. - if (sheet) _sheets2['default'].add(sheet); - - this.sheet = sheet; - - var _ref = this.sheet ? this.sheet.options : {}, - media = _ref.media, - meta = _ref.meta, - element = _ref.element; - - this.element = element || document.createElement('style'); - this.element.type = 'text/css'; - this.element.setAttribute('data-jss', ''); - if (media) this.element.setAttribute('media', media); - if (meta) this.element.setAttribute('data-meta', meta); - var nonce = getNonce(); - if (nonce) this.element.setAttribute('nonce', nonce); - } - - /** - * Insert style element into render tree. - */ - - - // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696 - - - _createClass(DomRenderer, [{ - key: 'attach', - value: function attach() { - // In the case the element node is external and it is already in the DOM. - if (this.element.parentNode || !this.sheet) return; - - // When rules are inserted using `insertRule` API, after `sheet.detach().attach()` - // browsers remove those rules. - // TODO figure out if its a bug and if it is known. - // Workaround is to redeploy the sheet before attaching as a string. - if (this.hasInsertedRules) { - this.deploy(); - this.hasInsertedRules = false; - } - - insertStyle(this.element, this.sheet.options); - } - - /** - * Remove style element from render tree. - */ - - }, { - key: 'detach', - value: function detach() { - this.element.parentNode.removeChild(this.element); - } - - /** - * Inject CSS string into element. - */ - - }, { - key: 'deploy', - value: function deploy() { - if (!this.sheet) return; - this.element.textContent = '\n' + this.sheet.toString() + '\n'; - } - - /** - * Insert a rule into element. - */ - - }, { - key: 'insertRule', - value: function insertRule(rule, index) { - var sheet = this.element.sheet; - var cssRules = sheet.cssRules; - - var str = rule.toString(); - if (!index) index = cssRules.length; - - if (!str) return false; - - try { - sheet.insertRule(str, index); - } catch (err) { - (0, _warning2['default'])(false, '[JSS] Can not insert an unsupported rule \n\r%s', rule); - return false; - } - this.hasInsertedRules = true; - - return cssRules[index]; - } - - /** - * Delete a rule. - */ - - }, { - key: 'deleteRule', - value: function deleteRule(cssRule) { - var sheet = this.element.sheet; - - var index = this.indexOf(cssRule); - if (index === -1) return false; - sheet.deleteRule(index); - return true; - } - - /** - * Get index of a CSS Rule. - */ - - }, { - key: 'indexOf', - value: function indexOf(cssRule) { - var cssRules = this.element.sheet.cssRules; - - for (var _index = 0; _index < cssRules.length; _index++) { - if (cssRule === cssRules[_index]) return _index; - } - return -1; - } - - /** - * Generate a new CSS rule and replace the existing one. - */ - - }, { - key: 'replaceRule', - value: function replaceRule(cssRule, rule) { - var index = this.indexOf(cssRule); - var newCssRule = this.insertRule(rule, index); - this.element.sheet.deleteRule(index); - return newCssRule; - } - - /** - * Get all rules elements. - */ - - }, { - key: 'getRules', - value: function getRules() { - return this.element.sheet.cssRules; - } - }]); - - return DomRenderer; -}(); - -exports['default'] = DomRenderer; - -/***/ }), - -/***/ "./node_modules/jss/lib/renderers/VirtualRenderer.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/* eslint-disable class-methods-use-this */ - -/** - * Rendering backend to do nothing in nodejs. - */ -var VirtualRenderer = function () { - function VirtualRenderer() { - _classCallCheck(this, VirtualRenderer); - } - - _createClass(VirtualRenderer, [{ - key: 'setProperty', - value: function setProperty() { - return true; - } - }, { - key: 'getPropertyValue', - value: function getPropertyValue() { - return ''; - } - }, { - key: 'removeProperty', - value: function removeProperty() {} - }, { - key: 'setSelector', - value: function setSelector() { - return true; - } - }, { - key: 'getKey', - value: function getKey() { - return ''; - } - }, { - key: 'attach', - value: function attach() {} - }, { - key: 'detach', - value: function detach() {} - }, { - key: 'deploy', - value: function deploy() {} - }, { - key: 'insertRule', - value: function insertRule() { - return false; - } - }, { - key: 'deleteRule', - value: function deleteRule() { - return true; - } - }, { - key: 'replaceRule', - value: function replaceRule() { - return false; - } - }, { - key: 'getRules', - value: function getRules() {} - }, { - key: 'indexOf', - value: function indexOf() { - return -1; - } - }]); - - return VirtualRenderer; -}(); - -exports['default'] = VirtualRenderer; - -/***/ }), - -/***/ "./node_modules/jss/lib/rules/ConditionalRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); - -var _RuleList2 = _interopRequireDefault(_RuleList); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Conditional rule for @media, @supports - */ -var ConditionalRule = function () { - function ConditionalRule(key, styles, options) { - _classCallCheck(this, ConditionalRule); - - this.type = 'conditional'; - this.isProcessed = false; - - this.key = key; - this.options = options; - this.rules = new _RuleList2['default'](_extends({}, options, { parent: this })); - - for (var name in styles) { - this.rules.add(name, styles[name]); - } - - this.rules.process(); - } - - /** - * Get a rule. - */ - - - _createClass(ConditionalRule, [{ - key: 'getRule', - value: function getRule(name) { - return this.rules.get(name); - } - - /** - * Get index of a rule. - */ - - }, { - key: 'indexOf', - value: function indexOf(rule) { - return this.rules.indexOf(rule); - } - - /** - * Create and register rule, run plugins. - */ - - }, { - key: 'addRule', - value: function addRule(name, style, options) { - var rule = this.rules.add(name, style, options); - this.options.jss.plugins.onProcessRule(rule); - return rule; - } - - /** - * Generates a CSS string. - */ - - }, { - key: 'toString', - value: function toString() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 }; - - var inner = this.rules.toString(options); - return inner ? this.key + ' {\n' + inner + '\n}' : ''; - } - }]); - - return ConditionalRule; -}(); - -exports['default'] = ConditionalRule; - -/***/ }), - -/***/ "./node_modules/jss/lib/rules/FontFaceRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _toCss = __webpack_require__("./node_modules/jss/lib/utils/toCss.js"); - -var _toCss2 = _interopRequireDefault(_toCss); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var FontFaceRule = function () { - function FontFaceRule(key, style, options) { - _classCallCheck(this, FontFaceRule); - - this.type = 'font-face'; - this.isProcessed = false; - - this.key = key; - this.style = style; - this.options = options; - } - - /** - * Generates a CSS string. - */ - - - _createClass(FontFaceRule, [{ - key: 'toString', - value: function toString(options) { - if (Array.isArray(this.style)) { - var str = ''; - for (var index = 0; index < this.style.length; index++) { - str += (0, _toCss2['default'])(this.key, this.style[index]); - if (this.style[index + 1]) str += '\n'; - } - return str; - } - - return (0, _toCss2['default'])(this.key, this.style, options); - } - }]); - - return FontFaceRule; -}(); - -exports['default'] = FontFaceRule; - -/***/ }), - -/***/ "./node_modules/jss/lib/rules/KeyframesRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _RuleList = __webpack_require__("./node_modules/jss/lib/RuleList.js"); - -var _RuleList2 = _interopRequireDefault(_RuleList); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Rule for @keyframes - */ -var KeyframesRule = function () { - function KeyframesRule(key, frames, options) { - _classCallCheck(this, KeyframesRule); - - this.type = 'keyframes'; - this.isProcessed = false; - - this.key = key; - this.options = options; - this.rules = new _RuleList2['default'](_extends({}, options, { parent: this })); - - for (var name in frames) { - this.rules.add(name, frames[name], _extends({}, this.options, { - parent: this, - selector: name - })); - } - - this.rules.process(); - } - - /** - * Generates a CSS string. - */ - - - _createClass(KeyframesRule, [{ - key: 'toString', - value: function toString() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 }; - - var inner = this.rules.toString(options); - if (inner) inner += '\n'; - return this.key + ' {\n' + inner + '}'; - } - }]); - - return KeyframesRule; -}(); - -exports['default'] = KeyframesRule; - -/***/ }), - -/***/ "./node_modules/jss/lib/rules/SimpleRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var SimpleRule = function () { - function SimpleRule(key, value, options) { - _classCallCheck(this, SimpleRule); - - this.type = 'simple'; - this.isProcessed = false; - - this.key = key; - this.value = value; - this.options = options; - } - - /** - * Generates a CSS string. - */ - // eslint-disable-next-line no-unused-vars - - - _createClass(SimpleRule, [{ - key: 'toString', - value: function toString(options) { - if (Array.isArray(this.value)) { - var str = ''; - for (var index = 0; index < this.value.length; index++) { - str += this.key + ' ' + this.value[index] + ';'; - if (this.value[index + 1]) str += '\n'; - } - return str; - } - - return this.key + ' ' + this.value + ';'; - } - }]); - - return SimpleRule; -}(); - -exports['default'] = SimpleRule; - -/***/ }), - -/***/ "./node_modules/jss/lib/rules/StyleRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _toCss = __webpack_require__("./node_modules/jss/lib/utils/toCss.js"); - -var _toCss2 = _interopRequireDefault(_toCss); - -var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); - -var _toCssValue2 = _interopRequireDefault(_toCssValue); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var StyleRule = function () { - function StyleRule(key, style, options) { - _classCallCheck(this, StyleRule); - - this.type = 'style'; - this.isProcessed = false; - var sheet = options.sheet, - Renderer = options.Renderer, - selector = options.selector; - - this.key = key; - this.options = options; - this.style = style; - if (selector) this.selectorText = selector; - this.renderer = sheet ? sheet.renderer : new Renderer(); - } - - /** - * Set selector string. - * Attention: use this with caution. Most browsers didn't implement - * selectorText setter, so this may result in rerendering of entire Style Sheet. - */ - - - _createClass(StyleRule, [{ - key: 'prop', - - - /** - * Get or set a style property. - */ - value: function prop(name, value) { - // It's a getter. - if (value === undefined) return this.style[name]; - - // Don't do anything if the value has not changed. - if (this.style[name] === value) return this; - - value = this.options.jss.plugins.onChangeValue(value, name, this); - - var isEmpty = value == null || value === false; - var isDefined = name in this.style; - - // Value is empty and wasn't defined before. - if (isEmpty && !isDefined) return this; - - // We are going to remove this value. - var remove = isEmpty && isDefined; - - if (remove) delete this.style[name];else this.style[name] = value; - - // Renderable is defined if StyleSheet option `link` is true. - if (this.renderable) { - if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, value); - return this; - } - - var sheet = this.options.sheet; - - if (sheet && sheet.attached) { - (0, _warning2['default'])(false, 'Rule is not linked. Missing sheet option "link: true".'); - } - return this; - } - - /** - * Apply rule to an element inline. - */ - - }, { - key: 'applyTo', - value: function applyTo(renderable) { - var json = this.toJSON(); - for (var prop in json) { - this.renderer.setProperty(renderable, prop, json[prop]); - }return this; - } - - /** - * Returns JSON representation of the rule. - * Fallbacks are not supported. - * Useful for inline styles. - */ - - }, { - key: 'toJSON', - value: function toJSON() { - var json = {}; - for (var prop in this.style) { - var value = this.style[prop]; - if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = (0, _toCssValue2['default'])(value); - } - return json; - } - - /** - * Generates a CSS string. - */ - - }, { - key: 'toString', - value: function toString(options) { - var sheet = this.options.sheet; - - var link = sheet ? sheet.options.link : false; - var opts = link ? _extends({}, options, { allowEmpty: true }) : options; - return (0, _toCss2['default'])(this.selector, this.style, opts); - } - }, { - key: 'selector', - set: function set(selector) { - if (selector === this.selectorText) return; - - this.selectorText = selector; - - if (!this.renderable) return; - - var hasChanged = this.renderer.setSelector(this.renderable, selector); - - // If selector setter is not implemented, rerender the rule. - if (!hasChanged && this.renderable) { - var renderable = this.renderer.replaceRule(this.renderable, this); - if (renderable) this.renderable = renderable; - } - } - - /** - * Get selector string. - */ - , - get: function get() { - return this.selectorText; - } - }]); - - return StyleRule; -}(); - -exports['default'] = StyleRule; - -/***/ }), - -/***/ "./node_modules/jss/lib/rules/ViewportRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _toCss = __webpack_require__("./node_modules/jss/lib/utils/toCss.js"); - -var _toCss2 = _interopRequireDefault(_toCss); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var ViewportRule = function () { - function ViewportRule(key, style, options) { - _classCallCheck(this, ViewportRule); - - this.type = 'viewport'; - this.isProcessed = false; - - this.key = key; - this.style = style; - this.options = options; - } - - /** - * Generates a CSS string. - */ - - - _createClass(ViewportRule, [{ - key: 'toString', - value: function toString(options) { - return (0, _toCss2['default'])(this.key, this.style, options); - } - }]); - - return ViewportRule; -}(); - -exports['default'] = ViewportRule; - -/***/ }), - -/***/ "./node_modules/jss/lib/sheets.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _SheetsRegistry = __webpack_require__("./node_modules/jss/lib/SheetsRegistry.js"); - -var _SheetsRegistry2 = _interopRequireDefault(_SheetsRegistry); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * This is a global sheets registry. Only DomRenderer will add sheets to it. - * On the server one should use an own SheetsRegistry instance and add the - * sheets to it, because you need to make sure to create a new registry for - * each request in order to not leak sheets across requests. - */ -exports['default'] = new _SheetsRegistry2['default'](); - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/cloneStyle.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports['default'] = cloneStyle; - -var _isObservable = __webpack_require__("./node_modules/jss/lib/utils/isObservable.js"); - -var _isObservable2 = _interopRequireDefault(_isObservable); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var isArray = Array.isArray; -function cloneStyle(style) { - // Support empty values in case user ends up with them by accident. - if (style == null) return style; - - // Support string value for SimpleRule. - var typeOfStyle = typeof style === 'undefined' ? 'undefined' : _typeof(style); - - if (typeOfStyle === 'string' || typeOfStyle === 'number' || typeOfStyle === 'function') { - return style; - } - - // Support array for FontFaceRule. - if (isArray(style)) return style.map(cloneStyle); - - // Support Observable styles. Observables are immutable, so we don't need to - // copy them. - if ((0, _isObservable2['default'])(style)) return style; - - var newStyle = {}; - for (var name in style) { - var value = style[name]; - if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { - newStyle[name] = cloneStyle(value); - continue; - } - newStyle[name] = value; - } - - return newStyle; -} - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/createGenerateClassName.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _StyleSheet = __webpack_require__("./node_modules/jss/lib/StyleSheet.js"); - -var _StyleSheet2 = _interopRequireDefault(_StyleSheet); - -var _moduleId = __webpack_require__("./node_modules/jss/lib/utils/moduleId.js"); - -var _moduleId2 = _interopRequireDefault(_moduleId); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var maxRules = 1e10; - - -var env = process.env.NODE_ENV; - -/** - * Returns a function which generates unique class names based on counters. - * When new generator function is created, rule counter is reseted. - * We need to reset the rule counter for SSR for each request. - */ - -exports['default'] = function () { - var ruleCounter = 0; - var defaultPrefix = env === 'production' ? 'c' : ''; - - return function (rule, sheet) { - ruleCounter += 1; - - if (ruleCounter > maxRules) { - (0, _warning2['default'])(false, '[JSS] You might have a memory leak. Rule counter is at %s.', ruleCounter); - } - - var prefix = defaultPrefix; - var jssId = ''; - - if (sheet) { - prefix = sheet.options.classNamePrefix || defaultPrefix; - if (sheet.options.jss.id != null) jssId += sheet.options.jss.id; - } - - if (env === 'production') { - return '' + prefix + _moduleId2['default'] + jssId + ruleCounter; - } - - return prefix + rule.key + '-' + _moduleId2['default'] + (jssId && '-' + jssId) + '-' + ruleCounter; - }; -}; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/createRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = createRule; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _StyleRule = __webpack_require__("./node_modules/jss/lib/rules/StyleRule.js"); - -var _StyleRule2 = _interopRequireDefault(_StyleRule); - -var _cloneStyle = __webpack_require__("./node_modules/jss/lib/utils/cloneStyle.js"); - -var _cloneStyle2 = _interopRequireDefault(_cloneStyle); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * Create a rule instance. - */ -function createRule() { - var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'unnamed'; - var decl = arguments[1]; - var options = arguments[2]; - var jss = options.jss; - - var declCopy = (0, _cloneStyle2['default'])(decl); - - var rule = jss.plugins.onCreateRule(name, declCopy, options); - if (rule) return rule; - - // It is an at-rule and it has no instance. - if (name[0] === '@') { - (0, _warning2['default'])(false, '[JSS] Unknown at-rule %s', name); - } - - return new _StyleRule2['default'](name, declCopy, options); -} - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/escape.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var CSS = global.CSS; - -var env = process.env.NODE_ENV; - -var escapeRegex = /([[\].#*$><+~=|^:(),"'`])/g; - -exports['default'] = function (str) { - // We don't need to escape it in production, because we are not using user's - // input for selectors, we are generating a valid selector. - if (env === 'production') return str; - - if (!CSS || !CSS.escape) { - return str.replace(escapeRegex, '\\$1'); - } - - return CSS.escape(str); -}; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/getDynamicStyles.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -/** - * Extracts a styles object with only props that contain function values. - */ -exports['default'] = function (styles) { - // eslint-disable-next-line no-shadow - function extract(styles) { - var to = null; - - for (var key in styles) { - var value = styles[key]; - var type = typeof value === 'undefined' ? 'undefined' : _typeof(value); - - if (type === 'function') { - if (!to) to = {}; - to[key] = value; - } else if (type === 'object' && value !== null && !Array.isArray(value)) { - var extracted = extract(value); - if (extracted) { - if (!to) to = {}; - to[key] = extracted; - } - } - } - - return to; - } - - return extract(styles); -}; - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/isObservable.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _symbolObservable = __webpack_require__("./node_modules/symbol-observable/es/index.js"); - -var _symbolObservable2 = _interopRequireDefault(_symbolObservable); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = function (value) { - return value && value[_symbolObservable2['default']] && value === value[_symbolObservable2['default']](); -}; - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/linkRule.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = linkRule; -/** - * Link rule with CSSStyleRule and nested rules with corresponding nested cssRules if both exists. - */ -function linkRule(rule, cssRule) { - rule.renderable = cssRule; - if (rule.rules && cssRule.cssRules) rule.rules.link(cssRule.cssRules); -} - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/moduleId.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var ns = '2f1acc6c3a606b082e5eef5e54414ffb'; -if (global[ns] == null) global[ns] = 0; - -// Bundle may contain multiple JSS versions at the same time. In order to identify -// the current version with just one short number and use it for classes generation -// we use a counter. Also it is more accurate, because user can manually reevaluate -// the module. -exports['default'] = global[ns]++; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/toCss.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = toCss; - -var _toCssValue = __webpack_require__("./node_modules/jss/lib/utils/toCssValue.js"); - -var _toCssValue2 = _interopRequireDefault(_toCssValue); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * Indent a string. - * http://jsperf.com/array-join-vs-for - */ -function indentStr(str, indent) { - var result = ''; - for (var index = 0; index < indent; index++) { - result += ' '; - }return result + str; -} - -/** - * Converts a Rule to CSS string. - */ - -function toCss(selector, style) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - var result = ''; - - if (!style) return result; - - var _options$indent = options.indent, - indent = _options$indent === undefined ? 0 : _options$indent; - var fallbacks = style.fallbacks; - - - indent++; - - // Apply fallbacks first. - if (fallbacks) { - // Array syntax {fallbacks: [{prop: value}]} - if (Array.isArray(fallbacks)) { - for (var index = 0; index < fallbacks.length; index++) { - var fallback = fallbacks[index]; - for (var prop in fallback) { - var value = fallback[prop]; - if (value != null) { - result += '\n' + indentStr(prop + ': ' + (0, _toCssValue2['default'])(value) + ';', indent); - } - } - } - } else { - // Object syntax {fallbacks: {prop: value}} - for (var _prop in fallbacks) { - var _value = fallbacks[_prop]; - if (_value != null) { - result += '\n' + indentStr(_prop + ': ' + (0, _toCssValue2['default'])(_value) + ';', indent); - } - } - } - } - - for (var _prop2 in style) { - var _value2 = style[_prop2]; - if (_value2 != null && _prop2 !== 'fallbacks') { - result += '\n' + indentStr(_prop2 + ': ' + (0, _toCssValue2['default'])(_value2) + ';', indent); - } - } - - // Allow empty style in this case, because properties will be added dynamically. - if (!result && !options.allowEmpty) return result; - - indent--; - result = indentStr(selector + ' {' + result + '\n', indent) + indentStr('}', indent); - - return result; -} - -/***/ }), - -/***/ "./node_modules/jss/lib/utils/toCssValue.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = toCssValue; -var join = function join(value, by) { - var result = ''; - for (var i = 0; i < value.length; i++) { - // Remove !important from the value, it will be readded later. - if (value[i] === '!important') break; - if (result) result += by; - result += value[i]; - } - return result; -}; - -/** - * Converts array values to string. - * - * `margin: [['5px', '10px']]` > `margin: 5px 10px;` - * `border: ['1px', '2px']` > `border: 1px, 2px;` - * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;` - * `color: ['red', !important]` > `color: red !important;` - */ -function toCssValue(value) { - var ignoreImportant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (!Array.isArray(value)) return value; - - var cssValue = ''; - - // Support space separated values via `[['5px', '10px']]`. - if (Array.isArray(value[0])) { - for (var i = 0; i < value.length; i++) { - if (value[i] === '!important') break; - if (cssValue) cssValue += ', '; - cssValue += join(value[i], ' '); - } - } else cssValue = join(value, ', '); - - // Add !important, because it was ignored. - if (!ignoreImportant && value[value.length - 1] === '!important') { - cssValue += ' !important'; - } - - return cssValue; -} - -/***/ }), - -/***/ "./node_modules/keycode/index.js": -/***/ (function(module, exports) { - -// Source: http://jsfiddle.net/vWx8V/ -// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes - -/** - * Conenience method returns corresponding value for given keyName or keyCode. - * - * @param {Mixed} keyCode {Number} or keyName {String} - * @return {Mixed} - * @api public - */ - -exports = module.exports = function(searchInput) { - // Keyboard Events - if (searchInput && 'object' === typeof searchInput) { - var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode - if (hasKeyCode) searchInput = hasKeyCode - } - - // Numbers - if ('number' === typeof searchInput) return names[searchInput] - - // Everything else (cast to string) - var search = String(searchInput) - - // check codes - var foundNamedKey = codes[search.toLowerCase()] - if (foundNamedKey) return foundNamedKey - - // check aliases - var foundNamedKey = aliases[search.toLowerCase()] - if (foundNamedKey) return foundNamedKey - - // weird character? - if (search.length === 1) return search.charCodeAt(0) - - return undefined -} - -/** - * Get by name - * - * exports.code['enter'] // => 13 - */ - -var codes = exports.code = exports.codes = { - 'backspace': 8, - 'tab': 9, - 'enter': 13, - 'shift': 16, - 'ctrl': 17, - 'alt': 18, - 'pause/break': 19, - 'caps lock': 20, - 'esc': 27, - 'space': 32, - 'page up': 33, - 'page down': 34, - 'end': 35, - 'home': 36, - 'left': 37, - 'up': 38, - 'right': 39, - 'down': 40, - 'insert': 45, - 'delete': 46, - 'command': 91, - 'left command': 91, - 'right command': 93, - 'numpad *': 106, - 'numpad +': 107, - 'numpad -': 109, - 'numpad .': 110, - 'numpad /': 111, - 'num lock': 144, - 'scroll lock': 145, - 'my computer': 182, - 'my calculator': 183, - ';': 186, - '=': 187, - ',': 188, - '-': 189, - '.': 190, - '/': 191, - '`': 192, - '[': 219, - '\\': 220, - ']': 221, - "'": 222 -} - -// Helper aliases - -var aliases = exports.aliases = { - 'windows': 91, - '⇧': 16, - '⌥': 18, - '⌃': 17, - '⌘': 91, - 'ctl': 17, - 'control': 17, - 'option': 18, - 'pause': 19, - 'break': 19, - 'caps': 20, - 'return': 13, - 'escape': 27, - 'spc': 32, - 'pgup': 33, - 'pgdn': 34, - 'ins': 45, - 'del': 46, - 'cmd': 91 -} - - -/*! - * Programatically add the following - */ - -// lower case chars -for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32 - -// numbers -for (var i = 48; i < 58; i++) codes[i - 48] = i - -// function keys -for (i = 1; i < 13; i++) codes['f'+i] = i + 111 - -// numpad keys -for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96 - -/** - * Get by code - * - * exports.name[13] // => 'Enter' - */ - -var names = exports.names = exports.title = {} // title for backward compat - -// Create reverse mapping -for (i in codes) names[codes[i]] = i - -// Add aliases -for (var alias in aliases) { - codes[alias] = aliases[alias] -} - - -/***/ }), - -/***/ "./node_modules/localforage/dist/localforage.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var require;var require;/*! - localForage -- Offline Storage, Improved - Version 1.5.6 - https://localforage.github.io/localForage - (c) 2013-2017 Mozilla, Apache License 2.0 -*/ -(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw (f.code="MODULE_NOT_FOUND", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted - // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called. - var scriptEl = global.document.createElement('script'); - scriptEl.onreadystatechange = function () { - nextTick(); - - scriptEl.onreadystatechange = null; - scriptEl.parentNode.removeChild(scriptEl); - scriptEl = null; - }; - global.document.documentElement.appendChild(scriptEl); - }; - } else { - scheduleDrain = function () { - setTimeout(nextTick, 0); - }; - } -} - -var draining; -var queue = []; -//named nextTick for less confusing stack traces -function nextTick() { - draining = true; - var i, oldQueue; - var len = queue.length; - while (len) { - oldQueue = queue; - queue = []; - i = -1; - while (++i < len) { - oldQueue[i](); - } - len = queue.length; - } - draining = false; -} - -module.exports = immediate; -function immediate(task) { - if (queue.push(task) === 1 && !draining) { - scheduleDrain(); - } -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],2:[function(_dereq_,module,exports){ -'use strict'; -var immediate = _dereq_(1); - -/* istanbul ignore next */ -function INTERNAL() {} - -var handlers = {}; - -var REJECTED = ['REJECTED']; -var FULFILLED = ['FULFILLED']; -var PENDING = ['PENDING']; - -module.exports = Promise; - -function Promise(resolver) { - if (typeof resolver !== 'function') { - throw new TypeError('resolver must be a function'); - } - this.state = PENDING; - this.queue = []; - this.outcome = void 0; - if (resolver !== INTERNAL) { - safelyResolveThenable(this, resolver); - } -} - -Promise.prototype["catch"] = function (onRejected) { - return this.then(null, onRejected); -}; -Promise.prototype.then = function (onFulfilled, onRejected) { - if (typeof onFulfilled !== 'function' && this.state === FULFILLED || - typeof onRejected !== 'function' && this.state === REJECTED) { - return this; - } - var promise = new this.constructor(INTERNAL); - if (this.state !== PENDING) { - var resolver = this.state === FULFILLED ? onFulfilled : onRejected; - unwrap(promise, resolver, this.outcome); - } else { - this.queue.push(new QueueItem(promise, onFulfilled, onRejected)); - } - - return promise; -}; -function QueueItem(promise, onFulfilled, onRejected) { - this.promise = promise; - if (typeof onFulfilled === 'function') { - this.onFulfilled = onFulfilled; - this.callFulfilled = this.otherCallFulfilled; - } - if (typeof onRejected === 'function') { - this.onRejected = onRejected; - this.callRejected = this.otherCallRejected; - } -} -QueueItem.prototype.callFulfilled = function (value) { - handlers.resolve(this.promise, value); -}; -QueueItem.prototype.otherCallFulfilled = function (value) { - unwrap(this.promise, this.onFulfilled, value); -}; -QueueItem.prototype.callRejected = function (value) { - handlers.reject(this.promise, value); -}; -QueueItem.prototype.otherCallRejected = function (value) { - unwrap(this.promise, this.onRejected, value); -}; - -function unwrap(promise, func, value) { - immediate(function () { - var returnValue; - try { - returnValue = func(value); - } catch (e) { - return handlers.reject(promise, e); - } - if (returnValue === promise) { - handlers.reject(promise, new TypeError('Cannot resolve promise with itself')); - } else { - handlers.resolve(promise, returnValue); - } - }); -} - -handlers.resolve = function (self, value) { - var result = tryCatch(getThen, value); - if (result.status === 'error') { - return handlers.reject(self, result.value); - } - var thenable = result.value; - - if (thenable) { - safelyResolveThenable(self, thenable); - } else { - self.state = FULFILLED; - self.outcome = value; - var i = -1; - var len = self.queue.length; - while (++i < len) { - self.queue[i].callFulfilled(value); - } - } - return self; -}; -handlers.reject = function (self, error) { - self.state = REJECTED; - self.outcome = error; - var i = -1; - var len = self.queue.length; - while (++i < len) { - self.queue[i].callRejected(error); - } - return self; -}; - -function getThen(obj) { - // Make sure we only access the accessor once as required by the spec - var then = obj && obj.then; - if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') { - return function appyThen() { - then.apply(obj, arguments); - }; - } -} - -function safelyResolveThenable(self, thenable) { - // Either fulfill, reject or reject with error - var called = false; - function onError(value) { - if (called) { - return; - } - called = true; - handlers.reject(self, value); - } - - function onSuccess(value) { - if (called) { - return; - } - called = true; - handlers.resolve(self, value); - } - - function tryToUnwrap() { - thenable(onSuccess, onError); - } - - var result = tryCatch(tryToUnwrap); - if (result.status === 'error') { - onError(result.value); - } -} - -function tryCatch(func, value) { - var out = {}; - try { - out.value = func(value); - out.status = 'success'; - } catch (e) { - out.status = 'error'; - out.value = e; - } - return out; -} - -Promise.resolve = resolve; -function resolve(value) { - if (value instanceof this) { - return value; - } - return handlers.resolve(new this(INTERNAL), value); -} - -Promise.reject = reject; -function reject(reason) { - var promise = new this(INTERNAL); - return handlers.reject(promise, reason); -} - -Promise.all = all; -function all(iterable) { - var self = this; - if (Object.prototype.toString.call(iterable) !== '[object Array]') { - return this.reject(new TypeError('must be an array')); - } - - var len = iterable.length; - var called = false; - if (!len) { - return this.resolve([]); - } - - var values = new Array(len); - var resolved = 0; - var i = -1; - var promise = new this(INTERNAL); - - while (++i < len) { - allResolver(iterable[i], i); - } - return promise; - function allResolver(value, i) { - self.resolve(value).then(resolveFromAll, function (error) { - if (!called) { - called = true; - handlers.reject(promise, error); - } - }); - function resolveFromAll(outValue) { - values[i] = outValue; - if (++resolved === len && !called) { - called = true; - handlers.resolve(promise, values); - } - } - } -} - -Promise.race = race; -function race(iterable) { - var self = this; - if (Object.prototype.toString.call(iterable) !== '[object Array]') { - return this.reject(new TypeError('must be an array')); - } - - var len = iterable.length; - var called = false; - if (!len) { - return this.resolve([]); - } - - var i = -1; - var promise = new this(INTERNAL); - - while (++i < len) { - resolver(iterable[i]); - } - return promise; - function resolver(value) { - self.resolve(value).then(function (response) { - if (!called) { - called = true; - handlers.resolve(promise, response); - } - }, function (error) { - if (!called) { - called = true; - handlers.reject(promise, error); - } - }); - } -} - -},{"1":1}],3:[function(_dereq_,module,exports){ -(function (global){ -'use strict'; -if (typeof global.Promise !== 'function') { - global.Promise = _dereq_(2); -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"2":2}],4:[function(_dereq_,module,exports){ -'use strict'; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function getIDB() { - /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */ - try { - if (typeof indexedDB !== 'undefined') { - return indexedDB; - } - if (typeof webkitIndexedDB !== 'undefined') { - return webkitIndexedDB; - } - if (typeof mozIndexedDB !== 'undefined') { - return mozIndexedDB; - } - if (typeof OIndexedDB !== 'undefined') { - return OIndexedDB; - } - if (typeof msIndexedDB !== 'undefined') { - return msIndexedDB; - } - } catch (e) { - return; - } -} - -var idb = getIDB(); - -function isIndexedDBValid() { - try { - // Initialize IndexedDB; fall back to vendor-prefixed versions - // if needed. - if (!idb) { - return false; - } - // We mimic PouchDB here; - // - // We test for openDatabase because IE Mobile identifies itself - // as Safari. Oh the lulz... - var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform); - - var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1; - - // Safari <10.1 does not meet our requirements for IDB support (#5572) - // since Safari 10.1 shipped with fetch, we can use that to detect it - return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' && - // some outdated implementations of IDB that appear on Samsung - // and HTC Android devices <4.4 are missing IDBKeyRange - // See: https://github.com/mozilla/localForage/issues/128 - // See: https://github.com/mozilla/localForage/issues/272 - typeof IDBKeyRange !== 'undefined'; - } catch (e) { - return false; - } -} - -// Abstracts constructing a Blob object, so it also works in older -// browsers that don't support the native Blob constructor. (i.e. -// old QtWebKit versions, at least). -// Abstracts constructing a Blob object, so it also works in older -// browsers that don't support the native Blob constructor. (i.e. -// old QtWebKit versions, at least). -function createBlob(parts, properties) { - /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */ - parts = parts || []; - properties = properties || {}; - try { - return new Blob(parts, properties); - } catch (e) { - if (e.name !== 'TypeError') { - throw e; - } - var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder; - var builder = new Builder(); - for (var i = 0; i < parts.length; i += 1) { - builder.append(parts[i]); - } - return builder.getBlob(properties.type); - } -} - -// This is CommonJS because lie is an external dependency, so Rollup -// can just ignore it. -if (typeof Promise === 'undefined') { - // In the "nopromises" build this will just throw if you don't have - // a global promise object, but it would throw anyway later. - _dereq_(3); -} -var Promise$1 = Promise; - -function executeCallback(promise, callback) { - if (callback) { - promise.then(function (result) { - callback(null, result); - }, function (error) { - callback(error); - }); - } -} - -function executeTwoCallbacks(promise, callback, errorCallback) { - if (typeof callback === 'function') { - promise.then(callback); - } - - if (typeof errorCallback === 'function') { - promise["catch"](errorCallback); - } -} - -function normalizeKey(key) { - // Cast the key to a string, as that's all we can set as a key. - if (typeof key !== 'string') { - console.warn(key + ' used as a key, but it is not a string.'); - key = String(key); - } - - return key; -} - -// Some code originally from async_storage.js in -// [Gaia](https://github.com/mozilla-b2g/gaia). - -var DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support'; -var supportsBlobs; -var dbContexts; -var toString = Object.prototype.toString; - -// Transaction Modes -var READ_ONLY = 'readonly'; -var READ_WRITE = 'readwrite'; - -// Transform a binary string to an array buffer, because otherwise -// weird stuff happens when you try to work with the binary string directly. -// It is known. -// From http://stackoverflow.com/questions/14967647/ (continues on next line) -// encode-decode-image-with-base64-breaks-image (2013-04-21) -function _binStringToArrayBuffer(bin) { - var length = bin.length; - var buf = new ArrayBuffer(length); - var arr = new Uint8Array(buf); - for (var i = 0; i < length; i++) { - arr[i] = bin.charCodeAt(i); - } - return buf; -} - -// -// Blobs are not supported in all versions of IndexedDB, notably -// Chrome <37 and Android <5. In those versions, storing a blob will throw. -// -// Various other blob bugs exist in Chrome v37-42 (inclusive). -// Detecting them is expensive and confusing to users, and Chrome 37-42 -// is at very low usage worldwide, so we do a hacky userAgent check instead. -// -// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120 -// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916 -// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836 -// -// Code borrowed from PouchDB. See: -// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js -// -function _checkBlobSupportWithoutCaching(idb) { - return new Promise$1(function (resolve) { - var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE); - var blob = createBlob(['']); - txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key'); - - txn.onabort = function (e) { - // If the transaction aborts now its due to not being able to - // write to the database, likely due to the disk being full - e.preventDefault(); - e.stopPropagation(); - resolve(false); - }; - - txn.oncomplete = function () { - var matchedChrome = navigator.userAgent.match(/Chrome\/(\d+)/); - var matchedEdge = navigator.userAgent.match(/Edge\//); - // MS Edge pretends to be Chrome 42: - // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx - resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43); - }; - })["catch"](function () { - return false; // error, so assume unsupported - }); -} - -function _checkBlobSupport(idb) { - if (typeof supportsBlobs === 'boolean') { - return Promise$1.resolve(supportsBlobs); - } - return _checkBlobSupportWithoutCaching(idb).then(function (value) { - supportsBlobs = value; - return supportsBlobs; - }); -} - -function _deferReadiness(dbInfo) { - var dbContext = dbContexts[dbInfo.name]; - - // Create a deferred object representing the current database operation. - var deferredOperation = {}; - - deferredOperation.promise = new Promise$1(function (resolve) { - deferredOperation.resolve = resolve; - }); - - // Enqueue the deferred operation. - dbContext.deferredOperations.push(deferredOperation); - - // Chain its promise to the database readiness. - if (!dbContext.dbReady) { - dbContext.dbReady = deferredOperation.promise; - } else { - dbContext.dbReady = dbContext.dbReady.then(function () { - return deferredOperation.promise; - }); - } -} - -function _advanceReadiness(dbInfo) { - var dbContext = dbContexts[dbInfo.name]; - - // Dequeue a deferred operation. - var deferredOperation = dbContext.deferredOperations.pop(); - - // Resolve its promise (which is part of the database readiness - // chain of promises). - if (deferredOperation) { - deferredOperation.resolve(); - } -} - -function _rejectReadiness(dbInfo, err) { - var dbContext = dbContexts[dbInfo.name]; - - // Dequeue a deferred operation. - var deferredOperation = dbContext.deferredOperations.pop(); - - // Reject its promise (which is part of the database readiness - // chain of promises). - if (deferredOperation) { - deferredOperation.reject(err); - } -} - -function _getConnection(dbInfo, upgradeNeeded) { - return new Promise$1(function (resolve, reject) { - - if (dbInfo.db) { - if (upgradeNeeded) { - _deferReadiness(dbInfo); - dbInfo.db.close(); - } else { - return resolve(dbInfo.db); - } - } - - var dbArgs = [dbInfo.name]; - - if (upgradeNeeded) { - dbArgs.push(dbInfo.version); - } - - var openreq = idb.open.apply(idb, dbArgs); - - if (upgradeNeeded) { - openreq.onupgradeneeded = function (e) { - var db = openreq.result; - try { - db.createObjectStore(dbInfo.storeName); - if (e.oldVersion <= 1) { - // Added when support for blob shims was added - db.createObjectStore(DETECT_BLOB_SUPPORT_STORE); - } - } catch (ex) { - if (ex.name === 'ConstraintError') { - console.warn('The database "' + dbInfo.name + '"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage "' + dbInfo.storeName + '" already exists.'); - } else { - throw ex; - } - } - }; - } - - openreq.onerror = function (e) { - e.preventDefault(); - reject(openreq.error); - }; - - openreq.onsuccess = function () { - resolve(openreq.result); - _advanceReadiness(dbInfo); - }; - }); -} - -function _getOriginalConnection(dbInfo) { - return _getConnection(dbInfo, false); -} - -function _getUpgradedConnection(dbInfo) { - return _getConnection(dbInfo, true); -} - -function _isUpgradeNeeded(dbInfo, defaultVersion) { - if (!dbInfo.db) { - return true; - } - - var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName); - var isDowngrade = dbInfo.version < dbInfo.db.version; - var isUpgrade = dbInfo.version > dbInfo.db.version; - - if (isDowngrade) { - // If the version is not the default one - // then warn for impossible downgrade. - if (dbInfo.version !== defaultVersion) { - console.warn('The database "' + dbInfo.name + '"' + ' can\'t be downgraded from version ' + dbInfo.db.version + ' to version ' + dbInfo.version + '.'); - } - // Align the versions to prevent errors. - dbInfo.version = dbInfo.db.version; - } - - if (isUpgrade || isNewStore) { - // If the store is new then increment the version (if needed). - // This will trigger an "upgradeneeded" event which is required - // for creating a store. - if (isNewStore) { - var incVersion = dbInfo.db.version + 1; - if (incVersion > dbInfo.version) { - dbInfo.version = incVersion; - } - } - - return true; - } - - return false; -} - -// encode a blob for indexeddb engines that don't support blobs -function _encodeBlob(blob) { - return new Promise$1(function (resolve, reject) { - var reader = new FileReader(); - reader.onerror = reject; - reader.onloadend = function (e) { - var base64 = btoa(e.target.result || ''); - resolve({ - __local_forage_encoded_blob: true, - data: base64, - type: blob.type - }); - }; - reader.readAsBinaryString(blob); - }); -} - -// decode an encoded blob -function _decodeBlob(encodedBlob) { - var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data)); - return createBlob([arrayBuff], { type: encodedBlob.type }); -} - -// is this one of our fancy encoded blobs? -function _isEncodedBlob(value) { - return value && value.__local_forage_encoded_blob; -} - -// Specialize the default `ready()` function by making it dependent -// on the current database operations. Thus, the driver will be actually -// ready when it's been initialized (default) *and* there are no pending -// operations on the database (initiated by some other instances). -function _fullyReady(callback) { - var self = this; - - var promise = self._initReady().then(function () { - var dbContext = dbContexts[self._dbInfo.name]; - - if (dbContext && dbContext.dbReady) { - return dbContext.dbReady; - } - }); - - executeTwoCallbacks(promise, callback, callback); - return promise; -} - -// Try to establish a new db connection to replace the -// current one which is broken (i.e. experiencing -// InvalidStateError while creating a transaction). -function _tryReconnect(dbInfo) { - _deferReadiness(dbInfo); - - var dbContext = dbContexts[dbInfo.name]; - var forages = dbContext.forages; - - for (var i = 0; i < forages.length; i++) { - if (forages[i]._dbInfo.db) { - forages[i]._dbInfo.db.close(); - forages[i]._dbInfo.db = null; - } - } - - return _getConnection(dbInfo, false).then(function (db) { - for (var j = 0; j < forages.length; j++) { - forages[j]._dbInfo.db = db; - } - })["catch"](function (err) { - _rejectReadiness(dbInfo, err); - throw err; - }); -} - -// FF doesn't like Promises (micro-tasks) and IDDB store operations, -// so we have to do it with callbacks -function createTransaction(dbInfo, mode, callback) { - try { - var tx = dbInfo.db.transaction(dbInfo.storeName, mode); - callback(null, tx); - } catch (err) { - if (!dbInfo.db || err.name === 'InvalidStateError') { - return _tryReconnect(dbInfo).then(function () { - - var tx = dbInfo.db.transaction(dbInfo.storeName, mode); - callback(null, tx); - }); - } - - callback(err); - } -} - -// Open the IndexedDB database (automatically creates one if one didn't -// previously exist), using any options set in the config. -function _initStorage(options) { - var self = this; - var dbInfo = { - db: null - }; - - if (options) { - for (var i in options) { - dbInfo[i] = options[i]; - } - } - - // Initialize a singleton container for all running localForages. - if (!dbContexts) { - dbContexts = {}; - } - - // Get the current context of the database; - var dbContext = dbContexts[dbInfo.name]; - - // ...or create a new context. - if (!dbContext) { - dbContext = { - // Running localForages sharing a database. - forages: [], - // Shared database. - db: null, - // Database readiness (promise). - dbReady: null, - // Deferred operations on the database. - deferredOperations: [] - }; - // Register the new context in the global container. - dbContexts[dbInfo.name] = dbContext; - } - - // Register itself as a running localForage in the current context. - dbContext.forages.push(self); - - // Replace the default `ready()` function with the specialized one. - if (!self._initReady) { - self._initReady = self.ready; - self.ready = _fullyReady; - } - - // Create an array of initialization states of the related localForages. - var initPromises = []; - - function ignoreErrors() { - // Don't handle errors here, - // just makes sure related localForages aren't pending. - return Promise$1.resolve(); - } - - for (var j = 0; j < dbContext.forages.length; j++) { - var forage = dbContext.forages[j]; - if (forage !== self) { - // Don't wait for itself... - initPromises.push(forage._initReady()["catch"](ignoreErrors)); - } - } - - // Take a snapshot of the related localForages. - var forages = dbContext.forages.slice(0); - - // Initialize the connection process only when - // all the related localForages aren't pending. - return Promise$1.all(initPromises).then(function () { - dbInfo.db = dbContext.db; - // Get the connection or open a new one without upgrade. - return _getOriginalConnection(dbInfo); - }).then(function (db) { - dbInfo.db = db; - if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) { - // Reopen the database for upgrading. - return _getUpgradedConnection(dbInfo); - } - return db; - }).then(function (db) { - dbInfo.db = dbContext.db = db; - self._dbInfo = dbInfo; - // Share the final connection amongst related localForages. - for (var k = 0; k < forages.length; k++) { - var forage = forages[k]; - if (forage !== self) { - // Self is already up-to-date. - forage._dbInfo.db = dbInfo.db; - forage._dbInfo.version = dbInfo.version; - } - } - }); -} - -function getItem(key, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.get(key); - - req.onsuccess = function () { - var value = req.result; - if (value === undefined) { - value = null; - } - if (_isEncodedBlob(value)) { - value = _decodeBlob(value); - } - resolve(value); - }; - - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -// Iterate over all items stored in database. -function iterate(iterator, callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.openCursor(); - var iterationNumber = 1; - - req.onsuccess = function () { - var cursor = req.result; - - if (cursor) { - var value = cursor.value; - if (_isEncodedBlob(value)) { - value = _decodeBlob(value); - } - var result = iterator(value, cursor.key, iterationNumber++); - - // when the iterator callback retuns any - // (non-`undefined`) value, then we stop - // the iteration immediately - if (result !== void 0) { - resolve(result); - } else { - cursor["continue"](); - } - } else { - resolve(); - } - }; - - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - - return promise; -} - -function setItem(key, value, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = new Promise$1(function (resolve, reject) { - var dbInfo; - self.ready().then(function () { - dbInfo = self._dbInfo; - if (toString.call(value) === '[object Blob]') { - return _checkBlobSupport(dbInfo.db).then(function (blobSupport) { - if (blobSupport) { - return value; - } - return _encodeBlob(value); - }); - } - return value; - }).then(function (value) { - createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - - // The reason we don't _save_ null is because IE 10 does - // not support saving the `null` type in IndexedDB. How - // ironic, given the bug below! - // See: https://github.com/mozilla/localForage/issues/161 - if (value === null) { - value = undefined; - } - - var req = store.put(value, key); - - transaction.oncomplete = function () { - // Cast to undefined so the value passed to - // callback/promise is the same as what one would get out - // of `getItem()` later. This leads to some weirdness - // (setItem('foo', undefined) will return `null`), but - // it's not my fault localStorage is our baseline and that - // it's weird. - if (value === undefined) { - value = null; - } - - resolve(value); - }; - transaction.onabort = transaction.onerror = function () { - var err = req.error ? req.error : req.transaction.error; - reject(err); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function removeItem(key, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - // We use a Grunt task to make this safe for IE and some - // versions of Android (including those used by Cordova). - // Normally IE won't like `.delete()` and will insist on - // using `['delete']()`, but we have a build step that - // fixes this for us now. - var req = store["delete"](key); - transaction.oncomplete = function () { - resolve(); - }; - - transaction.onerror = function () { - reject(req.error); - }; - - // The request will be also be aborted if we've exceeded our storage - // space. - transaction.onabort = function () { - var err = req.error ? req.error : req.transaction.error; - reject(err); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function clear(callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.clear(); - - transaction.oncomplete = function () { - resolve(); - }; - - transaction.onabort = transaction.onerror = function () { - var err = req.error ? req.error : req.transaction.error; - reject(err); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function length(callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.count(); - - req.onsuccess = function () { - resolve(req.result); - }; - - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function key(n, callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - if (n < 0) { - resolve(null); - - return; - } - - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var advanced = false; - var req = store.openCursor(); - - req.onsuccess = function () { - var cursor = req.result; - if (!cursor) { - // this means there weren't enough keys - resolve(null); - - return; - } - - if (n === 0) { - // We have the first key, return it if that's what they - // wanted. - resolve(cursor.key); - } else { - if (!advanced) { - // Otherwise, ask the cursor to skip ahead n - // records. - advanced = true; - cursor.advance(n); - } else { - // When we get here, we've got the nth key. - resolve(cursor.key); - } - } - }; - - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function keys(callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.openCursor(); - var keys = []; - - req.onsuccess = function () { - var cursor = req.result; - - if (!cursor) { - resolve(keys); - return; - } - - keys.push(cursor.key); - cursor["continue"](); - }; - - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -var asyncStorage = { - _driver: 'asyncStorage', - _initStorage: _initStorage, - _support: isIndexedDBValid(), - iterate: iterate, - getItem: getItem, - setItem: setItem, - removeItem: removeItem, - clear: clear, - length: length, - key: key, - keys: keys -}; - -function isWebSQLValid() { - return typeof openDatabase === 'function'; -} - -// Sadly, the best way to save binary data in WebSQL/localStorage is serializing -// it to Base64, so this is how we store it to prevent very strange errors with less -// verbose ways of binary <-> string data storage. -var BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - -var BLOB_TYPE_PREFIX = '~~local_forage_type~'; -var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/; - -var SERIALIZED_MARKER = '__lfsc__:'; -var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length; - -// OMG the serializations! -var TYPE_ARRAYBUFFER = 'arbf'; -var TYPE_BLOB = 'blob'; -var TYPE_INT8ARRAY = 'si08'; -var TYPE_UINT8ARRAY = 'ui08'; -var TYPE_UINT8CLAMPEDARRAY = 'uic8'; -var TYPE_INT16ARRAY = 'si16'; -var TYPE_INT32ARRAY = 'si32'; -var TYPE_UINT16ARRAY = 'ur16'; -var TYPE_UINT32ARRAY = 'ui32'; -var TYPE_FLOAT32ARRAY = 'fl32'; -var TYPE_FLOAT64ARRAY = 'fl64'; -var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length; - -var toString$1 = Object.prototype.toString; - -function stringToBuffer(serializedString) { - // Fill the string into a ArrayBuffer. - var bufferLength = serializedString.length * 0.75; - var len = serializedString.length; - var i; - var p = 0; - var encoded1, encoded2, encoded3, encoded4; - - if (serializedString[serializedString.length - 1] === '=') { - bufferLength--; - if (serializedString[serializedString.length - 2] === '=') { - bufferLength--; - } - } - - var buffer = new ArrayBuffer(bufferLength); - var bytes = new Uint8Array(buffer); - - for (i = 0; i < len; i += 4) { - encoded1 = BASE_CHARS.indexOf(serializedString[i]); - encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]); - encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]); - encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]); - - /*jslint bitwise: true */ - bytes[p++] = encoded1 << 2 | encoded2 >> 4; - bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; - bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; - } - return buffer; -} - -// Converts a buffer to a string to store, serialized, in the backend -// storage library. -function bufferToString(buffer) { - // base64-arraybuffer - var bytes = new Uint8Array(buffer); - var base64String = ''; - var i; - - for (i = 0; i < bytes.length; i += 3) { - /*jslint bitwise: true */ - base64String += BASE_CHARS[bytes[i] >> 2]; - base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4]; - base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6]; - base64String += BASE_CHARS[bytes[i + 2] & 63]; - } - - if (bytes.length % 3 === 2) { - base64String = base64String.substring(0, base64String.length - 1) + '='; - } else if (bytes.length % 3 === 1) { - base64String = base64String.substring(0, base64String.length - 2) + '=='; - } - - return base64String; -} - -// Serialize a value, afterwards executing a callback (which usually -// instructs the `setItem()` callback/promise to be executed). This is how -// we store binary data with localStorage. -function serialize(value, callback) { - var valueType = ''; - if (value) { - valueType = toString$1.call(value); - } - - // Cannot use `value instanceof ArrayBuffer` or such here, as these - // checks fail when running the tests using casper.js... - // - // TODO: See why those tests fail and use a better solution. - if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) { - // Convert binary arrays to a string and prefix the string with - // a special marker. - var buffer; - var marker = SERIALIZED_MARKER; - - if (value instanceof ArrayBuffer) { - buffer = value; - marker += TYPE_ARRAYBUFFER; - } else { - buffer = value.buffer; - - if (valueType === '[object Int8Array]') { - marker += TYPE_INT8ARRAY; - } else if (valueType === '[object Uint8Array]') { - marker += TYPE_UINT8ARRAY; - } else if (valueType === '[object Uint8ClampedArray]') { - marker += TYPE_UINT8CLAMPEDARRAY; - } else if (valueType === '[object Int16Array]') { - marker += TYPE_INT16ARRAY; - } else if (valueType === '[object Uint16Array]') { - marker += TYPE_UINT16ARRAY; - } else if (valueType === '[object Int32Array]') { - marker += TYPE_INT32ARRAY; - } else if (valueType === '[object Uint32Array]') { - marker += TYPE_UINT32ARRAY; - } else if (valueType === '[object Float32Array]') { - marker += TYPE_FLOAT32ARRAY; - } else if (valueType === '[object Float64Array]') { - marker += TYPE_FLOAT64ARRAY; - } else { - callback(new Error('Failed to get type for BinaryArray')); - } - } - - callback(marker + bufferToString(buffer)); - } else if (valueType === '[object Blob]') { - // Conver the blob to a binaryArray and then to a string. - var fileReader = new FileReader(); - - fileReader.onload = function () { - // Backwards-compatible prefix for the blob type. - var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result); - - callback(SERIALIZED_MARKER + TYPE_BLOB + str); - }; - - fileReader.readAsArrayBuffer(value); - } else { - try { - callback(JSON.stringify(value)); - } catch (e) { - console.error("Couldn't convert value into a JSON string: ", value); - - callback(null, e); - } - } -} - -// Deserialize data we've inserted into a value column/field. We place -// special markers into our strings to mark them as encoded; this isn't -// as nice as a meta field, but it's the only sane thing we can do whilst -// keeping localStorage support intact. -// -// Oftentimes this will just deserialize JSON content, but if we have a -// special marker (SERIALIZED_MARKER, defined above), we will extract -// some kind of arraybuffer/binary data/typed array out of the string. -function deserialize(value) { - // If we haven't marked this string as being specially serialized (i.e. - // something other than serialized JSON), we can just return it and be - // done with it. - if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) { - return JSON.parse(value); - } - - // The following code deals with deserializing some kind of Blob or - // TypedArray. First we separate out the type of data we're dealing - // with from the data itself. - var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH); - var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH); - - var blobType; - // Backwards-compatible blob type serialization strategy. - // DBs created with older versions of localForage will simply not have the blob type. - if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) { - var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX); - blobType = matcher[1]; - serializedString = serializedString.substring(matcher[0].length); - } - var buffer = stringToBuffer(serializedString); - - // Return the right type based on the code/type set during - // serialization. - switch (type) { - case TYPE_ARRAYBUFFER: - return buffer; - case TYPE_BLOB: - return createBlob([buffer], { type: blobType }); - case TYPE_INT8ARRAY: - return new Int8Array(buffer); - case TYPE_UINT8ARRAY: - return new Uint8Array(buffer); - case TYPE_UINT8CLAMPEDARRAY: - return new Uint8ClampedArray(buffer); - case TYPE_INT16ARRAY: - return new Int16Array(buffer); - case TYPE_UINT16ARRAY: - return new Uint16Array(buffer); - case TYPE_INT32ARRAY: - return new Int32Array(buffer); - case TYPE_UINT32ARRAY: - return new Uint32Array(buffer); - case TYPE_FLOAT32ARRAY: - return new Float32Array(buffer); - case TYPE_FLOAT64ARRAY: - return new Float64Array(buffer); - default: - throw new Error('Unkown type: ' + type); - } -} - -var localforageSerializer = { - serialize: serialize, - deserialize: deserialize, - stringToBuffer: stringToBuffer, - bufferToString: bufferToString -}; - -/* - * Includes code from: - * - * base64-arraybuffer - * https://github.com/niklasvh/base64-arraybuffer - * - * Copyright (c) 2012 Niklas von Hertzen - * Licensed under the MIT license. - */ -// Open the WebSQL database (automatically creates one if one didn't -// previously exist), using any options set in the config. -function _initStorage$1(options) { - var self = this; - var dbInfo = { - db: null - }; - - if (options) { - for (var i in options) { - dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i]; - } - } - - var dbInfoPromise = new Promise$1(function (resolve, reject) { - // Open the database; the openDatabase API will automatically - // create it for us if it doesn't exist. - try { - dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size); - } catch (e) { - return reject(e); - } - - // Create our key/value table if it doesn't exist. - dbInfo.db.transaction(function (t) { - t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' (id INTEGER PRIMARY KEY, key unique, value)', [], function () { - self._dbInfo = dbInfo; - resolve(); - }, function (t, error) { - reject(error); - }); - }); - }); - - dbInfo.serializer = localforageSerializer; - return dbInfoPromise; -} - -function getItem$1(key, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - t.executeSql('SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) { - var result = results.rows.length ? results.rows.item(0).value : null; - - // Check to see if this is serialized content we need to - // unpack. - if (result) { - result = dbInfo.serializer.deserialize(result); - } - - resolve(result); - }, function (t, error) { - - reject(error); - }); - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function iterate$1(iterator, callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - - dbInfo.db.transaction(function (t) { - t.executeSql('SELECT * FROM ' + dbInfo.storeName, [], function (t, results) { - var rows = results.rows; - var length = rows.length; - - for (var i = 0; i < length; i++) { - var item = rows.item(i); - var result = item.value; - - // Check to see if this is serialized content - // we need to unpack. - if (result) { - result = dbInfo.serializer.deserialize(result); - } - - result = iterator(result, item.key, i + 1); - - // void(0) prevents problems with redefinition - // of `undefined`. - if (result !== void 0) { - resolve(result); - return; - } - } - - resolve(); - }, function (t, error) { - reject(error); - }); - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function _setItem(key, value, callback, retriesLeft) { - var self = this; - - key = normalizeKey(key); - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - // The localStorage API doesn't return undefined values in an - // "expected" way, so undefined is always cast to null in all - // drivers. See: https://github.com/mozilla/localForage/pull/42 - if (value === undefined) { - value = null; - } - - // Save the original value to pass to the callback. - var originalValue = value; - - var dbInfo = self._dbInfo; - dbInfo.serializer.serialize(value, function (value, error) { - if (error) { - reject(error); - } else { - dbInfo.db.transaction(function (t) { - t.executeSql('INSERT OR REPLACE INTO ' + dbInfo.storeName + ' (key, value) VALUES (?, ?)', [key, value], function () { - resolve(originalValue); - }, function (t, error) { - reject(error); - }); - }, function (sqlError) { - // The transaction failed; check - // to see if it's a quota error. - if (sqlError.code === sqlError.QUOTA_ERR) { - // We reject the callback outright for now, but - // it's worth trying to re-run the transaction. - // Even if the user accepts the prompt to use - // more storage on Safari, this error will - // be called. - // - // Try to re-run the transaction. - if (retriesLeft > 0) { - resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1])); - return; - } - reject(sqlError); - } - }); - } - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function setItem$1(key, value, callback) { - return _setItem.apply(this, [key, value, callback, 1]); -} - -function removeItem$1(key, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - t.executeSql('DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () { - resolve(); - }, function (t, error) { - reject(error); - }); - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -// Deletes every item in the table. -// TODO: Find out if this resets the AUTO_INCREMENT number. -function clear$1(callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - t.executeSql('DELETE FROM ' + dbInfo.storeName, [], function () { - resolve(); - }, function (t, error) { - reject(error); - }); - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -// Does a simple `COUNT(key)` to get the number of items stored in -// localForage. -function length$1(callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - // Ahhh, SQL makes this one soooooo easy. - t.executeSql('SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) { - var result = results.rows.item(0).c; - - resolve(result); - }, function (t, error) { - reject(error); - }); - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -// Return the key located at key index X; essentially gets the key from a -// `WHERE id = ?`. This is the most efficient way I can think to implement -// this rarely-used (in my experience) part of the API, but it can seem -// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so -// the ID of each key will change every time it's updated. Perhaps a stored -// procedure for the `setItem()` SQL would solve this problem? -// TODO: Don't change ID on `setItem()`. -function key$1(n, callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - t.executeSql('SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) { - var result = results.rows.length ? results.rows.item(0).key : null; - resolve(result); - }, function (t, error) { - reject(error); - }); - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -function keys$1(callback) { - var self = this; - - var promise = new Promise$1(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - t.executeSql('SELECT key FROM ' + dbInfo.storeName, [], function (t, results) { - var keys = []; - - for (var i = 0; i < results.rows.length; i++) { - keys.push(results.rows.item(i).key); - } - - resolve(keys); - }, function (t, error) { - reject(error); - }); - }); - })["catch"](reject); - }); - - executeCallback(promise, callback); - return promise; -} - -var webSQLStorage = { - _driver: 'webSQLStorage', - _initStorage: _initStorage$1, - _support: isWebSQLValid(), - iterate: iterate$1, - getItem: getItem$1, - setItem: setItem$1, - removeItem: removeItem$1, - clear: clear$1, - length: length$1, - key: key$1, - keys: keys$1 -}; - -function isLocalStorageValid() { - try { - return typeof localStorage !== 'undefined' && 'setItem' in localStorage && typeof localStorage.setItem === 'function'; - } catch (e) { - return false; - } -} - -// Check if localStorage throws when saving an item -function checkIfLocalStorageThrows() { - var localStorageTestKey = '_localforage_support_test'; - - try { - localStorage.setItem(localStorageTestKey, true); - localStorage.removeItem(localStorageTestKey); - - return false; - } catch (e) { - return true; - } -} - -// Check if localStorage is usable and allows to save an item -// This method checks if localStorage is usable in Safari Private Browsing -// mode, or in any other case where the available quota for localStorage -// is 0 and there wasn't any saved items yet. -function _isLocalStorageUsable() { - return !checkIfLocalStorageThrows() || localStorage.length > 0; -} - -// Config the localStorage backend, using options set in the config. -function _initStorage$2(options) { - var self = this; - var dbInfo = {}; - if (options) { - for (var i in options) { - dbInfo[i] = options[i]; - } - } - - dbInfo.keyPrefix = dbInfo.name + '/'; - - if (dbInfo.storeName !== self._defaultConfig.storeName) { - dbInfo.keyPrefix += dbInfo.storeName + '/'; - } - - if (!_isLocalStorageUsable()) { - return Promise$1.reject(); - } - - self._dbInfo = dbInfo; - dbInfo.serializer = localforageSerializer; - - return Promise$1.resolve(); -} - -// Remove all keys from the datastore, effectively destroying all data in -// the app's key/value store! -function clear$2(callback) { - var self = this; - var promise = self.ready().then(function () { - var keyPrefix = self._dbInfo.keyPrefix; - - for (var i = localStorage.length - 1; i >= 0; i--) { - var key = localStorage.key(i); - - if (key.indexOf(keyPrefix) === 0) { - localStorage.removeItem(key); - } - } - }); - - executeCallback(promise, callback); - return promise; -} - -// Retrieve an item from the store. Unlike the original async_storage -// library in Gaia, we don't modify return values at all. If a key's value -// is `undefined`, we pass that value to the callback function. -function getItem$2(key, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var result = localStorage.getItem(dbInfo.keyPrefix + key); - - // If a result was found, parse it from the serialized - // string into a JS object. If result isn't truthy, the key - // is likely undefined and we'll pass it straight to the - // callback. - if (result) { - result = dbInfo.serializer.deserialize(result); - } - - return result; - }); - - executeCallback(promise, callback); - return promise; -} - -// Iterate over all items in the store. -function iterate$2(iterator, callback) { - var self = this; - - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var keyPrefix = dbInfo.keyPrefix; - var keyPrefixLength = keyPrefix.length; - var length = localStorage.length; - - // We use a dedicated iterator instead of the `i` variable below - // so other keys we fetch in localStorage aren't counted in - // the `iterationNumber` argument passed to the `iterate()` - // callback. - // - // See: github.com/mozilla/localForage/pull/435#discussion_r38061530 - var iterationNumber = 1; - - for (var i = 0; i < length; i++) { - var key = localStorage.key(i); - if (key.indexOf(keyPrefix) !== 0) { - continue; - } - var value = localStorage.getItem(key); - - // If a result was found, parse it from the serialized - // string into a JS object. If result isn't truthy, the - // key is likely undefined and we'll pass it straight - // to the iterator. - if (value) { - value = dbInfo.serializer.deserialize(value); - } - - value = iterator(value, key.substring(keyPrefixLength), iterationNumber++); - - if (value !== void 0) { - return value; - } - } - }); - - executeCallback(promise, callback); - return promise; -} - -// Same as localStorage's key() method, except takes a callback. -function key$2(n, callback) { - var self = this; - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var result; - try { - result = localStorage.key(n); - } catch (error) { - result = null; - } - - // Remove the prefix from the key, if a key is found. - if (result) { - result = result.substring(dbInfo.keyPrefix.length); - } - - return result; - }); - - executeCallback(promise, callback); - return promise; -} - -function keys$2(callback) { - var self = this; - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var length = localStorage.length; - var keys = []; - - for (var i = 0; i < length; i++) { - var itemKey = localStorage.key(i); - if (itemKey.indexOf(dbInfo.keyPrefix) === 0) { - keys.push(itemKey.substring(dbInfo.keyPrefix.length)); - } - } - - return keys; - }); - - executeCallback(promise, callback); - return promise; -} - -// Supply the number of keys in the datastore to the callback function. -function length$2(callback) { - var self = this; - var promise = self.keys().then(function (keys) { - return keys.length; - }); - - executeCallback(promise, callback); - return promise; -} - -// Remove an item from the store, nice and simple. -function removeItem$2(key, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - localStorage.removeItem(dbInfo.keyPrefix + key); - }); - - executeCallback(promise, callback); - return promise; -} - -// Set a key's value and run an optional callback once the value is set. -// Unlike Gaia's implementation, the callback function is passed the value, -// in case you want to operate on that value only after you're sure it -// saved, or something like that. -function setItem$2(key, value, callback) { - var self = this; - - key = normalizeKey(key); - - var promise = self.ready().then(function () { - // Convert undefined values to null. - // https://github.com/mozilla/localForage/pull/42 - if (value === undefined) { - value = null; - } - - // Save the original value to pass to the callback. - var originalValue = value; - - return new Promise$1(function (resolve, reject) { - var dbInfo = self._dbInfo; - dbInfo.serializer.serialize(value, function (value, error) { - if (error) { - reject(error); - } else { - try { - localStorage.setItem(dbInfo.keyPrefix + key, value); - resolve(originalValue); - } catch (e) { - // localStorage capacity exceeded. - // TODO: Make this a specific error/event. - if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { - reject(e); - } - reject(e); - } - } - }); - }); - }); - - executeCallback(promise, callback); - return promise; -} - -var localStorageWrapper = { - _driver: 'localStorageWrapper', - _initStorage: _initStorage$2, - _support: isLocalStorageValid(), - iterate: iterate$2, - getItem: getItem$2, - setItem: setItem$2, - removeItem: removeItem$2, - clear: clear$2, - length: length$2, - key: key$2, - keys: keys$2 -}; - -var isArray = Array.isArray || function (arg) { - return Object.prototype.toString.call(arg) === '[object Array]'; -}; - -// Drivers are stored here when `defineDriver()` is called. -// They are shared across all instances of localForage. -var DefinedDrivers = {}; - -var DriverSupport = {}; - -var DefaultDrivers = { - INDEXEDDB: asyncStorage, - WEBSQL: webSQLStorage, - LOCALSTORAGE: localStorageWrapper -}; - -var DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver]; - -var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem']; - -var DefaultConfig = { - description: '', - driver: DefaultDriverOrder.slice(), - name: 'localforage', - // Default DB size is _JUST UNDER_ 5MB, as it's the highest size - // we can use without a prompt. - size: 4980736, - storeName: 'keyvaluepairs', - version: 1.0 -}; - -function callWhenReady(localForageInstance, libraryMethod) { - localForageInstance[libraryMethod] = function () { - var _args = arguments; - return localForageInstance.ready().then(function () { - return localForageInstance[libraryMethod].apply(localForageInstance, _args); - }); - }; -} - -function extend() { - for (var i = 1; i < arguments.length; i++) { - var arg = arguments[i]; - - if (arg) { - for (var _key in arg) { - if (arg.hasOwnProperty(_key)) { - if (isArray(arg[_key])) { - arguments[0][_key] = arg[_key].slice(); - } else { - arguments[0][_key] = arg[_key]; - } - } - } - } - } - - return arguments[0]; -} - -var LocalForage = function () { - function LocalForage(options) { - _classCallCheck(this, LocalForage); - - for (var driverTypeKey in DefaultDrivers) { - if (DefaultDrivers.hasOwnProperty(driverTypeKey)) { - var driver = DefaultDrivers[driverTypeKey]; - var driverName = driver._driver; - this[driverTypeKey] = driverName; - - if (!DefinedDrivers[driverName]) { - // we don't need to wait for the promise, - // since the default drivers can be defined - // in a blocking manner - this.defineDriver(driver); - } - } - } - - this._defaultConfig = extend({}, DefaultConfig); - this._config = extend({}, this._defaultConfig, options); - this._driverSet = null; - this._initDriver = null; - this._ready = false; - this._dbInfo = null; - - this._wrapLibraryMethodsWithReady(); - this.setDriver(this._config.driver)["catch"](function () {}); - } - - // Set any config values for localForage; can be called anytime before - // the first API call (e.g. `getItem`, `setItem`). - // We loop through options so we don't overwrite existing config - // values. - - - LocalForage.prototype.config = function config(options) { - // If the options argument is an object, we use it to set values. - // Otherwise, we return either a specified config value or all - // config values. - if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') { - // If localforage is ready and fully initialized, we can't set - // any new configuration values. Instead, we return an error. - if (this._ready) { - return new Error('Can\'t call config() after localforage ' + 'has been used.'); - } - - for (var i in options) { - if (i === 'storeName') { - options[i] = options[i].replace(/\W/g, '_'); - } - - if (i === 'version' && typeof options[i] !== 'number') { - return new Error('Database version must be a number.'); - } - - this._config[i] = options[i]; - } - - // after all config options are set and - // the driver option is used, try setting it - if ('driver' in options && options.driver) { - return this.setDriver(this._config.driver); - } - - return true; - } else if (typeof options === 'string') { - return this._config[options]; - } else { - return this._config; - } - }; - - // Used to define a custom driver, shared across all instances of - // localForage. - - - LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) { - var promise = new Promise$1(function (resolve, reject) { - try { - var driverName = driverObject._driver; - var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver'); - - // A driver name should be defined and not overlap with the - // library-defined, default drivers. - if (!driverObject._driver) { - reject(complianceError); - return; - } - - var driverMethods = LibraryMethods.concat('_initStorage'); - for (var i = 0, len = driverMethods.length; i < len; i++) { - var customDriverMethod = driverMethods[i]; - if (!customDriverMethod || !driverObject[customDriverMethod] || typeof driverObject[customDriverMethod] !== 'function') { - reject(complianceError); - return; - } - } - - var setDriverSupport = function setDriverSupport(support) { - if (DefinedDrivers[driverName]) { - console.info('Redefining LocalForage driver: ' + driverName); - } - DefinedDrivers[driverName] = driverObject; - DriverSupport[driverName] = support; - // don't use a then, so that we can define - // drivers that have simple _support methods - // in a blocking manner - resolve(); - }; - - if ('_support' in driverObject) { - if (driverObject._support && typeof driverObject._support === 'function') { - driverObject._support().then(setDriverSupport, reject); - } else { - setDriverSupport(!!driverObject._support); - } - } else { - setDriverSupport(true); - } - } catch (e) { - reject(e); - } - }); - - executeTwoCallbacks(promise, callback, errorCallback); - return promise; - }; - - LocalForage.prototype.driver = function driver() { - return this._driver || null; - }; - - LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) { - var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.')); - - executeTwoCallbacks(getDriverPromise, callback, errorCallback); - return getDriverPromise; - }; - - LocalForage.prototype.getSerializer = function getSerializer(callback) { - var serializerPromise = Promise$1.resolve(localforageSerializer); - executeTwoCallbacks(serializerPromise, callback); - return serializerPromise; - }; - - LocalForage.prototype.ready = function ready(callback) { - var self = this; - - var promise = self._driverSet.then(function () { - if (self._ready === null) { - self._ready = self._initDriver(); - } - - return self._ready; - }); - - executeTwoCallbacks(promise, callback, callback); - return promise; - }; - - LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) { - var self = this; - - if (!isArray(drivers)) { - drivers = [drivers]; - } - - var supportedDrivers = this._getSupportedDrivers(drivers); - - function setDriverToConfig() { - self._config.driver = self.driver(); - } - - function extendSelfWithDriver(driver) { - self._extend(driver); - setDriverToConfig(); - - self._ready = self._initStorage(self._config); - return self._ready; - } - - function initDriver(supportedDrivers) { - return function () { - var currentDriverIndex = 0; - - function driverPromiseLoop() { - while (currentDriverIndex < supportedDrivers.length) { - var driverName = supportedDrivers[currentDriverIndex]; - currentDriverIndex++; - - self._dbInfo = null; - self._ready = null; - - return self.getDriver(driverName).then(extendSelfWithDriver)["catch"](driverPromiseLoop); - } - - setDriverToConfig(); - var error = new Error('No available storage method found.'); - self._driverSet = Promise$1.reject(error); - return self._driverSet; - } - - return driverPromiseLoop(); - }; - } - - // There might be a driver initialization in progress - // so wait for it to finish in order to avoid a possible - // race condition to set _dbInfo - var oldDriverSetDone = this._driverSet !== null ? this._driverSet["catch"](function () { - return Promise$1.resolve(); - }) : Promise$1.resolve(); - - this._driverSet = oldDriverSetDone.then(function () { - var driverName = supportedDrivers[0]; - self._dbInfo = null; - self._ready = null; - - return self.getDriver(driverName).then(function (driver) { - self._driver = driver._driver; - setDriverToConfig(); - self._wrapLibraryMethodsWithReady(); - self._initDriver = initDriver(supportedDrivers); - }); - })["catch"](function () { - setDriverToConfig(); - var error = new Error('No available storage method found.'); - self._driverSet = Promise$1.reject(error); - return self._driverSet; - }); - - executeTwoCallbacks(this._driverSet, callback, errorCallback); - return this._driverSet; - }; - - LocalForage.prototype.supports = function supports(driverName) { - return !!DriverSupport[driverName]; - }; - - LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) { - extend(this, libraryMethodsAndProperties); - }; - - LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) { - var supportedDrivers = []; - for (var i = 0, len = drivers.length; i < len; i++) { - var driverName = drivers[i]; - if (this.supports(driverName)) { - supportedDrivers.push(driverName); - } - } - return supportedDrivers; - }; - - LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() { - // Add a stub for each driver API method that delays the call to the - // corresponding driver method until localForage is ready. These stubs - // will be replaced by the driver methods as soon as the driver is - // loaded, so there is no performance impact. - for (var i = 0, len = LibraryMethods.length; i < len; i++) { - callWhenReady(this, LibraryMethods[i]); - } - }; - - LocalForage.prototype.createInstance = function createInstance(options) { - return new LocalForage(options); - }; - - return LocalForage; -}(); - -// The actual localForage object that we expose as a module or via a -// global. It's extended by pulling in one of our other libraries. - - -var localforage_js = new LocalForage(); - -module.exports = localforage_js; - -},{"3":3}]},{},[4])(4) -}); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/lodash/_Symbol.js": -/***/ (function(module, exports, __webpack_require__) { - -var root = __webpack_require__("./node_modules/lodash/_root.js"); - -/** Built-in value references. */ -var Symbol = root.Symbol; - -module.exports = Symbol; - - -/***/ }), - -/***/ "./node_modules/lodash/_baseGetTag.js": -/***/ (function(module, exports, __webpack_require__) { - -var Symbol = __webpack_require__("./node_modules/lodash/_Symbol.js"), - getRawTag = __webpack_require__("./node_modules/lodash/_getRawTag.js"), - objectToString = __webpack_require__("./node_modules/lodash/_objectToString.js"); - -/** `Object#toString` result references. */ -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; - -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; - -/** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); -} - -module.exports = baseGetTag; - - -/***/ }), - -/***/ "./node_modules/lodash/_freeGlobal.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - -module.exports = freeGlobal; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/lodash/_getRawTag.js": -/***/ (function(module, exports, __webpack_require__) { - -var Symbol = __webpack_require__("./node_modules/lodash/_Symbol.js"); - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto.toString; - -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; - -/** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ -function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result; -} - -module.exports = getRawTag; - - -/***/ }), - -/***/ "./node_modules/lodash/_objectToString.js": -/***/ (function(module, exports) { - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto.toString; - -/** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ -function objectToString(value) { - return nativeObjectToString.call(value); -} - -module.exports = objectToString; - - -/***/ }), - -/***/ "./node_modules/lodash/_root.js": -/***/ (function(module, exports, __webpack_require__) { - -var freeGlobal = __webpack_require__("./node_modules/lodash/_freeGlobal.js"); - -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - -/** Used as a reference to the global object. */ -var root = freeGlobal || freeSelf || Function('return this')(); - -module.exports = root; - - -/***/ }), - -/***/ "./node_modules/lodash/debounce.js": -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__("./node_modules/lodash/isObject.js"), - now = __webpack_require__("./node_modules/lodash/now.js"), - toNumber = __webpack_require__("./node_modules/lodash/toNumber.js"); - -/** Error message constants. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeMax = Math.max, - nativeMin = Math.min; - -/** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ -function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - timeWaiting = wait - timeSinceLastCall; - - return maxing - ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) - : timeWaiting; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return (lastCallTime === undefined || (timeSinceLastCall >= wait) || - (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - - function flush() { - return timerId === undefined ? result : trailingEdge(now()); - } - - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; -} - -module.exports = debounce; - - -/***/ }), - -/***/ "./node_modules/lodash/isObject.js": -/***/ (function(module, exports) { - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); -} - -module.exports = isObject; - - -/***/ }), - -/***/ "./node_modules/lodash/isObjectLike.js": -/***/ (function(module, exports) { - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return value != null && typeof value == 'object'; -} - -module.exports = isObjectLike; - - -/***/ }), - -/***/ "./node_modules/lodash/isSymbol.js": -/***/ (function(module, exports, __webpack_require__) { - -var baseGetTag = __webpack_require__("./node_modules/lodash/_baseGetTag.js"), - isObjectLike = __webpack_require__("./node_modules/lodash/isObjectLike.js"); - -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); -} - -module.exports = isSymbol; - - -/***/ }), - -/***/ "./node_modules/lodash/now.js": -/***/ (function(module, exports, __webpack_require__) { - -var root = __webpack_require__("./node_modules/lodash/_root.js"); - -/** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ -var now = function() { - return root.Date.now(); -}; - -module.exports = now; - - -/***/ }), - -/***/ "./node_modules/lodash/throttle.js": -/***/ (function(module, exports, __webpack_require__) { - -var debounce = __webpack_require__("./node_modules/lodash/debounce.js"), - isObject = __webpack_require__("./node_modules/lodash/isObject.js"); - -/** Error message constants. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed `func` invocations and a `flush` method to - * immediately invoke them. Provide `options` to indicate whether `func` - * should be invoked on the leading and/or trailing edge of the `wait` - * timeout. The `func` is invoked with the last arguments provided to the - * throttled function. Subsequent calls to the throttled function return the - * result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the throttled function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // Avoid excessively updating the position while scrolling. - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); - * jQuery(element).on('click', throttled); - * - * // Cancel the trailing throttled invocation. - * jQuery(window).on('popstate', throttled.cancel); - */ -function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - 'leading': leading, - 'maxWait': wait, - 'trailing': trailing - }); -} - -module.exports = throttle; - - -/***/ }), - -/***/ "./node_modules/lodash/toNumber.js": -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__("./node_modules/lodash/isObject.js"), - isSymbol = __webpack_require__("./node_modules/lodash/isSymbol.js"); - -/** Used as references for various `Number` constants. */ -var NAN = 0 / 0; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ -function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -module.exports = toNumber; - - -/***/ }), - -/***/ "./node_modules/material-ui-icons/BeachAccess.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; - -var _ref = _react2.default.createElement('path', { d: 'M13.127 14.56l1.43-1.43 6.44 6.443L19.57 21zm4.293-5.73l2.86-2.86c-3.95-3.95-10.35-3.96-14.3-.02 3.93-1.3 8.31-.25 11.44 2.88zM5.95 5.98c-3.94 3.95-3.93 10.35.02 14.3l2.86-2.86C5.7 14.29 4.65 9.91 5.95 5.98zm.02-.02l-.01.01c-.38 3.01 1.17 6.88 4.3 10.02l5.73-5.73c-3.13-3.13-7.01-4.68-10.02-4.3z' }); - -var BeachAccess = function BeachAccess(props) { - return _react2.default.createElement( - SvgIconCustom, - props, - _ref - ); -}; - -BeachAccess = (0, _pure2.default)(BeachAccess); -BeachAccess.muiName = 'SvgIcon'; - -exports.default = BeachAccess; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui-icons/ExpandMore.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; - -var _ref = _react2.default.createElement('path', { d: 'M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z' }); - -var ExpandMore = function ExpandMore(props) { - return _react2.default.createElement( - SvgIconCustom, - props, - _ref - ); -}; - -ExpandMore = (0, _pure2.default)(ExpandMore); -ExpandMore.muiName = 'SvgIcon'; - -exports.default = ExpandMore; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui-icons/Folder.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; - -var _ref = _react2.default.createElement('path', { d: 'M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z' }); - -var Folder = function Folder(props) { - return _react2.default.createElement( - SvgIconCustom, - props, - _ref - ); -}; - -Folder = (0, _pure2.default)(Folder); -Folder.muiName = 'SvgIcon'; - -exports.default = Folder; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui-icons/Image.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; - -var _ref = _react2.default.createElement('path', { d: 'M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z' }); - -var Image = function Image(props) { - return _react2.default.createElement( - SvgIconCustom, - props, - _ref - ); -}; - -Image = (0, _pure2.default)(Image); -Image.muiName = 'SvgIcon'; - -exports.default = Image; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui-icons/Menu.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; - -var _ref = _react2.default.createElement('path', { d: 'M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z' }); - -var Menu = function Menu(props) { - return _react2.default.createElement( - SvgIconCustom, - props, - _ref - ); -}; - -Menu = (0, _pure2.default)(Menu); -Menu.muiName = 'SvgIcon'; - -exports.default = Menu; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui-icons/Work.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SvgIconCustom = global.__MUI_SvgIcon__ || _SvgIcon2.default; - -var _ref = _react2.default.createElement('path', { d: 'M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z' }); - -var Work = function Work(props) { - return _react2.default.createElement( - SvgIconCustom, - props, - _ref - ); -}; - -Work = (0, _pure2.default)(Work); -Work.muiName = 'SvgIcon'; - -exports.default = Work; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/AppBar/AppBar.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent Paper - -var styles = exports.styles = function styles(theme) { - var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900]; - - return { - root: { - display: 'flex', - flexDirection: 'column', - width: '100%', - boxSizing: 'border-box', // Prevent padding issue with the Modal and fixed positioned AppBar. - zIndex: theme.zIndex.appBar, - flexShrink: 0 - }, - positionFixed: { - position: 'fixed', - top: 0, - left: 'auto', - right: 0 - }, - positionAbsolute: { - position: 'absolute', - top: 0, - left: 'auto', - right: 0 - }, - positionSticky: { - position: 'sticky', - top: 0, - left: 'auto', - right: 0 - }, - positionStatic: { - position: 'static' - }, - colorDefault: { - backgroundColor: backgroundColorDefault, - color: theme.palette.getContrastText(backgroundColorDefault) - }, - colorPrimary: { - backgroundColor: theme.palette.primary.main, - color: theme.palette.primary.contrastText - }, - colorSecondary: { - backgroundColor: theme.palette.secondary.main, - color: theme.palette.secondary.contrastText - } - }; -}; - -function AppBar(props) { - var _classNames; - - var children = props.children, - classes = props.classes, - classNameProp = props.className, - color = props.color, - position = props.position, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'position']); - - - var className = (0, _classnames2.default)(classes.root, classes['position' + (0, _helpers.capitalize)(position)], (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), (0, _defineProperty3.default)(_classNames, 'mui-fixed', position === 'fixed'), _classNames), classNameProp); - - return _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ square: true, component: 'header', elevation: 4, className: className }, other), - children - ); -} - -AppBar.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['inherit', 'primary', 'secondary', 'default']), - /** - * The positioning type. The behavior of the different options is described - * [here](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning). - * Note: `sticky` is not universally supported and will fall back to `static` when unavailable. - */ - position: _propTypes2.default.oneOf(['fixed', 'absolute', 'sticky', 'static']) -} : {}; - -AppBar.defaultProps = { - color: 'primary', - position: 'fixed' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiAppBar' })(AppBar); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/AppBar/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _AppBar = __webpack_require__("./node_modules/material-ui/AppBar/AppBar.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_AppBar).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Avatar/Avatar.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - position: 'relative', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - flexShrink: 0, - width: theme.spacing.unit * 5, - height: theme.spacing.unit * 5, - fontFamily: theme.typography.fontFamily, - fontSize: theme.typography.pxToRem(20), - borderRadius: '50%', - overflow: 'hidden', - userSelect: 'none' - }, - colorDefault: { - color: theme.palette.background.default, - backgroundColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600] - }, - img: { - width: '100%', - height: '100%', - textAlign: 'center', - // Handle non-square image. The property isn't supported by IE11. - objectFit: 'cover' - } - }; -}; - -function Avatar(props) { - var alt = props.alt, - childrenProp = props.children, - childrenClassNameProp = props.childrenClassName, - classes = props.classes, - classNameProp = props.className, - Component = props.component, - imgProps = props.imgProps, - sizes = props.sizes, - src = props.src, - srcSet = props.srcSet, - other = (0, _objectWithoutProperties3.default)(props, ['alt', 'children', 'childrenClassName', 'classes', 'className', 'component', 'imgProps', 'sizes', 'src', 'srcSet']); - - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.colorDefault, childrenProp && !src && !srcSet), classNameProp); - var children = null; - - if (childrenProp) { - if (childrenClassNameProp && typeof childrenProp !== 'string' && _react2.default.isValidElement(childrenProp)) { - var childrenClassName = (0, _classnames2.default)(childrenClassNameProp, childrenProp.props.className); - children = _react2.default.cloneElement(childrenProp, { className: childrenClassName }); - } else { - children = childrenProp; - } - } else if (src || srcSet) { - children = _react2.default.createElement('img', (0, _extends3.default)({ - alt: alt, - src: src, - srcSet: srcSet, - sizes: sizes, - className: classes.img - }, imgProps)); - } - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ className: className }, other), - children - ); -} - -Avatar.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Used in combination with `src` or `srcSet` to - * provide an alt attribute for the rendered `img` element. - */ - alt: _propTypes2.default.string, - /** - * Used to render icon or text elements inside the Avatar. - * `src` and `alt` props will not be used and no `img` will - * be rendered by default. - * - * This can be an element, or just a string. - */ - children: _propTypes2.default.node, - /** - * @ignore - * The className of the child element. - * Used by Chip and ListItemIcon to style the Avatar icon. - */ - childrenClassName: _propTypes2.default.string, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Properties applied to the `img` element when the component - * is used to display an image. - */ - imgProps: _propTypes2.default.object, - /** - * The `sizes` attribute for the `img` element. - */ - sizes: _propTypes2.default.string, - /** - * The `src` attribute for the `img` element. - */ - src: _propTypes2.default.string, - /** - * The `srcSet` attribute for the `img` element. - */ - srcSet: _propTypes2.default.string -} : {}; - -Avatar.defaultProps = { - component: 'div' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiAvatar' })(Avatar); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Avatar/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Avatar = __webpack_require__("./node_modules/material-ui/Avatar/Avatar.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Avatar).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Badge/Badge.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var RADIUS = 12; - -var styles = exports.styles = function styles(theme) { - return { - root: { - position: 'relative', - display: 'inline-flex', - // For correct alignment with the text. - verticalAlign: 'middle' - }, - badge: { - display: 'flex', - flexDirection: 'row', - flexWrap: 'wrap', - justifyContent: 'center', - alignContent: 'center', - alignItems: 'center', - position: 'absolute', - top: -RADIUS, - right: -RADIUS, - fontFamily: theme.typography.fontFamily, - fontWeight: theme.typography.fontWeight, - fontSize: theme.typography.pxToRem(RADIUS), - width: RADIUS * 2, - height: RADIUS * 2, - borderRadius: '50%', - backgroundColor: theme.palette.color, - color: theme.palette.textColor, - zIndex: 1 // Render the badge on top of potential ripples. - }, - colorPrimary: { - backgroundColor: theme.palette.primary.main, - color: theme.palette.primary.contrastText - }, - colorSecondary: { - backgroundColor: theme.palette.secondary.main, - color: theme.palette.secondary.contrastText - }, - colorError: { - backgroundColor: theme.palette.error.main, - color: theme.palette.error.contrastText - } - }; -}; - -function Badge(props) { - var badgeContent = props.badgeContent, - children = props.children, - classes = props.classes, - classNameProp = props.className, - color = props.color, - ComponentProp = props.component, - other = (0, _objectWithoutProperties3.default)(props, ['badgeContent', 'children', 'classes', 'className', 'color', 'component']); - - - var badgeClassName = (0, _classnames2.default)(classes.badge, (0, _defineProperty3.default)({}, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default')); - - return _react2.default.createElement( - ComponentProp, - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, classNameProp) }, other), - children, - _react2.default.createElement( - 'span', - { className: badgeClassName }, - badgeContent - ) - ); -} - -Badge.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content rendered within the badge. - */ - badgeContent: _propTypes2.default.node.isRequired, - /** - * The badge will be added relative to this node. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['default', 'primary', 'secondary', 'error']), - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) -} : {}; - -Badge.defaultProps = { - color: 'default', - component: 'span' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBadge' })(Badge); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Badge/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Badge = __webpack_require__("./node_modules/material-ui/Badge/Badge.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Badge).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/BottomNavigation/BottomNavigation.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - justifyContent: 'center', - height: 56, - backgroundColor: theme.palette.background.paper - } - }; -}; - -function BottomNavigation(props) { - var childrenProp = props.children, - classes = props.classes, - classNameProp = props.className, - onChange = props.onChange, - showLabels = props.showLabels, - value = props.value, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'onChange', 'showLabels', 'value']); - - - var className = (0, _classnames2.default)(classes.root, classNameProp); - - var children = _react2.default.Children.map(childrenProp, function (child, childIndex) { - if (!_react2.default.isValidElement(child)) { - return null; - } - - var childValue = child.props.value || childIndex; - return _react2.default.cloneElement(child, { - selected: childValue === value, - showLabel: child.props.showLabel !== undefined ? child.props.showLabel : showLabels, - value: childValue, - onChange: onChange - }); - }); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - children - ); -} - -BottomNavigation.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Callback fired when the value changes. - * - * @param {object} event The event source of the callback - * @param {any} value We default to the index of the child - */ - onChange: _propTypes2.default.func, - /** - * If `true`, all `BottomNavigationAction`s will show their labels. - * By default, only the selected `BottomNavigationAction` will show its label. - */ - showLabels: _propTypes2.default.bool, - /** - * The value of the currently selected `BottomNavigationAction`. - */ - value: _propTypes2.default.any -} : {}; - -BottomNavigation.defaultProps = { - showLabels: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBottomNavigation' })(BottomNavigation); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/BottomNavigation/BottomNavigationAction.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - transition: theme.transitions.create(['color', 'padding-top'], { - duration: theme.transitions.duration.short - }), - paddingTop: theme.spacing.unit, - paddingBottom: 10, - paddingLeft: 12, - paddingRight: 12, - minWidth: 80, - maxWidth: 168, - color: theme.palette.text.secondary, - flex: '1' - }, - selected: { - paddingTop: 6, - color: theme.palette.primary.main - }, - selectedIconOnly: { - paddingTop: theme.spacing.unit * 2 - }, - wrapper: { - display: 'inline-flex', - alignItems: 'center', - justifyContent: 'center', - width: '100%', - flexDirection: 'column' - }, - label: { - fontFamily: theme.typography.fontFamily, - fontSize: theme.typography.pxToRem(theme.typography.fontSize - 2), - opacity: 1, - transition: 'font-size 0.2s, opacity 0.2s', - transitionDelay: '0.1s' - }, - selectedLabel: { - fontSize: theme.typography.pxToRem(theme.typography.fontSize) - }, - hiddenLabel: { - opacity: 0, - transitionDelay: '0s' - } - }; -}; // @inheritedComponent ButtonBase - -var BottomNavigationAction = function (_React$Component) { - (0, _inherits3.default)(BottomNavigationAction, _React$Component); - - function BottomNavigationAction() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, BottomNavigationAction); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = BottomNavigationAction.__proto__ || (0, _getPrototypeOf2.default)(BottomNavigationAction)).call.apply(_ref, [this].concat(args))), _this), _this.handleChange = function (event) { - var _this$props = _this.props, - onChange = _this$props.onChange, - value = _this$props.value, - onClick = _this$props.onClick; - - - if (onChange) { - onChange(event, value); - } - - if (onClick) { - onClick(event); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(BottomNavigationAction, [{ - key: 'render', - value: function render() { - var _classNames, _classNames2; - - var _props = this.props, - classes = _props.classes, - classNameProp = _props.className, - icon = _props.icon, - label = _props.label, - onChange = _props.onChange, - onClick = _props.onClick, - selected = _props.selected, - showLabelProp = _props.showLabel, - value = _props.value, - other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'icon', 'label', 'onChange', 'onClick', 'selected', 'showLabel', 'value']); - - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.selected, selected), (0, _defineProperty3.default)(_classNames, classes.selectedIconOnly, !showLabelProp && !selected), _classNames), classNameProp); - - var labelClassName = (0, _classnames2.default)(classes.label, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.selectedLabel, selected), (0, _defineProperty3.default)(_classNames2, classes.hiddenLabel, !showLabelProp && !selected), _classNames2)); - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends3.default)({ className: className, focusRipple: true, onClick: this.handleChange }, other), - _react2.default.createElement( - 'span', - { className: classes.wrapper }, - icon, - _react2.default.createElement( - 'span', - { className: labelClassName }, - label - ) - ) - ); - } - }]); - return BottomNavigationAction; -}(_react2.default.Component); - -BottomNavigationAction.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The icon element. - */ - icon: _propTypes2.default.node, - /** - * The label element. - */ - label: _propTypes2.default.node, - /** - * @ignore - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - onClick: _propTypes2.default.func, - /** - * @ignore - */ - selected: _propTypes2.default.bool, - /** - * If `true`, the BottomNavigationAction will show its label. - */ - showLabel: _propTypes2.default.bool, - /** - * You can provide your own value. Otherwise, we fallback to the child position index. - */ - value: _propTypes2.default.any -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBottomNavigationAction' })(BottomNavigationAction); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/BottomNavigation/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _BottomNavigation = __webpack_require__("./node_modules/material-ui/BottomNavigation/BottomNavigation.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_BottomNavigation).default; - } -}); - -var _BottomNavigationAction = __webpack_require__("./node_modules/material-ui/BottomNavigation/BottomNavigationAction.js"); - -Object.defineProperty(exports, 'BottomNavigationAction', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_BottomNavigationAction).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Button/Button.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent ButtonBase - -var styles = exports.styles = function styles(theme) { - return { - root: (0, _extends3.default)({}, theme.typography.button, { - lineHeight: '1.4em', // Improve readability for multiline button. - boxSizing: 'border-box', - minWidth: theme.spacing.unit * 11, - minHeight: 36, - padding: theme.spacing.unit + 'px ' + theme.spacing.unit * 2 + 'px', - borderRadius: 2, - color: theme.palette.text.primary, - transition: theme.transitions.create(['background-color', 'box-shadow'], { - duration: theme.transitions.duration.short - }), - '&:hover': { - textDecoration: 'none', - // Reset on mouse devices - backgroundColor: (0, _colorManipulator.fade)(theme.palette.text.primary, 0.12), - '@media (hover: none)': { - backgroundColor: 'transparent' - }, - '&$disabled': { - backgroundColor: 'transparent' - } - } - }), - label: { - width: '100%', - display: 'inherit', - alignItems: 'inherit', - justifyContent: 'inherit' - }, - flatPrimary: { - color: theme.palette.primary.main, - '&:hover': { - backgroundColor: (0, _colorManipulator.fade)(theme.palette.primary.main, 0.12), - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: 'transparent' - } - } - }, - flatSecondary: { - color: theme.palette.secondary.main, - '&:hover': { - backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.main, 0.12), - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: 'transparent' - } - } - }, - colorInherit: { - color: 'inherit' - }, - raised: { - color: theme.palette.getContrastText(theme.palette.grey[300]), - backgroundColor: theme.palette.grey[300], - boxShadow: theme.shadows[2], - '&$keyboardFocused': { - boxShadow: theme.shadows[6] - }, - '&:active': { - boxShadow: theme.shadows[8] - }, - '&$disabled': { - boxShadow: theme.shadows[0], - backgroundColor: theme.palette.action.disabledBackground - }, - '&:hover': { - backgroundColor: theme.palette.grey.A100, - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: theme.palette.grey[300] - }, - '&$disabled': { - backgroundColor: theme.palette.action.disabledBackground - } - } - }, - keyboardFocused: {}, - raisedPrimary: { - color: theme.palette.primary.contrastText, - backgroundColor: theme.palette.primary.main, - '&:hover': { - backgroundColor: theme.palette.primary.dark, - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: theme.palette.primary.main - } - } - }, - raisedSecondary: { - color: theme.palette.secondary.contrastText, - backgroundColor: theme.palette.secondary.main, - '&:hover': { - backgroundColor: theme.palette.secondary.dark, - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: theme.palette.secondary.main - } - } - }, - disabled: { - color: theme.palette.action.disabled - }, - fab: { - borderRadius: '50%', - padding: 0, - minWidth: 0, - width: 56, - fontSize: 24, - height: 56, - boxShadow: theme.shadows[6], - '&:active': { - boxShadow: theme.shadows[12] - } - }, - mini: { - width: 40, - height: 40 - }, - sizeSmall: { - padding: theme.spacing.unit - 1 + 'px ' + theme.spacing.unit + 'px', - minWidth: theme.spacing.unit * 8, - minHeight: 32, - fontSize: theme.typography.pxToRem(theme.typography.fontSize - 1) - }, - sizeLarge: { - padding: theme.spacing.unit + 'px ' + theme.spacing.unit * 3 + 'px', - minWidth: theme.spacing.unit * 14, - minHeight: 40, - fontSize: theme.typography.pxToRem(theme.typography.fontSize + 1) - }, - fullWidth: { - width: '100%' - } - }; -}; - -function Button(props) { - var _classNames; - - var childrenProp = props.children, - classes = props.classes, - classNameProp = props.className, - color = props.color, - disabled = props.disabled, - disableFocusRipple = props.disableFocusRipple, - fullWidth = props.fullWidth, - mini = props.mini, - size = props.size, - variant = props.variant, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'disabled', 'disableFocusRipple', 'fullWidth', 'mini', 'size', 'variant']); - - - var fab = variant === 'fab'; - var raised = variant === 'raised'; - var flat = !raised && !fab; - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.raised, raised || fab), (0, _defineProperty3.default)(_classNames, classes.fab, fab), (0, _defineProperty3.default)(_classNames, classes.mini, fab && mini), (0, _defineProperty3.default)(_classNames, classes.colorInherit, color === 'inherit'), (0, _defineProperty3.default)(_classNames, classes.flatPrimary, flat && color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.flatSecondary, flat && color === 'secondary'), (0, _defineProperty3.default)(_classNames, classes.raisedPrimary, !flat && color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.raisedSecondary, !flat && color === 'secondary'), (0, _defineProperty3.default)(_classNames, classes['size' + (0, _helpers.capitalize)(size)], size !== 'medium'), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), _classNames), classNameProp); - - var children = childrenProp; - - if (fab) { - children = _react2.default.Children.map(children, function (child) { - if ((0, _reactHelpers.isMuiElement)(child, ['Icon', 'SvgIcon'])) { - return _react2.default.cloneElement(child, { fontSize: true }); - } - return child; - }); - } - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends3.default)({ - className: className, - disabled: disabled, - focusRipple: !disableFocusRipple, - keyboardFocusedClassName: classes.keyboardFocused - }, other), - _react2.default.createElement( - 'span', - { className: classes.label }, - children - ) - ); -} - -Button.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the button. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['default', 'inherit', 'primary', 'secondary']), - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - * The default value is a `button`. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the button will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the keyboard focus ripple will be disabled. - * `disableRipple` must also be true. - */ - disableFocusRipple: _propTypes2.default.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: _propTypes2.default.bool, - /** - * If `true`, the button will take up the full width of its container. - */ - fullWidth: _propTypes2.default.bool, - /** - * The URL to link to when the button is clicked. - * If defined, an `a` element will be used as the root node. - */ - href: _propTypes2.default.string, - /** - * If `true`, and `fab` is `true`, will use mini floating action button styling. - */ - mini: _propTypes2.default.bool, - /** - * The size of the button. - * `small` is equivalent to the dense button styling. - */ - size: _propTypes2.default.oneOf(['small', 'medium', 'large']), - /** - * @ignore - */ - type: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - variant: _propTypes2.default.oneOf(['flat', 'raised', 'fab']) -} : {}; - -Button.defaultProps = { - color: 'default', - disabled: false, - disableFocusRipple: false, - disableRipple: false, - fullWidth: false, - mini: false, - size: 'medium', - type: 'button', - variant: 'flat' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiButton' })(Button); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Button/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Button = __webpack_require__("./node_modules/material-ui/Button/Button.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Button).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/ButtonBase/ButtonBase.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _keycode = __webpack_require__("./node_modules/keycode/index.js"); - -var _keycode2 = _interopRequireDefault(_keycode); - -var _ownerWindow = __webpack_require__("./node_modules/dom-helpers/ownerWindow.js"); - -var _ownerWindow2 = _interopRequireDefault(_ownerWindow); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _keyboardFocus = __webpack_require__("./node_modules/material-ui/utils/keyboardFocus.js"); - -var _TouchRipple = __webpack_require__("./node_modules/material-ui/ButtonBase/TouchRipple.js"); - -var _TouchRipple2 = _interopRequireDefault(_TouchRipple); - -var _createRippleHandler = __webpack_require__("./node_modules/material-ui/ButtonBase/createRippleHandler.js"); - -var _createRippleHandler2 = _interopRequireDefault(_createRippleHandler); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - display: 'inline-flex', - alignItems: 'center', - justifyContent: 'center', - position: 'relative', - // Remove grey highlight - WebkitTapHighlightColor: 'transparent', - backgroundColor: 'transparent', // Reset default value - outline: 'none', - border: 0, - margin: 0, // Remove the margin in Safari - borderRadius: 0, - padding: 0, // Remove the padding in Firefox - cursor: 'pointer', - userSelect: 'none', - verticalAlign: 'middle', - '-moz-appearance': 'none', // Reset - '-webkit-appearance': 'none', // Reset - textDecoration: 'none', - // So we take precedent over the style of a native element. - color: 'inherit', - '&::-moz-focus-inner': { - borderStyle: 'none' // Remove Firefox dotted outline. - } - }, - disabled: { - pointerEvents: 'none', // Disable link interactions - cursor: 'default' - } -}; - -// Don't automatically add the role="button" property on these components. -// It's invalid HTML syntax. -var INVALID_COMPONENT_ROLE = ['a']; - -/** - * `ButtonBase` contains as few styles as possible. - * It aims to be a simple building block for creating a button. - * It contains a load of style reset and some focus/ripple logic. - */ - -var ButtonBase = function (_React$Component) { - (0, _inherits3.default)(ButtonBase, _React$Component); - - function ButtonBase() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, ButtonBase); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ButtonBase.__proto__ || (0, _getPrototypeOf2.default)(ButtonBase)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - keyboardFocused: false - }, _this.onKeyboardFocusHandler = function (event) { - _this.keyDown = false; - _this.setState({ keyboardFocused: true }); - - if (_this.props.onKeyboardFocus) { - _this.props.onKeyboardFocus(event); - } - }, _this.onRippleRef = function (node) { - _this.ripple = node; - }, _this.ripple = null, _this.keyDown = false, _this.button = null, _this.keyboardFocusTimeout = null, _this.keyboardFocusCheckTime = 50, _this.keyboardFocusMaxCheckTimes = 5, _this.handleKeyDown = function (event) { - var _this$props = _this.props, - component = _this$props.component, - focusRipple = _this$props.focusRipple, - onKeyDown = _this$props.onKeyDown, - onClick = _this$props.onClick; - - var key = (0, _keycode2.default)(event); - - // Check if key is already down to avoid repeats being counted as multiple activations - if (focusRipple && !_this.keyDown && _this.state.keyboardFocused && _this.ripple && key === 'space') { - _this.keyDown = true; - event.persist(); - _this.ripple.stop(event, function () { - _this.ripple.start(event); - }); - } - - if (onKeyDown) { - onKeyDown(event); - } - - // Keyboard accessibility for non interactive elements - if (event.target === _this.button && onClick && component && component !== 'a' && component !== 'button' && (key === 'space' || key === 'enter')) { - event.preventDefault(); - onClick(event); - } - }, _this.handleKeyUp = function (event) { - if (_this.props.focusRipple && (0, _keycode2.default)(event) === 'space' && _this.ripple && _this.state.keyboardFocused) { - _this.keyDown = false; - event.persist(); - _this.ripple.stop(event, function () { - return _this.ripple.pulsate(event); - }); - } - if (_this.props.onKeyUp) { - _this.props.onKeyUp(event); - } - }, _this.handleMouseDown = (0, _createRippleHandler2.default)(_this, 'MouseDown', 'start', function () { - clearTimeout(_this.keyboardFocusTimeout); - (0, _keyboardFocus.focusKeyPressed)(false); - if (_this.state.keyboardFocused) { - _this.setState({ keyboardFocused: false }); - } - }), _this.handleMouseUp = (0, _createRippleHandler2.default)(_this, 'MouseUp', 'stop'), _this.handleMouseLeave = (0, _createRippleHandler2.default)(_this, 'MouseLeave', 'stop', function (event) { - if (_this.state.keyboardFocused) { - event.preventDefault(); - } - }), _this.handleTouchStart = (0, _createRippleHandler2.default)(_this, 'TouchStart', 'start'), _this.handleTouchEnd = (0, _createRippleHandler2.default)(_this, 'TouchEnd', 'stop'), _this.handleTouchMove = (0, _createRippleHandler2.default)(_this, 'TouchEnd', 'stop'), _this.handleBlur = (0, _createRippleHandler2.default)(_this, 'Blur', 'stop', function () { - clearTimeout(_this.keyboardFocusTimeout); - (0, _keyboardFocus.focusKeyPressed)(false); - _this.setState({ keyboardFocused: false }); - }), _this.handleFocus = function (event) { - if (_this.props.disabled) { - return; - } - - // Fix for https://github.com/facebook/react/issues/7769 - if (!_this.button) { - _this.button = event.currentTarget; - } - - event.persist(); - (0, _keyboardFocus.detectKeyboardFocus)(_this, _this.button, function () { - _this.onKeyboardFocusHandler(event); - }); - - if (_this.props.onFocus) { - _this.props.onFocus(event); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(ButtonBase, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.button = (0, _reactDom.findDOMNode)(this); - (0, _keyboardFocus.listenForFocusKeys)((0, _ownerWindow2.default)(this.button)); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - // The blur won't fire when the disabled state is set on a focused input. - // We need to book keep the focused state manually. - if (!this.props.disabled && nextProps.disabled && this.state.keyboardFocused) { - this.setState({ - keyboardFocused: false - }); - } - } - }, { - key: 'componentWillUpdate', - value: function componentWillUpdate(nextProps, nextState) { - if (this.props.focusRipple && nextState.keyboardFocused && !this.state.keyboardFocused && !this.props.disableRipple) { - this.ripple.pulsate(); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.button = null; - clearTimeout(this.keyboardFocusTimeout); - } // Used to help track keyboard activation keyDown - - }, { - key: 'render', - value: function render() { - var _classNames; - - var _props = this.props, - buttonRef = _props.buttonRef, - centerRipple = _props.centerRipple, - children = _props.children, - classes = _props.classes, - classNameProp = _props.className, - component = _props.component, - disabled = _props.disabled, - disableRipple = _props.disableRipple, - focusRipple = _props.focusRipple, - keyboardFocusedClassName = _props.keyboardFocusedClassName, - onBlur = _props.onBlur, - onFocus = _props.onFocus, - onKeyboardFocus = _props.onKeyboardFocus, - onKeyDown = _props.onKeyDown, - onKeyUp = _props.onKeyUp, - onMouseDown = _props.onMouseDown, - onMouseLeave = _props.onMouseLeave, - onMouseUp = _props.onMouseUp, - onTouchEnd = _props.onTouchEnd, - onTouchMove = _props.onTouchMove, - onTouchStart = _props.onTouchStart, - tabIndex = _props.tabIndex, - type = _props.type, - other = (0, _objectWithoutProperties3.default)(_props, ['buttonRef', 'centerRipple', 'children', 'classes', 'className', 'component', 'disabled', 'disableRipple', 'focusRipple', 'keyboardFocusedClassName', 'onBlur', 'onFocus', 'onKeyboardFocus', 'onKeyDown', 'onKeyUp', 'onMouseDown', 'onMouseLeave', 'onMouseUp', 'onTouchEnd', 'onTouchMove', 'onTouchStart', 'tabIndex', 'type']); - - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, keyboardFocusedClassName || '', this.state.keyboardFocused), _classNames), classNameProp); - - var buttonProps = {}; - - var ComponentProp = component; - - if (!ComponentProp) { - if (other.href) { - ComponentProp = 'a'; - } else { - ComponentProp = 'button'; - } - } - - if (ComponentProp === 'button') { - buttonProps.type = type || 'button'; - buttonProps.disabled = disabled; - } else if (INVALID_COMPONENT_ROLE.indexOf(ComponentProp) === -1) { - buttonProps.role = 'button'; - } - - return _react2.default.createElement( - ComponentProp, - (0, _extends3.default)({ - onBlur: this.handleBlur, - onFocus: this.handleFocus, - onKeyDown: this.handleKeyDown, - onKeyUp: this.handleKeyUp, - onMouseDown: this.handleMouseDown, - onMouseLeave: this.handleMouseLeave, - onMouseUp: this.handleMouseUp, - onTouchEnd: this.handleTouchEnd, - onTouchMove: this.handleTouchMove, - onTouchStart: this.handleTouchStart, - tabIndex: disabled ? -1 : tabIndex, - className: className, - ref: buttonRef - }, buttonProps, other), - children, - !disableRipple && !disabled ? _react2.default.createElement(_TouchRipple2.default, { innerRef: this.onRippleRef, center: centerRipple }) : null - ); - } - }]); - return ButtonBase; -}(_react2.default.Component); - -ButtonBase.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Use that property to pass a ref callback to the native button component. - */ - buttonRef: _propTypes2.default.func, - /** - * If `true`, the ripples will be centered. - * They won't start at the cursor interaction position. - */ - centerRipple: _propTypes2.default.bool, - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - * The default value is a `button`. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the base button will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: _propTypes2.default.bool, - /** - * If `true`, the base button will have a keyboard focus ripple. - * `disableRipple` must also be `false`. - */ - focusRipple: _propTypes2.default.bool, - /** - * The CSS class applied while the component is keyboard focused. - */ - keyboardFocusedClassName: _propTypes2.default.string, - /** - * @ignore - */ - onBlur: _propTypes2.default.func, - /** - * @ignore - */ - onClick: _propTypes2.default.func, - /** - * @ignore - */ - onFocus: _propTypes2.default.func, - /** - * Callback fired when the component is focused with a keyboard. - * We trigger a `onFocus` callback too. - */ - onKeyboardFocus: _propTypes2.default.func, - /** - * @ignore - */ - onKeyDown: _propTypes2.default.func, - /** - * @ignore - */ - onKeyUp: _propTypes2.default.func, - /** - * @ignore - */ - onMouseDown: _propTypes2.default.func, - /** - * @ignore - */ - onMouseLeave: _propTypes2.default.func, - /** - * @ignore - */ - onMouseUp: _propTypes2.default.func, - /** - * @ignore - */ - onTouchEnd: _propTypes2.default.func, - /** - * @ignore - */ - onTouchMove: _propTypes2.default.func, - /** - * @ignore - */ - onTouchStart: _propTypes2.default.func, - /** - * @ignore - */ - role: _propTypes2.default.string, - /** - * @ignore - */ - tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), - /** - * @ignore - */ - type: _propTypes2.default.string -} : {}; - -ButtonBase.defaultProps = { - centerRipple: false, - disableRipple: false, - focusRipple: false, - tabIndex: 0, - type: 'button' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiButtonBase' })(ButtonBase); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/ButtonBase/Ripple.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); - -var _Transition2 = _interopRequireDefault(_Transition); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var Ripple = function (_React$Component) { - (0, _inherits3.default)(Ripple, _React$Component); - - function Ripple() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Ripple); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Ripple.__proto__ || (0, _getPrototypeOf2.default)(Ripple)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - rippleVisible: false, - rippleLeaving: false - }, _this.handleEnter = function () { - _this.setState({ - rippleVisible: true - }); - }, _this.handleExit = function () { - _this.setState({ - rippleLeaving: true - }); - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Ripple, [{ - key: 'render', - value: function render() { - var _classNames, _classNames2; - - var _props = this.props, - classes = _props.classes, - classNameProp = _props.className, - pulsate = _props.pulsate, - rippleX = _props.rippleX, - rippleY = _props.rippleY, - rippleSize = _props.rippleSize, - other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'pulsate', 'rippleX', 'rippleY', 'rippleSize']); - var _state = this.state, - rippleVisible = _state.rippleVisible, - rippleLeaving = _state.rippleLeaving; - - - var className = (0, _classnames2.default)(classes.wrapper, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.wrapperLeaving, rippleLeaving), (0, _defineProperty3.default)(_classNames, classes.wrapperPulsating, pulsate), _classNames), classNameProp); - - var rippleClassName = (0, _classnames2.default)(classes.ripple, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.rippleVisible, rippleVisible), (0, _defineProperty3.default)(_classNames2, classes.rippleFast, pulsate), _classNames2)); - - var rippleStyles = { - width: rippleSize, - height: rippleSize, - top: -(rippleSize / 2) + rippleY, - left: -(rippleSize / 2) + rippleX - }; - - return _react2.default.createElement( - _Transition2.default, - (0, _extends3.default)({ onEnter: this.handleEnter, onExit: this.handleExit }, other), - _react2.default.createElement( - 'span', - { className: className }, - _react2.default.createElement('span', { className: rippleClassName, style: rippleStyles }) - ) - ); - } - }]); - return Ripple; -}(_react2.default.Component); - -Ripple.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element. - */ - pulsate: _propTypes2.default.bool, - /** - * Diameter of the ripple. - */ - rippleSize: _propTypes2.default.number, - /** - * Horizontal position of the ripple center. - */ - rippleX: _propTypes2.default.number, - /** - * Vertical position of the ripple center. - */ - rippleY: _propTypes2.default.number -} : {}; - -Ripple.defaultProps = { - pulsate: false -}; - -exports.default = Ripple; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/ButtonBase/TouchRipple.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = exports.DELAY_RIPPLE = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _TransitionGroup = __webpack_require__("./node_modules/react-transition-group/TransitionGroup.js"); - -var _TransitionGroup2 = _interopRequireDefault(_TransitionGroup); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Ripple = __webpack_require__("./node_modules/material-ui/ButtonBase/Ripple.js"); - -var _Ripple2 = _interopRequireDefault(_Ripple); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var DURATION = 550; -var DELAY_RIPPLE = exports.DELAY_RIPPLE = 80; - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'block', - position: 'absolute', - overflow: 'hidden', - borderRadius: 'inherit', - width: '100%', - height: '100%', - left: 0, - top: 0, - pointerEvents: 'none', - zIndex: 0 - }, - wrapper: { - opacity: 1 - }, - wrapperLeaving: { - opacity: 0, - animation: 'mui-ripple-exit ' + DURATION + 'ms ' + theme.transitions.easing.easeInOut - }, - wrapperPulsating: { - position: 'absolute', - left: 0, - top: 0, - display: 'block', - width: '100%', - height: '100%', - animation: 'mui-ripple-pulsate 2500ms ' + theme.transitions.easing.easeInOut + ' 200ms infinite' - }, - '@keyframes mui-ripple-enter': { - '0%': { - transform: 'scale(0)' - }, - '100%': { - transform: 'scale(1)' - } - }, - '@keyframes mui-ripple-exit': { - '0%': { - opacity: 1 - }, - '100%': { - opacity: 0 - } - }, - '@keyframes mui-ripple-pulsate': { - '0%': { - transform: 'scale(1)' - }, - '50%': { - transform: 'scale(0.92)' - }, - '100%': { - transform: 'scale(1)' - } - }, - ripple: { - width: 50, - height: 50, - left: 0, - top: 0, - opacity: 0, - position: 'absolute', - borderRadius: '50%', - background: 'currentColor' - }, - rippleVisible: { - opacity: 0.3, - transform: 'scale(1)', - animation: 'mui-ripple-enter ' + DURATION + 'ms ' + theme.transitions.easing.easeInOut - }, - rippleFast: { - animationDuration: '200ms' - } - }; -}; - -/** - * @ignore - internal component. - */ - -var TouchRipple = function (_React$Component) { - (0, _inherits3.default)(TouchRipple, _React$Component); - - function TouchRipple() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, TouchRipple); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TouchRipple.__proto__ || (0, _getPrototypeOf2.default)(TouchRipple)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - nextKey: 0, - ripples: [] - }, _this.ignoringMouseDown = false, _this.startTimer = null, _this.startTimerCommit = null, _this.pulsate = function () { - _this.start({}, { pulsate: true }); - }, _this.start = function () { - var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var cb = arguments[2]; - var _options$pulsate = options.pulsate, - pulsate = _options$pulsate === undefined ? false : _options$pulsate, - _options$center = options.center, - center = _options$center === undefined ? _this.props.center || options.pulsate : _options$center, - _options$fakeElement = options.fakeElement, - fakeElement = _options$fakeElement === undefined ? false : _options$fakeElement; - - - if (event.type === 'mousedown' && _this.ignoringMouseDown) { - _this.ignoringMouseDown = false; - return; - } - - if (event.type === 'touchstart') { - _this.ignoringMouseDown = true; - } - - var element = fakeElement ? null : _reactDom2.default.findDOMNode(_this); - var rect = element ? element.getBoundingClientRect() : { - width: 0, - height: 0, - left: 0, - top: 0 - }; - - // Get the size of the ripple - var rippleX = void 0; - var rippleY = void 0; - var rippleSize = void 0; - - if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) { - rippleX = Math.round(rect.width / 2); - rippleY = Math.round(rect.height / 2); - } else { - var clientX = event.clientX ? event.clientX : event.touches[0].clientX; - var clientY = event.clientY ? event.clientY : event.touches[0].clientY; - rippleX = Math.round(clientX - rect.left); - rippleY = Math.round(clientY - rect.top); - } - - if (center) { - rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); - - // For some reason the animation is broken on Mobile Chrome if the size if even. - if (rippleSize % 2 === 0) { - rippleSize += 1; - } - } else { - var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2; - var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2; - rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2)); - } - - // Touche devices - if (event.touches) { - // Prepare the ripple effect. - _this.startTimerCommit = function () { - _this.startCommit({ pulsate: pulsate, rippleX: rippleX, rippleY: rippleY, rippleSize: rippleSize, cb: cb }); - }; - // Deplay the execution of the ripple effect. - _this.startTimer = setTimeout(function () { - _this.startTimerCommit(); - _this.startTimerCommit = null; - }, DELAY_RIPPLE); // We have to make a tradeoff with this value. - } else { - _this.startCommit({ pulsate: pulsate, rippleX: rippleX, rippleY: rippleY, rippleSize: rippleSize, cb: cb }); - } - }, _this.startCommit = function (params) { - var pulsate = params.pulsate, - rippleX = params.rippleX, - rippleY = params.rippleY, - rippleSize = params.rippleSize, - cb = params.cb; - - var ripples = _this.state.ripples; - - // Add a ripple to the ripples array. - ripples = [].concat((0, _toConsumableArray3.default)(ripples), [_react2.default.createElement(_Ripple2.default, { - key: _this.state.nextKey, - classes: _this.props.classes, - timeout: { - exit: DURATION, - enter: DURATION - }, - pulsate: pulsate, - rippleX: rippleX, - rippleY: rippleY, - rippleSize: rippleSize - })]); - - _this.setState({ - nextKey: _this.state.nextKey + 1, - ripples: ripples - }, cb); - }, _this.stop = function (event, cb) { - clearTimeout(_this.startTimer); - var ripples = _this.state.ripples; - - // The touch interaction occures to quickly. - // We still want to show ripple effect. - - if (event.type === 'touchend' && _this.startTimerCommit) { - event.persist(); - _this.startTimerCommit(); - _this.startTimerCommit = null; - _this.startTimer = setTimeout(function () { - _this.stop(event, cb); - }, 0); - return; - } - - _this.startTimerCommit = null; - - if (ripples && ripples.length) { - _this.setState({ - ripples: ripples.slice(1) - }, cb); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(TouchRipple, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearTimeout(this.startTimer); - } - - // Used to filter out mouse emulated events on mobile. - - // We use a timer in order to only show the ripples for touch "click" like events. - // We don't want to display the ripple for touch scroll events. - - // This is the hook called once the previous timeout is ready. - - }, { - key: 'render', - value: function render() { - var _props = this.props, - center = _props.center, - classes = _props.classes, - className = _props.className, - other = (0, _objectWithoutProperties3.default)(_props, ['center', 'classes', 'className']); - - - return _react2.default.createElement( - _TransitionGroup2.default, - (0, _extends3.default)({ - component: 'span', - enter: true, - exit: true, - className: (0, _classnames2.default)(classes.root, className) - }, other), - this.state.ripples - ); - } - }]); - return TouchRipple; -}(_react2.default.Component); - -TouchRipple.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the ripple starts at the center of the component - * rather than at the point of interaction. - */ - center: _propTypes2.default.bool, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -TouchRipple.defaultProps = { - center: false -}; - -exports.default = (0, _withStyles2.default)(styles, { flip: false, name: 'MuiTouchRipple' })(TouchRipple); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/ButtonBase/createRippleHandler.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -function createRippleHandler(instance, eventName, action, cb) { - return function handleEvent(event) { - if (cb) { - cb.call(instance, event); - } - - if (event.defaultPrevented) { - return false; - } - - if (instance.ripple) { - instance.ripple[action](event); - } - - if (instance.props && typeof instance.props['on' + eventName] === 'function') { - instance.props['on' + eventName](event); - } - - return true; - }; -} - -exports.default = createRippleHandler; - -/***/ }), - -/***/ "./node_modules/material-ui/ButtonBase/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/ButtonBase.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ButtonBase).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Card/Card.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function Card(props) { - var raised = props.raised, - other = (0, _objectWithoutProperties3.default)(props, ['raised']); - - - return _react2.default.createElement(_Paper2.default, (0, _extends3.default)({ elevation: raised ? 8 : 2 }, other)); -} // @inheritedComponent Paper - -Card.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the card will use raised styling. - */ - raised: _propTypes2.default.bool -} : {}; - -Card.defaultProps = { - raised: false -}; - -exports.default = Card; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Card/CardActions.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - height: 52, - display: 'flex', - alignItems: 'center', - padding: '2px 4px', - boxSizing: 'border-box' - }, - action: { - margin: '0 4px' - } -}; - -function CardActions(props) { - var disableActionSpacing = props.disableActionSpacing, - children = props.children, - classes = props.classes, - className = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['disableActionSpacing', 'children', 'classes', 'className']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - disableActionSpacing ? children : (0, _reactHelpers.cloneChildrenWithClassName)(children, classes.action) - ); -} - -CardActions.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the card actions do not have additional margin. - */ - disableActionSpacing: _propTypes2.default.bool -} : {}; - -CardActions.defaultProps = { - disableActionSpacing: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardActions' })(CardActions); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Card/CardContent.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - padding: theme.spacing.unit * 2, - '&:last-child': { - paddingBottom: theme.spacing.unit * 3 - } - } - }; -}; - -function CardContent(props) { - var classes = props.classes, - className = props.className, - Component = props.component, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component']); - - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other)); -} - -CardContent.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) -} : {}; - -CardContent.defaultProps = { - component: 'div' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardContent' })(CardContent); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Card/CardHeader.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - alignItems: 'center', - padding: theme.spacing.unit * 2 - }, - avatar: { - flex: '0 0 auto', - marginRight: theme.spacing.unit * 2 - }, - action: { - flex: '0 0 auto', - alignSelf: 'flex-start', - marginTop: theme.spacing.unit * -1, - marginRight: theme.spacing.unit * -2 - }, - content: { - flex: '1 1 auto' - }, - title: {}, - subheader: {} - }; -}; - -function CardHeader(props) { - var action = props.action, - avatar = props.avatar, - classes = props.classes, - classNameProp = props.className, - Component = props.component, - subheader = props.subheader, - title = props.title, - other = (0, _objectWithoutProperties3.default)(props, ['action', 'avatar', 'classes', 'className', 'component', 'subheader', 'title']); - - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, classNameProp) }, other), - avatar && _react2.default.createElement( - 'div', - { className: classes.avatar }, - avatar - ), - _react2.default.createElement( - 'div', - { className: classes.content }, - _react2.default.createElement( - _Typography2.default, - { - variant: avatar ? 'body2' : 'headline', - component: 'span', - className: classes.title - }, - title - ), - subheader && _react2.default.createElement( - _Typography2.default, - { - variant: avatar ? 'body2' : 'body1', - component: 'span', - color: 'textSecondary', - className: classes.subheader - }, - subheader - ) - ), - action && _react2.default.createElement( - 'div', - { className: classes.action }, - action - ) - ); -} - -CardHeader.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The action to display in the card header. - */ - action: _propTypes2.default.node, - /** - * The Avatar for the Card Header. - */ - avatar: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * The content of the component. - */ - subheader: _propTypes2.default.node, - /** - * The content of the Card Title. - */ - title: _propTypes2.default.node -} : {}; - -CardHeader.defaultProps = { - component: 'div' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardHeader' })(CardHeader); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Card/CardMedia.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - backgroundSize: 'cover', - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center' - }, - rootMedia: { - width: '100%' - } -}; - -var MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img']; - -function CardMedia(props) { - var _classNames; - - var classes = props.classes, - className = props.className, - Component = props.component, - image = props.image, - src = props.src, - style = props.style, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'image', 'src', 'style']); - - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(Boolean(image || src), 'Material-UI: either `image` or `src` property must be specified.') : void 0; - - var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1; - var composedStyle = !isMediaComponent && image ? (0, _extends3.default)({ backgroundImage: 'url(' + image + ')' }, style) : style; - var composedClassName = (0, _classnames2.default)((_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.root, !isMediaComponent), (0, _defineProperty3.default)(_classNames, classes.rootMedia, isMediaComponent), _classNames), className); - - return _react2.default.createElement(Component, (0, _extends3.default)({ - className: composedClassName, - style: composedStyle, - src: isMediaComponent ? image || src : undefined - }, other)); -} - -CardMedia.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Component for rendering image. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Image to be displayed as a background image. - * Either `image` or `src` prop must be specified. - * Note that caller must specify height otherwise the image will not be visible. - */ - image: _propTypes2.default.string, - /** - * An alias for `image` property. - * Available only with media components. - * Media components: `video`, `audio`, `picture`, `iframe`, `img`. - */ - src: _propTypes2.default.string, - /** - * @ignore - */ - style: _propTypes2.default.object -} : {}; - -CardMedia.defaultProps = { - component: 'div' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCardMedia' })(CardMedia); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Card/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Card = __webpack_require__("./node_modules/material-ui/Card/Card.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Card).default; - } -}); - -var _CardContent = __webpack_require__("./node_modules/material-ui/Card/CardContent.js"); - -Object.defineProperty(exports, 'CardContent', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_CardContent).default; - } -}); - -var _CardActions = __webpack_require__("./node_modules/material-ui/Card/CardActions.js"); - -Object.defineProperty(exports, 'CardActions', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_CardActions).default; - } -}); - -var _CardMedia = __webpack_require__("./node_modules/material-ui/Card/CardMedia.js"); - -Object.defineProperty(exports, 'CardMedia', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_CardMedia).default; - } -}); - -var _CardHeader = __webpack_require__("./node_modules/material-ui/Card/CardHeader.js"); - -Object.defineProperty(exports, 'CardHeader', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_CardHeader).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Checkbox/Checkbox.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _SwitchBase = __webpack_require__("./node_modules/material-ui/internal/SwitchBase.js"); - -var _SwitchBase2 = _interopRequireDefault(_SwitchBase); - -var _IndeterminateCheckBox = __webpack_require__("./node_modules/material-ui/internal/svg-icons/IndeterminateCheckBox.js"); - -var _IndeterminateCheckBox2 = _interopRequireDefault(_IndeterminateCheckBox); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - default: { - color: theme.palette.text.secondary - }, - checked: {}, - checkedPrimary: { - color: theme.palette.primary.main - }, - checkedSecondary: { - color: theme.palette.secondary.main - }, - disabled: { - color: theme.palette.action.disabled - } - }; -}; - -function Checkbox(props) { - var _classNames; - - var checkedIcon = props.checkedIcon, - classes = props.classes, - color = props.color, - icon = props.icon, - indeterminate = props.indeterminate, - indeterminateIcon = props.indeterminateIcon, - other = (0, _objectWithoutProperties3.default)(props, ['checkedIcon', 'classes', 'color', 'icon', 'indeterminate', 'indeterminateIcon']); - - var checkedClass = (0, _classnames2.default)(classes.checked, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checkedPrimary, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.checkedSecondary, color === 'secondary'), _classNames)); - - return _react2.default.createElement(_SwitchBase2.default, (0, _extends3.default)({ - checkedIcon: indeterminate ? indeterminateIcon : checkedIcon, - classes: { - default: classes.default, - checked: checkedClass, - disabled: classes.disabled - }, - icon: indeterminate ? indeterminateIcon : icon - }, other)); -} - -Checkbox.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the component is checked. - */ - checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), - /** - * The icon to display when the component is checked. - */ - checkedIcon: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['primary', 'secondary']), - /** - * @ignore - */ - defaultChecked: _propTypes2.default.bool, - /** - * If `true`, the switch will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: _propTypes2.default.bool, - /** - * The icon to display when the component is unchecked. - */ - icon: _propTypes2.default.node, - /** - * The id of the `input` element. - */ - id: _propTypes2.default.string, - /** - * If `true`, the component appears indeterminate. - */ - indeterminate: _propTypes2.default.bool, - /** - * The icon to display when the component is indeterminate. - */ - indeterminateIcon: _propTypes2.default.node, - /** - * Properties applied to the `input` element. - */ - inputProps: _propTypes2.default.object, - /** - * Use that property to pass a ref callback to the native input component. - */ - inputRef: _propTypes2.default.func, - /* - * @ignore - */ - name: _propTypes2.default.string, - /** - * Callback fired when the state is changed. - * - * @param {object} event The event source of the callback - * @param {boolean} checked The `checked` value of the switch - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), - /** - * The input component property `type`. - */ - type: _propTypes2.default.string, - /** - * The value of the component. - */ - value: _propTypes2.default.string -} : {}; - -Checkbox.defaultProps = { - color: 'secondary', - indeterminate: false, - indeterminateIcon: _react2.default.createElement(_IndeterminateCheckBox2.default, null) -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCheckbox' })(Checkbox); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Checkbox/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Checkbox = __webpack_require__("./node_modules/material-ui/Checkbox/Checkbox.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Checkbox).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Chip/Chip.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _keycode = __webpack_require__("./node_modules/keycode/index.js"); - -var _keycode2 = _interopRequireDefault(_keycode); - -var _Cancel = __webpack_require__("./node_modules/material-ui/internal/svg-icons/Cancel.js"); - -var _Cancel2 = _interopRequireDefault(_Cancel); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); - -__webpack_require__("./node_modules/material-ui/Avatar/Avatar.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// So we don't have any override priority issue. - -var styles = exports.styles = function styles(theme) { - var height = 32; - var backgroundColor = theme.palette.type === 'light' ? theme.palette.grey[300] : theme.palette.grey[700]; - var deleteIconColor = (0, _colorManipulator.fade)(theme.palette.text.primary, 0.26); - - return { - root: { - fontFamily: theme.typography.fontFamily, - fontSize: theme.typography.pxToRem(13), - display: 'inline-flex', - alignItems: 'center', - justifyContent: 'center', - height: height, - color: theme.palette.getContrastText(backgroundColor), - backgroundColor: backgroundColor, - borderRadius: height / 2, - whiteSpace: 'nowrap', - transition: theme.transitions.create(), - // label will inherit this from root, then `clickable` class overrides this for both - cursor: 'default', - outline: 'none', // No outline on focused element in Chrome (as triggered by tabIndex prop) - border: 'none', // Remove `button` border - padding: 0 // Remove `button` padding - }, - clickable: { - // Remove grey highlight - WebkitTapHighlightColor: 'transparent', - cursor: 'pointer', - '&:hover, &:focus': { - backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.08) - }, - '&:active': { - boxShadow: theme.shadows[1], - backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.12) - } - }, - deletable: { - '&:focus': { - backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.08) - } - }, - avatar: { - marginRight: -4, - width: height, - height: height, - color: theme.palette.type === 'light' ? theme.palette.grey[700] : theme.palette.grey[300], - fontSize: theme.typography.pxToRem(16) - }, - avatarChildren: { - width: 19, - height: 19 - }, - label: { - display: 'flex', - alignItems: 'center', - paddingLeft: 12, - paddingRight: 12, - userSelect: 'none', - whiteSpace: 'nowrap', - cursor: 'inherit' - }, - deleteIcon: { - // Remove grey highlight - WebkitTapHighlightColor: 'transparent', - color: deleteIconColor, - cursor: 'pointer', - height: 'auto', - margin: '0 4px 0 -8px', - '&:hover': { - color: (0, _colorManipulator.fade)(deleteIconColor, 0.4) - } - } - }; -}; - -/** - * Chips represent complex entities in small blocks, such as a contact. - */ - -var Chip = function (_React$Component) { - (0, _inherits3.default)(Chip, _React$Component); - - function Chip() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Chip); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Chip.__proto__ || (0, _getPrototypeOf2.default)(Chip)).call.apply(_ref, [this].concat(args))), _this), _this.chipRef = null, _this.handleDeleteIconClick = function (event) { - // Stop the event from bubbling up to the `Chip` - event.stopPropagation(); - var onDelete = _this.props.onDelete; - - if (onDelete) { - onDelete(event); - } - }, _this.handleKeyDown = function (event) { - var _this$props = _this.props, - onClick = _this$props.onClick, - onDelete = _this$props.onDelete, - onKeyDown = _this$props.onKeyDown; - - var key = (0, _keycode2.default)(event); - - if (onClick && (key === 'space' || key === 'enter')) { - event.preventDefault(); - onClick(event); - } else if (onDelete && key === 'backspace') { - event.preventDefault(); - onDelete(event); - } else if (key === 'esc') { - event.preventDefault(); - if (_this.chipRef) { - _this.chipRef.blur(); - } - } - - if (onKeyDown) { - onKeyDown(event); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Chip, [{ - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - avatarProp = _props.avatar, - classes = _props.classes, - classNameProp = _props.className, - Component = _props.component, - deleteIconProp = _props.deleteIcon, - label = _props.label, - onClick = _props.onClick, - onDelete = _props.onDelete, - onKeyDown = _props.onKeyDown, - tabIndexProp = _props.tabIndex, - other = (0, _objectWithoutProperties3.default)(_props, ['avatar', 'classes', 'className', 'component', 'deleteIcon', 'label', 'onClick', 'onDelete', 'onKeyDown', 'tabIndex']); - - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.clickable, onClick), (0, _defineProperty3.default)({}, classes.deletable, onDelete), classNameProp); - - var deleteIcon = null; - if (onDelete) { - deleteIcon = deleteIconProp && _react2.default.isValidElement(deleteIconProp) ? _react2.default.cloneElement(deleteIconProp, { - className: (0, _classnames2.default)(deleteIconProp.props.className, classes.deleteIcon), - onClick: this.handleDeleteIconClick - }) : _react2.default.createElement(_Cancel2.default, { className: classes.deleteIcon, onClick: this.handleDeleteIconClick }); - } - - var avatar = null; - if (avatarProp && _react2.default.isValidElement(avatarProp)) { - avatar = _react2.default.cloneElement(avatarProp, { - className: (0, _classnames2.default)(classes.avatar, avatarProp.props.className), - childrenClassName: (0, _classnames2.default)(classes.avatarChildren, avatarProp.props.childrenClassName) - }); - } - - var tabIndex = tabIndexProp; - - if (!tabIndex) { - tabIndex = onClick || onDelete ? 0 : -1; - } - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ - role: 'button', - className: className, - tabIndex: tabIndex, - onClick: onClick, - onKeyDown: this.handleKeyDown, - ref: function ref(node) { - _this2.chipRef = node; - } - }, other), - avatar, - _react2.default.createElement( - 'span', - { className: classes.label }, - label - ), - deleteIcon - ); - } - }]); - return Chip; -}(_react2.default.Component); - -Chip.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Avatar element. - */ - avatar: _propTypes2.default.element, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Override the default delete icon element. Shown only if `onDelete` is set. - */ - deleteIcon: _propTypes2.default.element, - /** - * The content of the label. - */ - label: _propTypes2.default.node, - /** - * @ignore - */ - onClick: _propTypes2.default.func, - /** - * Callback function fired when the delete icon is clicked. - * If set, the delete icon will be shown. - */ - onDelete: _propTypes2.default.func, - /** - * @ignore - */ - onKeyDown: _propTypes2.default.func, - /** - * @ignore - */ - tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]) -} : {}; - -Chip.defaultProps = { - component: 'div' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiChip' })(Chip); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Chip/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Chip = __webpack_require__("./node_modules/material-ui/Chip/Chip.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Chip).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Dialog/Dialog.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _Modal = __webpack_require__("./node_modules/material-ui/Modal/index.js"); - -var _Modal2 = _interopRequireDefault(_Modal); - -var _Fade = __webpack_require__("./node_modules/material-ui/transitions/Fade.js"); - -var _Fade2 = _interopRequireDefault(_Fade); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - justifyContent: 'center', - alignItems: 'center' - }, - paper: { - display: 'flex', - margin: theme.spacing.unit * 4, - flexDirection: 'column', - flex: '0 1 auto', - position: 'relative', - maxHeight: '90vh', - overflowY: 'auto', // Fix IE11 issue, to remove at some point. - '&:focus': { - outline: 'none' - } - }, - paperWidthXs: { - maxWidth: Math.max(theme.breakpoints.values.xs, 360) - }, - paperWidthSm: { - maxWidth: theme.breakpoints.values.sm - }, - paperWidthMd: { - maxWidth: theme.breakpoints.values.md - }, - fullWidth: { - width: '100%' - }, - fullScreen: { - margin: 0, - width: '100%', - maxWidth: '100%', - height: '100%', - maxHeight: '100%', - borderRadius: 0 - } - }; -}; - -/** - * Dialogs are overlaid modal paper based components with a backdrop. - */ -// @inheritedComponent Modal - -function Dialog(props) { - var _classNames; - - var children = props.children, - classes = props.classes, - className = props.className, - fullScreen = props.fullScreen, - fullWidth = props.fullWidth, - disableBackdropClick = props.disableBackdropClick, - disableEscapeKeyDown = props.disableEscapeKeyDown, - maxWidth = props.maxWidth, - onBackdropClick = props.onBackdropClick, - onClose = props.onClose, - onEnter = props.onEnter, - onEntered = props.onEntered, - onEntering = props.onEntering, - onEscapeKeyDown = props.onEscapeKeyDown, - onExit = props.onExit, - onExited = props.onExited, - onExiting = props.onExiting, - open = props.open, - PaperProps = props.PaperProps, - TransitionProp = props.transition, - transitionDuration = props.transitionDuration, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'fullScreen', 'fullWidth', 'disableBackdropClick', 'disableEscapeKeyDown', 'maxWidth', 'onBackdropClick', 'onClose', 'onEnter', 'onEntered', 'onEntering', 'onEscapeKeyDown', 'onExit', 'onExited', 'onExiting', 'open', 'PaperProps', 'transition', 'transitionDuration']); - - - return _react2.default.createElement( - _Modal2.default, - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, className), - BackdropProps: { - transitionDuration: transitionDuration - }, - disableBackdropClick: disableBackdropClick, - disableEscapeKeyDown: disableEscapeKeyDown, - onBackdropClick: onBackdropClick, - onEscapeKeyDown: onEscapeKeyDown, - onClose: onClose, - open: open, - role: 'dialog' - }, other), - _react2.default.createElement( - TransitionProp, - { - appear: true, - 'in': open, - timeout: transitionDuration, - onEnter: onEnter, - onEntering: onEntering, - onEntered: onEntered, - onExit: onExit, - onExiting: onExiting, - onExited: onExited - }, - _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ - elevation: 24, - className: (0, _classnames2.default)(classes.paper, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['paperWidth' + (maxWidth ? (0, _helpers.capitalize)(maxWidth) : '')], maxWidth), (0, _defineProperty3.default)(_classNames, classes.fullScreen, fullScreen), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), _classNames)) - }, PaperProps), - children - ) - ) - ); -} - -Dialog.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Dialog children, usually the included sub-components. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, clicking the backdrop will not fire the `onClose` callback. - */ - disableBackdropClick: _propTypes2.default.bool, - /** - * If `true`, hitting escape will not fire the `onClose` callback. - */ - disableEscapeKeyDown: _propTypes2.default.bool, - /** - * If `true`, it will be full-screen - */ - fullScreen: _propTypes2.default.bool, - /** - * If specified, stretches dialog to max width. - */ - fullWidth: _propTypes2.default.bool, - /** - * Determine the max width of the dialog. - * The dialog width grows with the size of the screen, this property is useful - * on the desktop where you might need some coherent different width size across your - * application. Set to `false` to disable `maxWidth`. - */ - maxWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', false]), - /** - * Callback fired when the backdrop is clicked. - */ - onBackdropClick: _propTypes2.default.func, - /** - * Callback fired when the component requests to be closed. - * - * @param {object} event The event source of the callback - */ - onClose: _propTypes2.default.func, - /** - * Callback fired before the dialog enters. - */ - onEnter: _propTypes2.default.func, - /** - * Callback fired when the dialog has entered. - */ - onEntered: _propTypes2.default.func, - /** - * Callback fired when the dialog is entering. - */ - onEntering: _propTypes2.default.func, - /** - * Callback fired when the escape key is pressed, - * `disableKeyboard` is false and the modal is in focus. - */ - onEscapeKeyDown: _propTypes2.default.func, - /** - * Callback fired before the dialog exits. - */ - onExit: _propTypes2.default.func, - /** - * Callback fired when the dialog has exited. - */ - onExited: _propTypes2.default.func, - /** - * Callback fired when the dialog is exiting. - */ - onExiting: _propTypes2.default.func, - /** - * If `true`, the Dialog is open. - */ - open: _propTypes2.default.bool.isRequired, - /** - * Properties applied to the `Paper` element. - */ - PaperProps: _propTypes2.default.object, - /** - * Transition component. - */ - transition: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - */ - transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) -} : {}; - -Dialog.defaultProps = { - fullScreen: false, - fullWidth: false, - disableBackdropClick: false, - disableEscapeKeyDown: false, - maxWidth: 'sm', - transition: _Fade2.default, - transitionDuration: { enter: _transitions.duration.enteringScreen, exit: _transitions.duration.leavingScreen } -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialog' })(Dialog); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Dialog/DialogActions.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -__webpack_require__("./node_modules/material-ui/Button/index.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// So we don't have any override priority issue. - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - justifyContent: 'flex-end', - alignItems: 'center', - margin: theme.spacing.unit + 'px ' + theme.spacing.unit / 2 + 'px', - flex: '0 0 auto' - }, - action: { - margin: '0 ' + theme.spacing.unit / 2 + 'px' - }, - button: { - minWidth: 64 - } - }; -}; - -function DialogActions(props) { - var children = props.children, - classes = props.classes, - className = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - _react2.default.Children.map(children, function (child) { - if (!_react2.default.isValidElement(child)) { - return null; - } - - return _react2.default.createElement( - 'div', - { className: classes.action }, - _react2.default.cloneElement(child, { - className: (0, _classnames2.default)(classes.button, child.props.className) - }) - ); - }) - ); -} - -DialogActions.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogActions' })(DialogActions); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Dialog/DialogContent.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - var spacing = theme.spacing.unit * 3; - return { - root: { - flex: '1 1 auto', - overflowY: 'auto', - padding: '0 ' + spacing + 'px ' + spacing + 'px ' + spacing + 'px', - '&:first-child': { - paddingTop: spacing - } - } - }; -}; - -function DialogContent(props) { - var classes = props.classes, - children = props.children, - className = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'children', 'className']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - children - ); -} - -DialogContent.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogContent' })(DialogContent); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Dialog/DialogContentText.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: (0, _extends3.default)({}, theme.typography.subheading, { - color: theme.palette.text.secondary, - margin: 0 - }) - }; -}; - -function DialogContentText(props) { - var children = props.children, - classes = props.classes, - className = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); - - - return _react2.default.createElement( - 'p', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - children - ); -} - -DialogContentText.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogContentText' })(DialogContentText); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Dialog/DialogTitle.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - margin: 0, - padding: theme.spacing.unit * 3 + 'px ' + theme.spacing.unit * 3 + 'px 20px ' + theme.spacing.unit * 3 + 'px', - flex: '0 0 auto' - } - }; -}; - -function DialogTitle(props) { - var children = props.children, - classes = props.classes, - className = props.className, - disableTypography = props.disableTypography, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'disableTypography']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - disableTypography ? children : _react2.default.createElement( - _Typography2.default, - { variant: 'title' }, - children - ) - ); -} - -DialogTitle.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the children won't be wrapped by a typography component. - * For instance, this can be useful to render an h4 instead of the default h2. - */ - disableTypography: _propTypes2.default.bool -} : {}; - -DialogTitle.defaultProps = { - disableTypography: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDialogTitle' })(DialogTitle); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Dialog/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Dialog = __webpack_require__("./node_modules/material-ui/Dialog/Dialog.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Dialog).default; - } -}); - -var _DialogActions = __webpack_require__("./node_modules/material-ui/Dialog/DialogActions.js"); - -Object.defineProperty(exports, 'DialogActions', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_DialogActions).default; - } -}); - -var _DialogTitle = __webpack_require__("./node_modules/material-ui/Dialog/DialogTitle.js"); - -Object.defineProperty(exports, 'DialogTitle', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_DialogTitle).default; - } -}); - -var _DialogContent = __webpack_require__("./node_modules/material-ui/Dialog/DialogContent.js"); - -Object.defineProperty(exports, 'DialogContent', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_DialogContent).default; - } -}); - -var _DialogContentText = __webpack_require__("./node_modules/material-ui/Dialog/DialogContentText.js"); - -Object.defineProperty(exports, 'DialogContentText', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_DialogContentText).default; - } -}); - -var _withMobileDialog = __webpack_require__("./node_modules/material-ui/Dialog/withMobileDialog.js"); - -Object.defineProperty(exports, 'withMobileDialog', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_withMobileDialog).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Dialog/withMobileDialog.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _withWidth = __webpack_require__("./node_modules/material-ui/utils/withWidth.js"); - -var _withWidth2 = _interopRequireDefault(_withWidth); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Dialog will responsively be full screen *at or below* the given breakpoint - * (defaults to 'sm' for mobile devices). - * Notice that this Higher-order Component is incompatible with server side rendering. - */ -var withMobileDialog = function withMobileDialog() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return function (Component) { - var _options$breakpoint = options.breakpoint, - breakpoint = _options$breakpoint === undefined ? 'sm' : _options$breakpoint; - - - function WithMobileDialog(props) { - return _react2.default.createElement(Component, (0, _extends3.default)({ fullScreen: (0, _withWidth.isWidthDown)(breakpoint, props.width) }, props)); - } - - WithMobileDialog.propTypes = process.env.NODE_ENV !== "production" ? { - width: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']).isRequired - } : {}; - - return (0, _withWidth2.default)()(WithMobileDialog); - }; -}; - -exports.default = withMobileDialog; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Divider/Divider.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - height: 1, - margin: 0, // Reset browser default style. - border: 'none', - flexShrink: 0 - }, - inset: { - marginLeft: 72 - }, - default: { - backgroundColor: theme.palette.divider - }, - light: { - backgroundColor: (0, _colorManipulator.fade)(theme.palette.divider, 0.08) - }, - absolute: { - position: 'absolute', - bottom: 0, - left: 0, - width: '100%' - } - }; -}; - -function Divider(props) { - var _classNames; - - var absolute = props.absolute, - classes = props.classes, - classNameProp = props.className, - Component = props.component, - inset = props.inset, - light = props.light, - other = (0, _objectWithoutProperties3.default)(props, ['absolute', 'classes', 'className', 'component', 'inset', 'light']); - - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.absolute, absolute), (0, _defineProperty3.default)(_classNames, classes.inset, inset), _classNames), light ? classes.light : classes.default, classNameProp); - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); -} - -Divider.propTypes = process.env.NODE_ENV !== "production" ? { - absolute: _propTypes2.default.bool, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the divider will be indented. - */ - inset: _propTypes2.default.bool, - /** - * If `true`, the divider will have a lighter color. - */ - light: _propTypes2.default.bool -} : {}; - -Divider.defaultProps = { - absolute: false, - component: 'hr', - inset: false, - light: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDivider' })(Divider); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Divider/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Divider = __webpack_require__("./node_modules/material-ui/Divider/Divider.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Divider).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Drawer/Drawer.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _Modal = __webpack_require__("./node_modules/material-ui/Modal/index.js"); - -var _Modal2 = _interopRequireDefault(_Modal); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Slide = __webpack_require__("./node_modules/material-ui/transitions/Slide.js"); - -var _Slide2 = _interopRequireDefault(_Slide); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getSlideDirection(anchor) { - if (anchor === 'left') { - return 'right'; - } else if (anchor === 'right') { - return 'left'; - } else if (anchor === 'top') { - return 'down'; - } - - // (anchor === 'bottom') - return 'up'; -} // @inheritedComponent Modal - -var styles = exports.styles = function styles(theme) { - return { - docked: { - flex: '0 0 auto' - }, - paper: { - overflowY: 'auto', - display: 'flex', - flexDirection: 'column', - height: '100vh', - flex: '1 0 auto', - zIndex: theme.zIndex.drawer, - WebkitOverflowScrolling: 'touch', // Add iOS momentum scrolling. - // temporary style - position: 'fixed', - top: 0, - // We disable the focus ring for mouse, touch and keyboard users. - // At some point, it would be better to keep it for keyboard users. - // :focus-ring CSS pseudo-class will help. - '&:focus': { - outline: 'none' - } - }, - paperAnchorLeft: { - left: 0, - right: 'auto' - }, - paperAnchorRight: { - left: 'auto', - right: 0 - }, - paperAnchorTop: { - top: 0, - left: 0, - bottom: 'auto', - right: 0, - height: 'auto', - maxHeight: '100vh' - }, - paperAnchorBottom: { - top: 'auto', - left: 0, - bottom: 0, - right: 0, - height: 'auto', - maxHeight: '100vh' - }, - paperAnchorDockedLeft: { - borderRight: '1px solid ' + theme.palette.divider - }, - paperAnchorDockedTop: { - borderBottom: '1px solid ' + theme.palette.divider - }, - paperAnchorDockedRight: { - borderLeft: '1px solid ' + theme.palette.divider - }, - paperAnchorDockedBottom: { - borderTop: '1px solid ' + theme.palette.divider - }, - modal: {} // Just here so people can override the style. - }; -}; - -var Drawer = function (_React$Component) { - (0, _inherits3.default)(Drawer, _React$Component); - - function Drawer() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Drawer); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Drawer.__proto__ || (0, _getPrototypeOf2.default)(Drawer)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - // Let's assume that the Drawer will always be rendered on user space. - // We use that state is order to skip the appear transition during the - // initial mount of the component. - firstMount: true - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Drawer, [{ - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps() { - this.setState({ - firstMount: false - }); - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - anchorProp = _props.anchor, - children = _props.children, - classes = _props.classes, - className = _props.className, - elevation = _props.elevation, - ModalProps = _props.ModalProps, - onClose = _props.onClose, - open = _props.open, - PaperProps = _props.PaperProps, - SlideProps = _props.SlideProps, - theme = _props.theme, - transitionDuration = _props.transitionDuration, - variant = _props.variant, - other = (0, _objectWithoutProperties3.default)(_props, ['anchor', 'children', 'classes', 'className', 'elevation', 'ModalProps', 'onClose', 'open', 'PaperProps', 'SlideProps', 'theme', 'transitionDuration', 'variant']); - - - var anchor = anchorProp; - if (theme.direction === 'rtl' && ['left', 'right'].includes(anchor)) { - anchor = anchor === 'left' ? 'right' : 'left'; - } - - var drawer = _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ - elevation: variant === 'temporary' ? elevation : 0, - square: true, - className: (0, _classnames2.default)(classes.paper, classes['paperAnchor' + (0, _helpers.capitalize)(anchor)], (0, _defineProperty3.default)({}, classes['paperAnchorDocked' + (0, _helpers.capitalize)(anchor)], variant !== 'temporary')) - }, PaperProps), - children - ); - - if (variant === 'permanent') { - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.docked, className) }, other), - drawer - ); - } - - var slidingDrawer = _react2.default.createElement( - _Slide2.default, - (0, _extends3.default)({ - 'in': open, - direction: getSlideDirection(anchor), - timeout: transitionDuration, - appear: !this.state.firstMount - }, SlideProps), - drawer - ); - - if (variant === 'persistent') { - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.docked, className) }, other), - slidingDrawer - ); - } - - // variant === temporary - return _react2.default.createElement( - _Modal2.default, - (0, _extends3.default)({ - BackdropProps: { - transitionDuration: transitionDuration - }, - className: (0, _classnames2.default)(classes.modal, className), - open: open, - onClose: onClose - }, other, ModalProps), - slidingDrawer - ); - } - }]); - return Drawer; -}(_react2.default.Component); - -Drawer.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Side from which the drawer will appear. - */ - anchor: _propTypes2.default.oneOf(['left', 'top', 'right', 'bottom']), - /** - * The contents of the drawer. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The elevation of the drawer. - */ - elevation: _propTypes2.default.number, - /** - * Properties applied to the `Modal` element. - */ - ModalProps: _propTypes2.default.object, - /** - * Callback fired when the component requests to be closed. - * - * @param {object} event The event source of the callback - */ - onClose: _propTypes2.default.func, - /** - * If `true`, the drawer is open. - */ - open: _propTypes2.default.bool, - /** - * Properties applied to the `Paper` element. - */ - PaperProps: _propTypes2.default.object, - /** - * Properties applied to the `Slide` element. - */ - SlideProps: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - */ - transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]), - /** - * The type of drawer. - */ - variant: _propTypes2.default.oneOf(['permanent', 'persistent', 'temporary']) -} : {}; - -Drawer.defaultProps = { - anchor: 'left', - elevation: 16, - open: false, - transitionDuration: { enter: _transitions.duration.enteringScreen, exit: _transitions.duration.leavingScreen }, - variant: 'temporary' // Mobile first. -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiDrawer', flip: false, withTheme: true })(Drawer); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Drawer/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Drawer = __webpack_require__("./node_modules/material-ui/Drawer/Drawer.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Drawer).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanel.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _Collapse = __webpack_require__("./node_modules/material-ui/transitions/Collapse.js"); - -var _Collapse2 = _interopRequireDefault(_Collapse); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - var transition = { - duration: theme.transitions.duration.shortest - }; - - return { - root: { - position: 'relative', - transition: theme.transitions.create(['margin'], transition), - '&:before': { - position: 'absolute', - left: 0, - top: -1, - right: 0, - height: 1, - content: '""', - opacity: 1, - backgroundColor: theme.palette.divider, - transition: theme.transitions.create(['opacity', 'background-color'], transition) - }, - '&:first-child': { - borderTopLeftRadius: 2, - borderTopRightRadius: 2, - '&:before': { - display: 'none' - } - }, - '&:last-child': { - borderBottomLeftRadius: 2, - borderBottomRightRadius: 2 - }, - '&$expanded + &': { - '&:before': { - display: 'none' - } - } - }, - expanded: { - margin: theme.spacing.unit * 2 + 'px 0', - '&:first-child': { - marginTop: 0 - }, - '&:last-child': { - marginBottom: 0 - }, - '&:before': { - opacity: 0 - } - }, - disabled: { - backgroundColor: theme.palette.action.disabledBackground - } - }; -}; // @inheritedComponent Paper - -var ExpansionPanel = function (_React$Component) { - (0, _inherits3.default)(ExpansionPanel, _React$Component); - - function ExpansionPanel() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, ExpansionPanel); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ExpansionPanel.__proto__ || (0, _getPrototypeOf2.default)(ExpansionPanel)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - expanded: false - }, _this.isControlled = null, _this.handleChange = function (event) { - var onChange = _this.props.onChange; - - var expanded = !_this.state.expanded; - - if (onChange) { - onChange(event, expanded); - } - - if (!_this.isControlled) { - _this.setState({ expanded: expanded }); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(ExpansionPanel, [{ - key: 'componentWillMount', - value: function componentWillMount() { - var _props = this.props, - expanded = _props.expanded, - defaultExpanded = _props.defaultExpanded; - - this.isControlled = expanded != null; - this.setState({ - expanded: this.isControlled ? expanded : defaultExpanded - }); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - if (this.isControlled) { - this.setState({ - expanded: nextProps.expanded - }); - } - } - }, { - key: 'render', - value: function render() { - var _classNames, - _this2 = this; - - var _props2 = this.props, - childrenProp = _props2.children, - classes = _props2.classes, - classNameProp = _props2.className, - CollapsePropsProp = _props2.CollapseProps, - defaultExpanded = _props2.defaultExpanded, - disabled = _props2.disabled, - expandedProp = _props2.expanded, - onChange = _props2.onChange, - other = (0, _objectWithoutProperties3.default)(_props2, ['children', 'classes', 'className', 'CollapseProps', 'defaultExpanded', 'disabled', 'expanded', 'onChange']); - var expanded = this.state.expanded; - - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.expanded, expanded), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), _classNames), classNameProp); - - var summary = null; - - var children = _react2.default.Children.map(childrenProp, function (child) { - if (!_react2.default.isValidElement(child)) { - return null; - } - - if ((0, _reactHelpers.isMuiElement)(child, ['ExpansionPanelSummary'])) { - summary = _react2.default.cloneElement(child, { - disabled: disabled, - expanded: expanded, - onChange: _this2.handleChange - }); - return null; - } - - return child; - }); - - var CollapseProps = !expanded ? { - 'aria-hidden': 'true' - } : null; - - return _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ className: className, elevation: 1, square: true }, other), - summary, - _react2.default.createElement( - _Collapse2.default, - (0, _extends3.default)({ 'in': expanded, timeout: 'auto' }, CollapseProps, CollapsePropsProp), - children - ) - ); - } - }]); - return ExpansionPanel; -}(_react2.default.Component); - -ExpansionPanel.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the expansion panel. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Properties applied to the `Collapse` element. - */ - CollapseProps: _propTypes2.default.object, - /** - * If `true`, expands the panel by default. - */ - defaultExpanded: _propTypes2.default.bool, - /** - * If `true`, the panel will be displayed in a disabled state. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, expands the panel, otherwise collapse it. - * Setting this prop enables control over the panel. - */ - expanded: _propTypes2.default.bool, - /** - * Callback fired when the expand/collapse state is changed. - * - * @param {object} event The event source of the callback - * @param {boolean} expanded The `expanded` state of the panel - */ - onChange: _propTypes2.default.func -} : {}; - -ExpansionPanel.defaultProps = { - defaultExpanded: false, - disabled: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanel' })(ExpansionPanel); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanelActions.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - justifyContent: 'flex-end', - alignItems: 'center', - padding: theme.spacing.unit * 2 + 'px ' + theme.spacing.unit + 'px' - }, - action: { - marginLeft: theme.spacing.unit - } - }; -}; - -function ExpansionPanelActions(props) { - var children = props.children, - classes = props.classes, - className = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - (0, _reactHelpers.cloneChildrenWithClassName)(children, classes.action) - ); -} - -ExpansionPanelActions.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanelActions' })(ExpansionPanelActions); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanelDetails.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - flexGrow: 1, - padding: theme.spacing.unit + 'px ' + theme.spacing.unit * 3 + 'px ' + theme.spacing.unit * 3 + 'px' - } - }; -}; - -function ExpansionPanelDetails(props) { - var classes = props.classes, - children = props.children, - className = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'children', 'className']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - children - ); -} - -ExpansionPanelDetails.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the expansion panel details. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanelDetails' })(ExpansionPanelDetails); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/ExpansionPanel/ExpansionPanelSummary.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); - -var _IconButton2 = _interopRequireDefault(_IconButton); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent ButtonBase - -var styles = exports.styles = function styles(theme) { - var transition = { - duration: theme.transitions.duration.shortest - }; - return { - root: { - display: 'flex', - minHeight: theme.spacing.unit * 6, - transition: theme.transitions.create(['min-height', 'background-color'], transition), - padding: '0 ' + theme.spacing.unit * 3 + 'px 0 ' + theme.spacing.unit * 3 + 'px', - '&:hover:not($disabled)': { - cursor: 'pointer' - } - }, - expanded: { - minHeight: 64 - }, - focused: { - backgroundColor: theme.palette.grey[300] - }, - disabled: { - opacity: 0.38 - }, - content: { - display: 'flex', - flexGrow: 1, - transition: theme.transitions.create(['margin'], transition), - margin: '12px 0', - '& > :last-child': { - paddingRight: theme.spacing.unit * 4 - } - }, - contentExpanded: { - margin: '20px 0' - }, - expandIcon: { - position: 'absolute', - top: '50%', - right: theme.spacing.unit, - transform: 'translateY(-50%) rotate(0deg)', - transition: theme.transitions.create('transform', transition) - }, - expandIconExpanded: { - transform: 'translateY(-50%) rotate(180deg)' - } - }; -}; - -var ExpansionPanelSummary = function (_React$Component) { - (0, _inherits3.default)(ExpansionPanelSummary, _React$Component); - - function ExpansionPanelSummary() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, ExpansionPanelSummary); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ExpansionPanelSummary.__proto__ || (0, _getPrototypeOf2.default)(ExpansionPanelSummary)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - focused: false - }, _this.handleFocus = function () { - _this.setState({ - focused: true - }); - }, _this.handleBlur = function () { - _this.setState({ - focused: false - }); - }, _this.handleChange = function (event) { - var _this$props = _this.props, - onChange = _this$props.onChange, - onClick = _this$props.onClick; - - if (onChange) { - onChange(event); - } - if (onClick) { - onClick(event); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(ExpansionPanelSummary, [{ - key: 'render', - value: function render() { - var _classNames; - - var _props = this.props, - children = _props.children, - classes = _props.classes, - className = _props.className, - disabled = _props.disabled, - expanded = _props.expanded, - expandIcon = _props.expandIcon, - onChange = _props.onChange, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'disabled', 'expanded', 'expandIcon', 'onChange']); - var focused = this.state.focused; - - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends3.default)({ - focusRipple: false, - disableRipple: true, - disabled: disabled, - component: 'div', - 'aria-expanded': expanded, - className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.expanded, expanded), (0, _defineProperty3.default)(_classNames, classes.focused, focused), _classNames), className) - }, other, { - onKeyboardFocus: this.handleFocus, - onBlur: this.handleBlur, - onClick: this.handleChange - }), - _react2.default.createElement( - 'div', - { className: (0, _classnames2.default)(classes.content, (0, _defineProperty3.default)({}, classes.contentExpanded, expanded)) }, - children - ), - expandIcon && _react2.default.createElement( - _IconButton2.default, - { - disabled: disabled, - className: (0, _classnames2.default)(classes.expandIcon, (0, _defineProperty3.default)({}, classes.expandIconExpanded, expanded)), - component: 'div', - tabIndex: '-1', - 'aria-hidden': 'true' - }, - expandIcon - ) - ); - } - }]); - return ExpansionPanelSummary; -}(_react2.default.Component); - -ExpansionPanelSummary.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the expansion panel summary. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - * If `true`, the summary will be displayed in a disabled state. - */ - disabled: _propTypes2.default.bool, - /** - * @ignore - * If `true`, expands the summary, otherwise collapse it. - */ - expanded: _propTypes2.default.bool, - /** - * The icon to display as the expand indicator. - */ - expandIcon: _propTypes2.default.node, - /** - * @ignore - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - onClick: _propTypes2.default.func -} : {}; - -ExpansionPanelSummary.defaultProps = { - disabled: false -}; - -ExpansionPanelSummary.muiName = 'ExpansionPanelSummary'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiExpansionPanelSummary' })(ExpansionPanelSummary); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/ExpansionPanel/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _ExpansionPanel = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanel.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ExpansionPanel).default; - } -}); - -var _ExpansionPanelActions = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanelActions.js"); - -Object.defineProperty(exports, 'ExpansionPanelActions', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ExpansionPanelActions).default; - } -}); - -var _ExpansionPanelDetails = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanelDetails.js"); - -Object.defineProperty(exports, 'ExpansionPanelDetails', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ExpansionPanelDetails).default; - } -}); - -var _ExpansionPanelSummary = __webpack_require__("./node_modules/material-ui/ExpansionPanel/ExpansionPanelSummary.js"); - -Object.defineProperty(exports, 'ExpansionPanelSummary', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ExpansionPanelSummary).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Form/FormControl.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Input = __webpack_require__("./node_modules/material-ui/Input/Input.js"); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'inline-flex', - flexDirection: 'column', - position: 'relative', - // Reset fieldset default style - minWidth: 0, - padding: 0, - margin: 0, - border: 0 - }, - marginNormal: { - marginTop: theme.spacing.unit * 2, - marginBottom: theme.spacing.unit - }, - marginDense: { - marginTop: theme.spacing.unit, - marginBottom: theme.spacing.unit / 2 - }, - fullWidth: { - width: '100%' - } - }; -}; - -/** - * Provides context such as dirty/focused/error/required for form inputs. - * Relying on the context provides high flexibilty and ensures that the state always stay - * consitent across the children of the `FormControl`. - * This context is used by the following components: - * - FormLabel - * - FormHelperText - * - Input - * - InputLabel - */ - -var FormControl = function (_React$Component) { - (0, _inherits3.default)(FormControl, _React$Component); - - function FormControl(props, context) { - (0, _classCallCheck3.default)(this, FormControl); - - // We need to iterate through the children and find the Input in order - // to fully support server side rendering. - var _this = (0, _possibleConstructorReturn3.default)(this, (FormControl.__proto__ || (0, _getPrototypeOf2.default)(FormControl)).call(this, props, context)); - - _this.state = { - adornedStart: false, - dirty: false, - focused: false - }; - - _this.handleFocus = function (event) { - if (_this.props.onFocus) { - _this.props.onFocus(event); - } - _this.setState(function (state) { - return !state.focused ? { focused: true } : null; - }); - }; - - _this.handleBlur = function (event) { - // The event might be undefined. - // For instance, a child component might call this hook - // when an input is disabled but still having the focus. - if (_this.props.onBlur && event) { - _this.props.onBlur(event); - } - _this.setState(function (state) { - return state.focused ? { focused: false } : null; - }); - }; - - _this.handleDirty = function () { - if (!_this.state.dirty) { - _this.setState({ dirty: true }); - } - }; - - _this.handleClean = function () { - if (_this.state.dirty) { - _this.setState({ dirty: false }); - } - }; - - var children = _this.props.children; - - if (children) { - _react2.default.Children.forEach(children, function (child) { - if ((0, _reactHelpers.isMuiElement)(child, ['Input', 'Select']) && (0, _Input.isDirty)(child.props, true)) { - _this.state.dirty = true; - } - if ((0, _reactHelpers.isMuiElement)(child, ['Input']) && (0, _Input.isAdornedStart)(child.props)) { - _this.state.adornedStart = true; - } - }); - } - return _this; - } - - (0, _createClass3.default)(FormControl, [{ - key: 'getChildContext', - value: function getChildContext() { - var _props = this.props, - disabled = _props.disabled, - error = _props.error, - required = _props.required, - margin = _props.margin; - var _state = this.state, - adornedStart = _state.adornedStart, - dirty = _state.dirty, - focused = _state.focused; - - - return { - muiFormControl: { - adornedStart: adornedStart, - dirty: dirty, - disabled: disabled, - error: error, - focused: focused, - margin: margin, - required: required, - onDirty: this.handleDirty, - onClean: this.handleClean, - onFocus: this.handleFocus, - onBlur: this.handleBlur - } - }; - } - }, { - key: 'render', - value: function render() { - var _classNames; - - var _props2 = this.props, - classes = _props2.classes, - className = _props2.className, - Component = _props2.component, - disabled = _props2.disabled, - error = _props2.error, - fullWidth = _props2.fullWidth, - margin = _props2.margin, - required = _props2.required, - other = (0, _objectWithoutProperties3.default)(_props2, ['classes', 'className', 'component', 'disabled', 'error', 'fullWidth', 'margin', 'required']); - - - return _react2.default.createElement(Component, (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['margin' + (0, _helpers.capitalize)(margin)], margin !== 'none'), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), _classNames), className) - }, other, { - onFocus: this.handleFocus, - onBlur: this.handleBlur - })); - } - }]); - return FormControl; -}(_react2.default.Component); - -FormControl.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The contents of the form control. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the label, input and helper text should be displayed in a disabled state. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the label should be displayed in an error state. - */ - error: _propTypes2.default.bool, - /** - * If `true`, the component will take up the full width of its container. - */ - fullWidth: _propTypes2.default.bool, - /** - * If `dense` or `normal`, will adjust vertical spacing of this and contained components. - */ - margin: _propTypes2.default.oneOf(['none', 'dense', 'normal']), - /** - * @ignore - */ - onBlur: _propTypes2.default.func, - /** - * @ignore - */ - onFocus: _propTypes2.default.func, - /** - * If `true`, the label will indicate that the input is required. - */ - required: _propTypes2.default.bool -} : {}; - -FormControl.defaultProps = { - component: 'div', - disabled: false, - error: false, - fullWidth: false, - margin: 'none', - required: false -}; - -FormControl.childContextTypes = { - muiFormControl: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormControl' })(FormControl); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Form/FormControlLabel.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'inline-flex', - alignItems: 'center', - cursor: 'pointer', - // For correct alignment with the text. - verticalAlign: 'middle', - // Remove grey highlight - WebkitTapHighlightColor: 'transparent', - marginLeft: -14, - marginRight: theme.spacing.unit * 2 // used for row presentation of radio/checkbox - }, - disabled: { - color: theme.palette.text.disabled, - cursor: 'default' - }, - label: {} - }; -}; - -/** - * Drop in replacement of the `Radio`, `Switch` and `Checkbox` component. - * Use this component if you want to display an extra label. - */ -/* eslint-disable jsx-a11y/label-has-for */ - -function FormControlLabel(props, context) { - var checked = props.checked, - classes = props.classes, - classNameProp = props.className, - control = props.control, - disabledProp = props.disabled, - inputRef = props.inputRef, - label = props.label, - name = props.name, - onChange = props.onChange, - value = props.value, - other = (0, _objectWithoutProperties3.default)(props, ['checked', 'classes', 'className', 'control', 'disabled', 'inputRef', 'label', 'name', 'onChange', 'value']); - var muiFormControl = context.muiFormControl; - - var disabled = disabledProp; - - if (typeof control.props.disabled !== 'undefined') { - if (typeof disabled === 'undefined') { - disabled = control.props.disabled; - } - } - - if (muiFormControl) { - if (typeof disabled === 'undefined') { - disabled = muiFormControl.disabled; - } - } - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.disabled, disabled), classNameProp); - - return _react2.default.createElement( - 'label', - (0, _extends3.default)({ className: className }, other), - _react2.default.cloneElement(control, { - disabled: disabled, - checked: typeof control.props.checked === 'undefined' ? checked : control.props.checked, - name: control.props.name || name, - onChange: control.props.onChange || onChange, - value: control.props.value || value, - inputRef: control.props.inputRef || inputRef - }), - _react2.default.createElement( - _Typography2.default, - { component: 'span', className: classes.label }, - label - ) - ); -} - -FormControlLabel.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the component appears selected. - */ - checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * A control element. For instance, it can be be a `Radio`, a `Switch` or a `Checkbox`. - */ - control: _propTypes2.default.element, - /** - * If `true`, the control will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * Use that property to pass a ref callback to the native input component. - */ - inputRef: _propTypes2.default.func, - /** - * The text to be used in an enclosing label element. - */ - label: _propTypes2.default.node, - /* - * @ignore - */ - name: _propTypes2.default.string, - /** - * Callback fired when the state is changed. - * - * @param {object} event The event source of the callback - * @param {boolean} checked The `checked` value of the switch - */ - onChange: _propTypes2.default.func, - /** - * The value of the component. - */ - value: _propTypes2.default.string -} : {}; - -FormControlLabel.contextTypes = { - muiFormControl: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormControlLabel' })(FormControlLabel); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Form/FormGroup.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - display: 'flex', - flexDirection: 'column', - flexWrap: 'wrap' - }, - row: { - flexDirection: 'row' - } -}; - -/** - * `FormGroup` wraps controls such as `Checkbox` and `Switch`. - * It provides compact row layout. - * For the `Radio`, you should be using the `RadioGroup` component instead of this one. - */ -function FormGroup(props) { - var classes = props.classes, - className = props.className, - children = props.children, - row = props.row, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'children', 'row']); - - var rootClassName = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.row, row), className); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: rootClassName }, other), - children - ); -} - -FormGroup.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Display group of elements in a compact row. - */ - row: _propTypes2.default.bool -} : {}; - -FormGroup.defaultProps = { - row: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormGroup' })(FormGroup); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Form/FormHelperText.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - color: theme.palette.text.secondary, - fontFamily: theme.typography.fontFamily, - fontSize: theme.typography.pxToRem(12), - textAlign: 'left', - marginTop: theme.spacing.unit, - lineHeight: '1em', - minHeight: '1em', - margin: 0 - }, - dense: { - marginTop: theme.spacing.unit / 2 - }, - error: { - color: theme.palette.error.main - }, - disabled: { - color: theme.palette.text.disabled - } - }; -}; - -function FormHelperText(props, context) { - var _classNames; - - var classes = props.classes, - classNameProp = props.className, - disabledProp = props.disabled, - errorProp = props.error, - marginProp = props.margin, - Component = props.component, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'disabled', 'error', 'margin', 'component']); - var muiFormControl = context.muiFormControl; - - - var disabled = disabledProp; - var error = errorProp; - var margin = marginProp; - - if (muiFormControl) { - if (typeof disabled === 'undefined') { - disabled = muiFormControl.disabled; - } - - if (typeof error === 'undefined') { - error = muiFormControl.error; - } - - if (typeof margin === 'undefined') { - margin = muiFormControl.margin; - } - } - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.error, error), (0, _defineProperty3.default)(_classNames, classes.dense, margin === 'dense'), _classNames), classNameProp); - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); -} - -FormHelperText.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the helper text should be displayed in a disabled state. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, helper text should be displayed in an error state. - */ - error: _propTypes2.default.bool, - /** - * If `dense`, will adjust vertical spacing. This is normally obtained via context from - * FormControl. - */ - margin: _propTypes2.default.oneOf(['dense']) -} : {}; - -FormHelperText.defaultProps = { - component: 'p' -}; - -FormHelperText.contextTypes = { - muiFormControl: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormHelperText' })(FormHelperText); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Form/FormLabel.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - fontFamily: theme.typography.fontFamily, - color: theme.palette.text.secondary, - fontSize: theme.typography.pxToRem(16), - lineHeight: 1, - padding: 0 - }, - focused: { - color: theme.palette.primary[theme.palette.type === 'light' ? 'dark' : 'light'] - }, - error: { - color: theme.palette.error.main - }, - disabled: { - color: theme.palette.text.disabled - } - }; -}; - -function FormLabel(props, context) { - var _classNames; - - var children = props.children, - classes = props.classes, - classNameProp = props.className, - Component = props.component, - disabledProp = props.disabled, - errorProp = props.error, - focusedProp = props.focused, - requiredProp = props.required, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'component', 'disabled', 'error', 'focused', 'required']); - var muiFormControl = context.muiFormControl; - - - var required = requiredProp; - var focused = focusedProp; - var disabled = disabledProp; - var error = errorProp; - - if (muiFormControl) { - if (typeof required === 'undefined') { - required = muiFormControl.required; - } - if (typeof focused === 'undefined') { - focused = muiFormControl.focused; - } - if (typeof disabled === 'undefined') { - disabled = muiFormControl.disabled; - } - if (typeof error === 'undefined') { - error = muiFormControl.error; - } - } - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.focused, focused), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.error, error), _classNames), classNameProp); - - var asteriskClassName = (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.error, error)); - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ className: className }, other), - children, - required && _react2.default.createElement( - 'span', - { className: asteriskClassName }, - '\u2009*' - ) - ); -} - -FormLabel.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the label should be displayed in a disabled state. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the label should be displayed in an error state. - */ - error: _propTypes2.default.bool, - /** - * If `true`, the input of this label is focused (used by `FormGroup` components). - */ - focused: _propTypes2.default.bool, - /** - * If `true`, the label will indicate that the input is required. - */ - required: _propTypes2.default.bool -} : {}; - -FormLabel.defaultProps = { - component: 'label' -}; - -FormLabel.contextTypes = { - muiFormControl: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiFormLabel' })(FormLabel); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Form/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _FormGroup = __webpack_require__("./node_modules/material-ui/Form/FormGroup.js"); - -Object.defineProperty(exports, 'FormGroup', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_FormGroup).default; - } -}); - -var _FormLabel = __webpack_require__("./node_modules/material-ui/Form/FormLabel.js"); - -Object.defineProperty(exports, 'FormLabel', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_FormLabel).default; - } -}); - -var _FormControl = __webpack_require__("./node_modules/material-ui/Form/FormControl.js"); - -Object.defineProperty(exports, 'FormControl', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_FormControl).default; - } -}); - -var _FormHelperText = __webpack_require__("./node_modules/material-ui/Form/FormHelperText.js"); - -Object.defineProperty(exports, 'FormHelperText', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_FormHelperText).default; - } -}); - -var _FormControlLabel = __webpack_require__("./node_modules/material-ui/Form/FormControlLabel.js"); - -Object.defineProperty(exports, 'FormControlLabel', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_FormControlLabel).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Grid/Grid.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); - -var _requirePropFactory = __webpack_require__("./node_modules/material-ui/utils/requirePropFactory.js"); - -var _requirePropFactory2 = _interopRequireDefault(_requirePropFactory); - -var _Hidden = __webpack_require__("./node_modules/material-ui/Hidden/index.js"); - -var _Hidden2 = _interopRequireDefault(_Hidden); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var GUTTERS = [0, 8, 16, 24, 40]; // A grid component using the following libs as inspiration. -// -// For the implementation: -// - http://v4-alpha.getbootstrap.com/layout/flexbox-grid/ -// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css -// - https://github.com/roylee0704/react-flexbox-grid -// - https://material.angularjs.org/latest/layout/introduction -// -// Follow this flexbox Guide to better understand the underlying model: -// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/ - -var GRID_SIZES = [true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; - -function generateGrid(globalStyles, theme, breakpoint) { - // For the auto layouting - var styles = (0, _defineProperty3.default)({}, 'grid-' + breakpoint, { - flexBasis: 0, - flexGrow: 1, - maxWidth: '100%' - }); - - GRID_SIZES.forEach(function (size) { - if (typeof size === 'boolean') { - // Skip the first one as handle above. - return; - } - - // Only keep 6 significant numbers. - var width = Math.round(size / 12 * 10e6) / 10e4 + '%'; - - /* eslint-disable max-len */ - // Close to the bootstrap implementation: - // https://github.com/twbs/bootstrap/blob/b0508a975d711d6b24c01f57dd5445c22699fac4/scss/mixins/_grid.scss#L69 - /* eslint-enable max-len */ - styles['grid-' + breakpoint + '-' + size] = { - flexBasis: width, - maxWidth: width - }; - }); - - // No need for a media query for the first size. - if (breakpoint === 'xs') { - (0, _extends3.default)(globalStyles, styles); - } else { - globalStyles[theme.breakpoints.up(breakpoint)] = styles; - } -} - -function generateGutter(theme, breakpoint) { - var styles = {}; - - GUTTERS.forEach(function (spacing, index) { - if (index === 0) { - // Skip the default style. - return; - } - - styles['spacing-' + breakpoint + '-' + spacing] = { - margin: -spacing / 2, - width: 'calc(100% + ' + spacing + 'px)', - '& > $typeItem': { - padding: spacing / 2 - } - }; - }); - - return styles; -} - -// Default CSS values -// flex: '0 1 auto', -// flexDirection: 'row', -// alignItems: 'flex-start', -// flexWrap: 'nowrap', -// justifyContent: 'flex-start', -var styles = exports.styles = function styles(theme) { - return (0, _extends3.default)({ - typeContainer: { - boxSizing: 'border-box', - display: 'flex', - flexWrap: 'wrap', - width: '100%' - }, - typeItem: { - boxSizing: 'border-box', - flex: '0 0 auto', - margin: '0' // For instance, it's useful when used with a `figure` element. - }, - zeroMinWidth: { - minWidth: 0 - }, - 'direction-xs-column': { - flexDirection: 'column' - }, - 'direction-xs-column-reverse': { - flexDirection: 'column-reverse' - }, - 'direction-xs-row-reverse': { - flexDirection: 'row-reverse' - }, - 'wrap-xs-nowrap': { - flexWrap: 'nowrap' - }, - 'wrap-xs-wrap-reverse': { - flexWrap: 'wrap-reverse' - }, - 'align-items-xs-center': { - alignItems: 'center' - }, - 'align-items-xs-flex-start': { - alignItems: 'flex-start' - }, - 'align-items-xs-flex-end': { - alignItems: 'flex-end' - }, - 'align-items-xs-baseline': { - alignItems: 'baseline' - }, - 'align-content-xs-center': { - alignContent: 'center' - }, - 'align-content-xs-flex-start': { - alignContent: 'flex-start' - }, - 'align-content-xs-flex-end': { - alignContent: 'flex-end' - }, - 'align-content-xs-space-between': { - alignContent: 'space-between' - }, - 'align-content-xs-space-around': { - alignContent: 'space-around' - }, - 'justify-xs-center': { - justifyContent: 'center' - }, - 'justify-xs-flex-end': { - justifyContent: 'flex-end' - }, - 'justify-xs-space-between': { - justifyContent: 'space-between' - }, - 'justify-xs-space-around': { - justifyContent: 'space-around' - } - }, generateGutter(theme, 'xs'), _createBreakpoints.keys.reduce(function (accumulator, key) { - // Use side effect over immutability for better performance. - generateGrid(accumulator, theme, key); - return accumulator; - }, {})); -}; - -function Grid(props) { - var _classNames; - - var alignContent = props.alignContent, - alignItems = props.alignItems, - classes = props.classes, - classNameProp = props.className, - Component = props.component, - container = props.container, - direction = props.direction, - hidden = props.hidden, - item = props.item, - justify = props.justify, - lg = props.lg, - md = props.md, - zeroMinWidth = props.zeroMinWidth, - sm = props.sm, - spacing = props.spacing, - wrap = props.wrap, - xl = props.xl, - xs = props.xs, - other = (0, _objectWithoutProperties3.default)(props, ['alignContent', 'alignItems', 'classes', 'className', 'component', 'container', 'direction', 'hidden', 'item', 'justify', 'lg', 'md', 'zeroMinWidth', 'sm', 'spacing', 'wrap', 'xl', 'xs']); - - - var className = (0, _classnames2.default)((_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.typeContainer, container), (0, _defineProperty3.default)(_classNames, classes.typeItem, item), (0, _defineProperty3.default)(_classNames, classes.zeroMinWidth, zeroMinWidth), (0, _defineProperty3.default)(_classNames, classes['spacing-xs-' + String(spacing)], container && spacing !== 0), (0, _defineProperty3.default)(_classNames, classes['direction-xs-' + String(direction)], direction !== Grid.defaultProps.direction), (0, _defineProperty3.default)(_classNames, classes['wrap-xs-' + String(wrap)], wrap !== Grid.defaultProps.wrap), (0, _defineProperty3.default)(_classNames, classes['align-items-xs-' + String(alignItems)], alignItems !== Grid.defaultProps.alignItems), (0, _defineProperty3.default)(_classNames, classes['align-content-xs-' + String(alignContent)], alignContent !== Grid.defaultProps.alignContent), (0, _defineProperty3.default)(_classNames, classes['justify-xs-' + String(justify)], justify !== Grid.defaultProps.justify), (0, _defineProperty3.default)(_classNames, classes['grid-xs'], xs === true), (0, _defineProperty3.default)(_classNames, classes['grid-xs-' + String(xs)], xs && xs !== true), (0, _defineProperty3.default)(_classNames, classes['grid-sm'], sm === true), (0, _defineProperty3.default)(_classNames, classes['grid-sm-' + String(sm)], sm && sm !== true), (0, _defineProperty3.default)(_classNames, classes['grid-md'], md === true), (0, _defineProperty3.default)(_classNames, classes['grid-md-' + String(md)], md && md !== true), (0, _defineProperty3.default)(_classNames, classes['grid-lg'], lg === true), (0, _defineProperty3.default)(_classNames, classes['grid-lg-' + String(lg)], lg && lg !== true), (0, _defineProperty3.default)(_classNames, classes['grid-xl'], xl === true), (0, _defineProperty3.default)(_classNames, classes['grid-xl-' + String(xl)], xl && xl !== true), _classNames), classNameProp); - var gridProps = (0, _extends3.default)({ className: className }, other); - - if (hidden) { - return _react2.default.createElement( - _Hidden2.default, - hidden, - _react2.default.createElement(Component, gridProps) - ); - } - - return _react2.default.createElement(Component, gridProps); -} - -Grid.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Defines the `align-content` style property. - * It's applied for all screen sizes. - */ - alignContent: _propTypes2.default.oneOf(['stretch', 'center', 'flex-start', 'flex-end', 'space-between', 'space-around']), - /** - * Defines the `align-items` style property. - * It's applied for all screen sizes. - */ - alignItems: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']), - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the component will have the flex *container* behavior. - * You should be wrapping *items* with a *container*. - */ - container: _propTypes2.default.bool, - /** - * Defines the `flex-direction` style property. - * It is applied for all screen sizes. - */ - direction: _propTypes2.default.oneOf(['row', 'row-reverse', 'column', 'column-reverse']), - /** - * If provided, will wrap with [Hidden](/api/hidden) component and given properties. - */ - hidden: _propTypes2.default.object, - /** - * If `true`, the component will have the flex *item* behavior. - * You should be wrapping *items* with a *container*. - */ - item: _propTypes2.default.bool, - /** - * Defines the `justify-content` style property. - * It is applied for all screen sizes. - */ - justify: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around']), - /** - * Defines the number of grids the component is going to use. - * It's applied for the `lg` breakpoint and wider screens if not overridden. - */ - lg: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), - /** - * Defines the number of grids the component is going to use. - * It's applied for the `md` breakpoint and wider screens if not overridden. - */ - md: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), - /** - * Defines the number of grids the component is going to use. - * It's applied for the `sm` breakpoint and wider screens if not overridden. - */ - sm: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), - /** - * Defines the space between the type `item` component. - * It can only be used on a type `container` component. - */ - spacing: _propTypes2.default.oneOf(GUTTERS), - /** - * Defines the `flex-wrap` style property. - * It's applied for all screen sizes. - */ - wrap: _propTypes2.default.oneOf(['nowrap', 'wrap', 'wrap-reverse']), - /** - * Defines the number of grids the component is going to use. - * It's applied for the `xl` breakpoint and wider screens. - */ - xl: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), - /** - * Defines the number of grids the component is going to use. - * It's applied for all the screen sizes with the lowest priority. - */ - xs: _propTypes2.default.oneOf([true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), - /** - * If `true`, it sets `min-width: 0` on the item. - * Refer to the limitations section of the documentation to better understand the use case. - */ - zeroMinWidth: _propTypes2.default.bool -} : {}; - -Grid.defaultProps = { - alignContent: 'stretch', - alignItems: 'stretch', - component: 'div', - container: false, - direction: 'row', - item: false, - justify: 'flex-start', - zeroMinWidth: false, - spacing: 16, - wrap: 'wrap' -}; - -// Add a wrapper component to generate some helper messages in the development -// environment. -/* eslint-disable react/no-multi-comp */ -// eslint-disable-next-line import/no-mutable-exports -var GridWrapper = Grid; - -if (process.env.NODE_ENV !== 'production') { - GridWrapper = function GridWrapper(props) { - return _react2.default.createElement(Grid, props); - }; - - var requireProp = (0, _requirePropFactory2.default)('Grid'); - GridWrapper.propTypes = { - alignContent: requireProp('container'), - alignItems: requireProp('container'), - direction: requireProp('container'), - justify: requireProp('container'), - lg: requireProp('item'), - md: requireProp('item'), - sm: requireProp('item'), - spacing: requireProp('container'), - wrap: requireProp('container'), - xs: requireProp('item'), - zeroMinWidth: requireProp('zeroMinWidth') - }; -} - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGrid' })(GridWrapper); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Grid/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Grid = __webpack_require__("./node_modules/material-ui/Grid/Grid.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Grid).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/GridList/GridList.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - display: 'flex', - flexWrap: 'wrap', - overflowY: 'auto', - listStyle: 'none', - padding: 0, - WebkitOverflowScrolling: 'touch' // Add iOS momentum scrolling. - } -}; - -function GridList(props) { - var cellHeight = props.cellHeight, - children = props.children, - classes = props.classes, - classNameProp = props.className, - cols = props.cols, - Component = props.component, - spacing = props.spacing, - style = props.style, - other = (0, _objectWithoutProperties3.default)(props, ['cellHeight', 'children', 'classes', 'className', 'cols', 'component', 'spacing', 'style']); - - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, classNameProp), - style: (0, _extends3.default)({ margin: -spacing / 2 }, style) - }, other), - _react2.default.Children.map(children, function (currentChild) { - var childCols = currentChild.props.cols || 1; - var childRows = currentChild.props.rows || 1; - - return _react2.default.cloneElement(currentChild, { - style: (0, _extends3.default)({ - width: 100 / cols * childCols + '%', - height: cellHeight === 'auto' ? 'auto' : cellHeight * childRows + spacing, - padding: spacing / 2 - }, currentChild.props.style) - }); - }) - ); -} - -GridList.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Number of px for one cell height. - * You can set `'auto'` if you want to let the children determine the height. - */ - cellHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['auto'])]), - /** - * Grid Tiles that will be in Grid List. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Number of columns. - */ - cols: _propTypes2.default.number, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Number of px for the spacing between tiles. - */ - spacing: _propTypes2.default.number, - /** - * @ignore - */ - style: _propTypes2.default.object -} : {}; - -GridList.defaultProps = { - cellHeight: 180, - cols: 2, - component: 'ul', - spacing: 4 -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGridList' })(GridList); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/GridList/GridListTile.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - boxSizing: 'border-box', - flexShrink: 0 - }, - tile: { - position: 'relative', - display: 'block', // In case it's not renderd with a div. - height: '100%', - overflow: 'hidden' - }, - imgFullHeight: { - height: '100%', - transform: 'translateX(-50%)', - position: 'relative', - left: '50%' - }, - imgFullWidth: { - width: '100%', - position: 'relative', - transform: 'translateY(-50%)', - top: '50%' - } -}; - -var GridListTile = function (_React$Component) { - (0, _inherits3.default)(GridListTile, _React$Component); - - function GridListTile() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, GridListTile); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = GridListTile.__proto__ || (0, _getPrototypeOf2.default)(GridListTile)).call.apply(_ref, [this].concat(args))), _this), _this.imgElement = null, _this.handleResize = (0, _debounce2.default)(function () { - _this.fit(); - }, 166), _this.fit = function () { - var imgElement = _this.imgElement; - - if (!imgElement) { - return; - } - - if (!imgElement.complete) { - return; - } - - if (imgElement.width / imgElement.height > imgElement.parentNode.offsetWidth / imgElement.parentNode.offsetHeight) { - var _imgElement$classList, _imgElement$classList2; - - (_imgElement$classList = imgElement.classList).remove.apply(_imgElement$classList, (0, _toConsumableArray3.default)(_this.props.classes.imgFullWidth.split(' '))); - (_imgElement$classList2 = imgElement.classList).add.apply(_imgElement$classList2, (0, _toConsumableArray3.default)(_this.props.classes.imgFullHeight.split(' '))); - } else { - var _imgElement$classList3, _imgElement$classList4; - - (_imgElement$classList3 = imgElement.classList).remove.apply(_imgElement$classList3, (0, _toConsumableArray3.default)(_this.props.classes.imgFullHeight.split(' '))); - (_imgElement$classList4 = imgElement.classList).add.apply(_imgElement$classList4, (0, _toConsumableArray3.default)(_this.props.classes.imgFullWidth.split(' '))); - } - - imgElement.removeEventListener('load', _this.fit); - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(GridListTile, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.ensureImageCover(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.ensureImageCover(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.handleResize.cancel(); - } - }, { - key: 'ensureImageCover', - value: function ensureImageCover() { - if (!this.imgElement) { - return; - } - - if (this.imgElement.complete) { - this.fit(); - } else { - this.imgElement.addEventListener('load', this.fit); - } - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - children = _props.children, - classes = _props.classes, - className = _props.className, - cols = _props.cols, - Component = _props.component, - rows = _props.rows, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'cols', 'component', 'rows']); - - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), - _react2.default.createElement( - 'div', - { className: classes.tile }, - _react2.default.Children.map(children, function (child) { - if (child && child.type === 'img') { - return _react2.default.cloneElement(child, { - key: 'img', - ref: function ref(node) { - _this2.imgElement = node; - } - }); - } - - return child; - }) - ) - ); - } - }]); - return GridListTile; -}(_react2.default.Component); - -GridListTile.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Theoretically you can pass any node as children, but the main use case is to pass an img, - * in which case GridListTile takes care of making the image "cover" available space - * (similar to `background-size: cover` or to `object-fit: cover`). - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Width of the tile in number of grid cells. - */ - cols: _propTypes2.default.number, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Height of the tile in number of grid cells. - */ - rows: _propTypes2.default.number -} : {}; - -GridListTile.defaultProps = { - cols: 1, - component: 'li', - rows: 1 -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGridListTile' })(GridListTile); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/GridList/GridListTileBar.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - position: 'absolute', - left: 0, - right: 0, - height: 48, - background: 'rgba(0, 0, 0, 0.4)', - display: 'flex', - alignItems: 'center', - fontFamily: theme.typography.fontFamily - }, - rootBottom: { - bottom: 0 - }, - rootTop: { - top: 0 - }, - rootWithSubtitle: { - height: 68 - }, - titleWrap: { - flexGrow: 1, - marginLeft: theme.mixins.gutters({}).paddingLeft, - marginRight: theme.mixins.gutters({}).paddingRight, - color: theme.palette.common.white, - overflow: 'hidden' - }, - titleWrapActionLeft: { - marginLeft: 0 - }, - titleWrapActionRight: { - marginRight: 0 - }, - title: { - fontSize: theme.typography.pxToRem(16), - lineHeight: '24px', - textOverflow: 'ellipsis', - overflow: 'hidden', - whiteSpace: 'nowrap' - }, - subtitle: { - fontSize: theme.typography.pxToRem(12), - lineHeight: 1, - textOverflow: 'ellipsis', - overflow: 'hidden', - whiteSpace: 'nowrap' - }, - actionIconPositionLeft: { - order: -1 - }, - childImg: { - height: '100%', - transform: 'translateX(-50%)', - position: 'relative', - left: '50%' - } - }; -}; - -function GridListTileBar(props) { - var _classNames, _classNames2; - - var actionIcon = props.actionIcon, - actionPosition = props.actionPosition, - classes = props.classes, - classNameProp = props.className, - subtitle = props.subtitle, - title = props.title, - titlePosition = props.titlePosition, - other = (0, _objectWithoutProperties3.default)(props, ['actionIcon', 'actionPosition', 'classes', 'className', 'subtitle', 'title', 'titlePosition']); - - - var actionPos = actionIcon && actionPosition; - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.rootBottom, titlePosition === 'bottom'), (0, _defineProperty3.default)(_classNames, classes.rootTop, titlePosition === 'top'), (0, _defineProperty3.default)(_classNames, classes.rootWithSubtitle, subtitle), _classNames), classNameProp); - - // Remove the margin between the title / subtitle wrapper, and the Action Icon - var titleWrapClassName = (0, _classnames2.default)(classes.titleWrap, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.titleWrapActionLeft, actionPos === 'left'), (0, _defineProperty3.default)(_classNames2, classes.titleWrapActionRight, actionPos === 'right'), _classNames2)); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - _react2.default.createElement( - 'div', - { className: titleWrapClassName }, - _react2.default.createElement( - 'div', - { className: classes.title }, - title - ), - subtitle ? _react2.default.createElement( - 'div', - { className: classes.subtitle }, - subtitle - ) : null - ), - actionIcon ? _react2.default.createElement( - 'div', - { className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.actionIconPositionLeft, actionPos === 'left')) }, - actionIcon - ) : null - ); -} - -GridListTileBar.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * An IconButton element to be used as secondary action target - * (primary action target is the tile itself). - */ - actionIcon: _propTypes2.default.node, - /** - * Position of secondary action IconButton. - */ - actionPosition: _propTypes2.default.oneOf(['left', 'right']), - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * String or element serving as subtitle (support text). - */ - subtitle: _propTypes2.default.node, - /** - * Title to be displayed on tile. - */ - title: _propTypes2.default.node, - /** - * Position of the title bar. - */ - titlePosition: _propTypes2.default.oneOf(['top', 'bottom']) -} : {}; - -GridListTileBar.defaultProps = { - actionPosition: 'right', - titlePosition: 'bottom' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGridListTileBar' })(GridListTileBar); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/GridList/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _GridList = __webpack_require__("./node_modules/material-ui/GridList/GridList.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_GridList).default; - } -}); - -var _GridListTile = __webpack_require__("./node_modules/material-ui/GridList/GridListTile.js"); - -Object.defineProperty(exports, 'GridListTile', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_GridListTile).default; - } -}); - -var _GridListTileBar = __webpack_require__("./node_modules/material-ui/GridList/GridListTileBar.js"); - -Object.defineProperty(exports, 'GridListTileBar', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_GridListTileBar).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Hidden/Hidden.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _HiddenJs = __webpack_require__("./node_modules/material-ui/Hidden/HiddenJs.js"); - -var _HiddenJs2 = _interopRequireDefault(_HiddenJs); - -var _HiddenCss = __webpack_require__("./node_modules/material-ui/Hidden/HiddenCss.js"); - -var _HiddenCss2 = _interopRequireDefault(_HiddenCss); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Responsively hides children based on the selected implementation. - */ -function Hidden(props) { - var implementation = props.implementation, - other = (0, _objectWithoutProperties3.default)(props, ['implementation']); - - - if (implementation === 'js') { - return _react2.default.createElement(_HiddenJs2.default, other); - } - - return _react2.default.createElement(_HiddenCss2.default, other); -} - -Hidden.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Specify which implementation to use. 'js' is the default, 'css' works better for server - * side rendering. - */ - implementation: _propTypes2.default.oneOf(['js', 'css']), - /** - * You can use this property when choosing the `js` implementation with server side rendering. - * - * As `window.innerWidth` is unavailable on the server, - * we default to rendering an empty componenent during the first mount. - * In some situation you might want to use an heristic to approximate - * the screen width of the client browser screen width. - * - * For instance, you could be using the user-agent or the client-hints. - * http://caniuse.com/#search=client%20hint - */ - initialWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), - /** - * If true, screens this size and down will be hidden. - */ - lgDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - lgUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - mdDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - mdUp: _propTypes2.default.bool, - /** - * Hide the given breakpoint(s). - */ - only: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]), - /** - * If true, screens this size and down will be hidden. - */ - smDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - smUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - xlDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - xlUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - xsDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - xsUp: _propTypes2.default.bool -} : {}; - -Hidden.defaultProps = { - implementation: 'js', - lgDown: false, - lgUp: false, - mdDown: false, - mdUp: false, - smDown: false, - smUp: false, - xlDown: false, - xlUp: false, - xsDown: false, - xsUp: false -}; - -exports.default = Hidden; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Hidden/HiddenCss.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = function styles(theme) { - var hidden = { - display: 'none' - }; - - return _createBreakpoints.keys.reduce(function (acc, key) { - acc['only' + (0, _helpers.capitalize)(key)] = (0, _defineProperty3.default)({}, theme.breakpoints.only(key), hidden); - acc[key + 'Up'] = (0, _defineProperty3.default)({}, theme.breakpoints.up(key), hidden); - acc[key + 'Down'] = (0, _defineProperty3.default)({}, theme.breakpoints.down(key), hidden); - - return acc; - }, {}); -}; - -/** - * @ignore - internal component. - */ -function HiddenCss(props) { - var children = props.children, - classes = props.classes, - className = props.className, - lgDown = props.lgDown, - lgUp = props.lgUp, - mdDown = props.mdDown, - mdUp = props.mdUp, - only = props.only, - smDown = props.smDown, - smUp = props.smUp, - xlDown = props.xlDown, - xlUp = props.xlUp, - xsDown = props.xsDown, - xsUp = props.xsUp, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'lgDown', 'lgUp', 'mdDown', 'mdUp', 'only', 'smDown', 'smUp', 'xlDown', 'xlUp', 'xsDown', 'xsUp']); - - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)((0, _keys2.default)(other).length === 0 || (0, _keys2.default)(other).length === 1 && other.hasOwnProperty('ref'), 'Material-UI: unsupported properties received ' + (0, _keys2.default)(other).join(', ') + ' by ``.') : void 0; - - var classNames = []; - - if (className) { - classNames.push(className); - } - - for (var i = 0; i < _createBreakpoints.keys.length; i += 1) { - var breakpoint = _createBreakpoints.keys[i]; - var breakpointUp = props[breakpoint + 'Up']; - var breakpointDown = props[breakpoint + 'Down']; - - if (breakpointUp) { - classNames.push(classes[breakpoint + 'Up']); - } - if (breakpointDown) { - classNames.push(classes[breakpoint + 'Down']); - } - } - - if (only) { - var onlyBreakpoints = Array.isArray(only) ? only : [only]; - onlyBreakpoints.forEach(function (breakpoint) { - classNames.push(classes['only' + (0, _helpers.capitalize)(breakpoint)]); - }); - } - - return _react2.default.createElement( - 'div', - { className: classNames.join(' ') }, - children - ); -} - -HiddenCss.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Specify which implementation to use. 'js' is the default, 'css' works better for server - * side rendering. - */ - implementation: _propTypes2.default.oneOf(['js', 'css']), - /** - * If true, screens this size and down will be hidden. - */ - lgDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - lgUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - mdDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - mdUp: _propTypes2.default.bool, - /** - * Hide the given breakpoint(s). - */ - only: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]), - /** - * If true, screens this size and down will be hidden. - */ - smDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - smUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - xlDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - xlUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - xsDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - xsUp: _propTypes2.default.bool -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiHiddenCss' })(HiddenCss); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Hidden/HiddenJs.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); - -var _withWidth = __webpack_require__("./node_modules/material-ui/utils/withWidth.js"); - -var _withWidth2 = _interopRequireDefault(_withWidth); - -var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); - -var _exactProp2 = _interopRequireDefault(_exactProp); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -function HiddenJs(props) { - var children = props.children, - only = props.only, - width = props.width; - - - var visible = true; - - // `only` check is faster to get out sooner if used. - if (only) { - if (Array.isArray(only)) { - for (var i = 0; i < only.length; i += 1) { - var breakpoint = only[i]; - if (width === breakpoint) { - visible = false; - break; - } - } - } else if (only && width === only) { - visible = false; - } - } - - // Allow `only` to be combined with other props. If already hidden, no need to check others. - if (visible) { - // determine visibility based on the smallest size up - for (var _i = 0; _i < _createBreakpoints.keys.length; _i += 1) { - var _breakpoint = _createBreakpoints.keys[_i]; - var breakpointUp = props[_breakpoint + 'Up']; - var breakpointDown = props[_breakpoint + 'Down']; - if (breakpointUp && (0, _withWidth.isWidthUp)(_breakpoint, width) || breakpointDown && (0, _withWidth.isWidthDown)(_breakpoint, width)) { - visible = false; - break; - } - } - } - - if (!visible) { - return null; - } - - return children; -} - -HiddenJs.propTypes = { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Specify which implementation to use. 'js' is the default, 'css' works better for server - * side rendering. - */ - implementation: _propTypes2.default.oneOf(['js', 'css']), - /** - * You can use this property when choosing the `js` implementation with server side rendering. - * - * As `window.innerWidth` is unavailable on the server, - * we default to rendering an empty componenent during the first mount. - * In some situation you might want to use an heristic to approximate - * the screen width of the client browser screen width. - * - * For instance, you could be using the user-agent or the client-hints. - * http://caniuse.com/#search=client%20hint - */ - initialWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), - /** - * If true, screens this size and down will be hidden. - */ - lgDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - lgUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - mdDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - mdUp: _propTypes2.default.bool, - /** - * Hide the given breakpoint(s). - */ - only: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]), - /** - * If true, screens this size and down will be hidden. - */ - smDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - smUp: _propTypes2.default.bool, - /** - * @ignore - * width prop provided by withWidth decorator. - */ - width: _propTypes2.default.string.isRequired, - /** - * If true, screens this size and down will be hidden. - */ - xlDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - xlUp: _propTypes2.default.bool, - /** - * If true, screens this size and down will be hidden. - */ - xsDown: _propTypes2.default.bool, - /** - * If true, screens this size and up will be hidden. - */ - xsUp: _propTypes2.default.bool -}; - -HiddenJs.propTypes = (0, _exactProp2.default)(HiddenJs.propTypes, 'HiddenJs'); - -exports.default = (0, _withWidth2.default)()(HiddenJs); - -/***/ }), - -/***/ "./node_modules/material-ui/Hidden/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Hidden = __webpack_require__("./node_modules/material-ui/Hidden/Hidden.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Hidden).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Icon/Icon.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - userSelect: 'none' - }, - colorPrimary: { - color: theme.palette.primary.main - }, - colorSecondary: { - color: theme.palette.secondary.main - }, - colorAction: { - color: theme.palette.action.active - }, - colorDisabled: { - color: theme.palette.action.disabled - }, - colorError: { - color: theme.palette.error.main - }, - fontSize: { - width: '1em', - height: '1em' - } - }; -}; - -function Icon(props) { - var _classNames; - - var children = props.children, - classes = props.classes, - classNameProp = props.className, - color = props.color, - fontSize = props.fontSize, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'fontSize']); - - - var className = (0, _classnames2.default)('material-icons', classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), (0, _defineProperty3.default)(_classNames, classes.fontSize, fontSize), _classNames), classNameProp); - - return _react2.default.createElement( - 'span', - (0, _extends3.default)({ className: className, 'aria-hidden': 'true' }, other), - children - ); -} - -Icon.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The name of the icon font ligature. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['inherit', 'secondary', 'action', 'disabled', 'error', 'primary']), - /** - * If `true`, the icon size will be determined by the font-size. - */ - fontSize: _propTypes2.default.bool -} : {}; - -Icon.defaultProps = { - color: 'inherit', - fontSize: false -}; - -Icon.muiName = 'Icon'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiIcon' })(Icon); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Icon/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Icon = __webpack_require__("./node_modules/material-ui/Icon/Icon.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Icon).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/IconButton/IconButton.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -__webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Ensure CSS specificity - -// @inheritedComponent ButtonBase - -var styles = exports.styles = function styles(theme) { - return { - root: { - textAlign: 'center', - flex: '0 0 auto', - fontSize: theme.typography.pxToRem(24), - width: theme.spacing.unit * 6, - height: theme.spacing.unit * 6, - padding: 0, - borderRadius: '50%', - color: theme.palette.action.active, - transition: theme.transitions.create('background-color', { - duration: theme.transitions.duration.shortest - }) - }, - colorInherit: { - color: 'inherit' - }, - colorPrimary: { - color: theme.palette.primary.main - }, - colorSecondary: { - color: theme.palette.secondary.main - }, - disabled: { - color: theme.palette.action.disabled - }, - label: { - width: '100%', - display: 'flex', - alignItems: 'inherit', - justifyContent: 'inherit' - } - }; -}; - -/** - * Refer to the [Icons](/style/icons) section of the documentation - * regarding the available icon options. - */ -function IconButton(props) { - var _classNames; - - var children = props.children, - classes = props.classes, - className = props.className, - color = props.color, - disabled = props.disabled, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'disabled']); - - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default'), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), _classNames), className), - centerRipple: true, - focusRipple: true, - disabled: disabled - }, other), - _react2.default.createElement( - 'span', - { className: classes.label }, - _react2.default.Children.map(children, function (child) { - if ((0, _reactHelpers.isMuiElement)(child, ['Icon', 'SvgIcon'])) { - return _react2.default.cloneElement(child, { fontSize: true }); - } - return child; - }) - ) - ); -} - -IconButton.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The icon element. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['default', 'inherit', 'primary', 'secondary']), - /** - * If `true`, the button will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the ripple will be disabled. - */ - disableRipple: _propTypes2.default.bool -} : {}; - -IconButton.defaultProps = { - color: 'default', - disabled: false, - disableRipple: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiIconButton' })(IconButton); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/IconButton/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/IconButton.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_IconButton).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Input/Input.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -exports.hasValue = hasValue; -exports.isDirty = isDirty; -exports.isAdornedStart = isAdornedStart; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Textarea = __webpack_require__("./node_modules/material-ui/Input/Textarea.js"); - -var _Textarea2 = _interopRequireDefault(_Textarea); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Supports determination of isControlled(). -// Controlled input accepts its current value as a prop. -// -// @see https://facebook.github.io/react/docs/forms.html#controlled-components -// @param value -// @returns {boolean} true if string (including '') or number (including zero) -function hasValue(value) { - return value != null && !(Array.isArray(value) && value.length === 0); -} - -// Determine if field is dirty (a.k.a. filled). -// -// Response determines if label is presented above field or as placeholder. -// -// @param obj -// @param SSR -// @returns {boolean} False when not present or empty string. -// True when any number or string with length. -function isDirty(obj) { - var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''); -} - -// Determine if an Input is adorned on start. -// It's corresponding to the left with LTR. -// -// @param obj -// @returns {boolean} False when no adornments. -// True when adorned at the start. -function isAdornedStart(obj) { - return obj.startAdornment; -} - -var styles = exports.styles = function styles(theme) { - var light = theme.palette.type === 'light'; - var placeholder = { - color: 'currentColor', - opacity: light ? 0.42 : 0.5, - transition: theme.transitions.create('opacity', { - duration: theme.transitions.duration.shorter - }) - }; - var placeholderHidden = { - opacity: 0 - }; - var placeholderVisible = { - opacity: light ? 0.42 : 0.5 - }; - var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)'; - - return { - root: { - // Mimics the default input display property used by browsers for an input. - display: 'inline-flex', - position: 'relative', - fontFamily: theme.typography.fontFamily, - color: light ? 'rgba(0, 0, 0, 0.87)' : theme.palette.common.white, - fontSize: theme.typography.pxToRem(16) - }, - formControl: { - 'label + &': { - marginTop: theme.spacing.unit * 2 - } - }, - inkbar: { - '&:after': { - backgroundColor: theme.palette.primary[light ? 'dark' : 'light'], - left: 0, - bottom: 0, - // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 - content: '""', - height: 2, - position: 'absolute', - right: 0, - transform: 'scaleX(0)', - transition: theme.transitions.create('transform', { - duration: theme.transitions.duration.shorter, - easing: theme.transitions.easing.easeOut - }), - pointerEvents: 'none' // Transparent to the hover style. - }, - '&$focused:after': { - transform: 'scaleX(1)' - } - }, - error: { - '&:after': { - backgroundColor: theme.palette.error.main, - transform: 'scaleX(1)' // error is always underlined in red - } - }, - focused: {}, - disabled: { - color: theme.palette.text.disabled - }, - underline: { - '&:before': { - backgroundColor: bottomLineColor, - left: 0, - bottom: 0, - // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 - content: '""', - height: 1, - position: 'absolute', - right: 0, - transition: theme.transitions.create('background-color', { - duration: theme.transitions.duration.shorter - }), - pointerEvents: 'none' // Transparent to the hover style. - }, - '&:hover:not($disabled):before': { - backgroundColor: theme.palette.text.primary, - height: 2 - }, - '&$disabled:before': { - background: 'transparent', - backgroundImage: 'linear-gradient(to right, ' + bottomLineColor + ' 33%, transparent 0%)', - backgroundPosition: 'left top', - backgroundRepeat: 'repeat-x', - backgroundSize: '5px 1px' - } - }, - multiline: { - padding: theme.spacing.unit - 2 + 'px 0 ' + (theme.spacing.unit - 1) + 'px' - }, - fullWidth: { - width: '100%' - }, - input: { - font: 'inherit', - color: 'currentColor', - padding: theme.spacing.unit - 2 + 'px 0 ' + (theme.spacing.unit - 1) + 'px', - border: 0, - boxSizing: 'content-box', - verticalAlign: 'middle', - background: 'none', - margin: 0, // Reset for Safari - // Remove grey highlight - WebkitTapHighlightColor: 'transparent', - display: 'block', - // Make the flex item shrink with Firefox - minWidth: 0, - width: '100%', - '&::-webkit-input-placeholder': placeholder, - '&::-moz-placeholder': placeholder, // Firefox 19+ - '&:-ms-input-placeholder': placeholder, // IE 11 - '&::-ms-input-placeholder': placeholder, // Edge - '&:focus': { - outline: 0 - }, - // Reset Firefox invalid required input style - '&:invalid': { - boxShadow: 'none' - }, - '&::-webkit-search-decoration': { - // Remove the padding when type=search. - '-webkit-appearance': 'none' - }, - // Show and hide the placeholder logic - 'label[data-shrink=false] + $formControl &': { - '&::-webkit-input-placeholder': placeholderHidden, - '&::-moz-placeholder': placeholderHidden, // Firefox 19+ - '&:-ms-input-placeholder': placeholderHidden, // IE 11 - '&::-ms-input-placeholder': placeholderHidden, // Edge - '&:focus::-webkit-input-placeholder': placeholderVisible, - '&:focus::-moz-placeholder': placeholderVisible, // Firefox 19+ - '&:focus:-ms-input-placeholder': placeholderVisible, // IE 11 - '&:focus::-ms-input-placeholder': placeholderVisible // Edge - } - }, - inputDense: { - paddingTop: theme.spacing.unit / 2 - 1 - }, - inputDisabled: { - opacity: 1 // Reset iOS opacity - }, - inputType: { - // type="date" or type="time", etc. have specific styles we need to reset. - height: '1.1875em' // Reset (19px), match the native input line-height - }, - inputMultiline: { - resize: 'none', - padding: 0 - }, - inputSearch: { - // Improve type search style. - '-moz-appearance': 'textfield', - '-webkit-appearance': 'textfield' - } - }; -}; - -function formControlState(props, context) { - var disabled = props.disabled; - var error = props.error; - var margin = props.margin; - - if (context && context.muiFormControl) { - if (typeof disabled === 'undefined') { - disabled = context.muiFormControl.disabled; - } - - if (typeof error === 'undefined') { - error = context.muiFormControl.error; - } - - if (typeof margin === 'undefined') { - margin = context.muiFormControl.margin; - } - } - - return { - disabled: disabled, - error: error, - margin: margin - }; -} - -var Input = function (_React$Component) { - (0, _inherits3.default)(Input, _React$Component); - - function Input() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Input); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Input.__proto__ || (0, _getPrototypeOf2.default)(Input)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - focused: false - }, _this.input = null, _this.handleFocus = function (event) { - // Fix an bug with IE11 where the focus/blur events are triggered - // while the input is disabled. - if (formControlState(_this.props, _this.context).disabled) { - event.stopPropagation(); - return; - } - - _this.setState({ focused: true }); - if (_this.props.onFocus) { - _this.props.onFocus(event); - } - }, _this.handleBlur = function (event) { - _this.setState({ focused: false }); - if (_this.props.onBlur) { - _this.props.onBlur(event); - } - }, _this.handleChange = function (event) { - if (!_this.isControlled) { - _this.checkDirty(_this.input); - } - - // Perform in the willUpdate - if (_this.props.onChange) { - _this.props.onChange(event); - } - }, _this.handleRefInput = function (node) { - _this.input = node; - - if (_this.props.inputRef) { - _this.props.inputRef(node); - } else if (_this.props.inputProps && _this.props.inputProps.ref) { - _this.props.inputProps.ref(node); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Input, [{ - key: 'getChildContext', - value: function getChildContext() { - // We are consuming the parent muiFormControl context. - // We don't want a child to consume it a second time. - return { - muiFormControl: null - }; - } - }, { - key: 'componentWillMount', - value: function componentWillMount() { - this.isControlled = this.props.value != null; - - if (this.isControlled) { - this.checkDirty(this.props); - } - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - if (!this.isControlled) { - this.checkDirty(this.input); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps, nextContext) { - // The blur won't fire when the disabled state is set on a focused input. - // We need to book keep the focused state manually. - if (!formControlState(this.props, this.context).disabled && formControlState(nextProps, nextContext).disabled) { - this.setState({ - focused: false - }); - } - } - }, { - key: 'componentWillUpdate', - value: function componentWillUpdate(nextProps, nextState, nextContext) { - if (this.isControlled) { - this.checkDirty(nextProps); - } // else performed in the onChange - - // Book keep the focused state. - if (!formControlState(this.props, this.context).disabled && formControlState(nextProps, nextContext).disabled) { - var muiFormControl = this.context.muiFormControl; - - if (muiFormControl && muiFormControl.onBlur) { - muiFormControl.onBlur(); - } - } - } - - // Holds the input reference - - }, { - key: 'checkDirty', - value: function checkDirty(obj) { - var muiFormControl = this.context.muiFormControl; - - - if (isDirty(obj)) { - if (muiFormControl && muiFormControl.onDirty) { - muiFormControl.onDirty(); - } - if (this.props.onDirty) { - this.props.onDirty(); - } - return; - } - - if (muiFormControl && muiFormControl.onClean) { - muiFormControl.onClean(); - } - if (this.props.onClean) { - this.props.onClean(); - } - } - }, { - key: 'render', - value: function render() { - var _classNames, _classNames2; - - var _props = this.props, - autoComplete = _props.autoComplete, - autoFocus = _props.autoFocus, - classes = _props.classes, - classNameProp = _props.className, - defaultValue = _props.defaultValue, - disabledProp = _props.disabled, - disableUnderline = _props.disableUnderline, - endAdornment = _props.endAdornment, - errorProp = _props.error, - fullWidth = _props.fullWidth, - id = _props.id, - inputComponent = _props.inputComponent, - _props$inputProps = _props.inputProps; - _props$inputProps = _props$inputProps === undefined ? {} : _props$inputProps; - var inputPropsClassName = _props$inputProps.className, - inputPropsProp = (0, _objectWithoutProperties3.default)(_props$inputProps, ['className']), - inputRef = _props.inputRef, - marginProp = _props.margin, - multiline = _props.multiline, - name = _props.name, - onBlur = _props.onBlur, - onChange = _props.onChange, - onClean = _props.onClean, - onDirty = _props.onDirty, - onFocus = _props.onFocus, - onKeyDown = _props.onKeyDown, - onKeyUp = _props.onKeyUp, - placeholder = _props.placeholder, - readOnly = _props.readOnly, - rows = _props.rows, - rowsMax = _props.rowsMax, - startAdornment = _props.startAdornment, - type = _props.type, - value = _props.value, - other = (0, _objectWithoutProperties3.default)(_props, ['autoComplete', 'autoFocus', 'classes', 'className', 'defaultValue', 'disabled', 'disableUnderline', 'endAdornment', 'error', 'fullWidth', 'id', 'inputComponent', 'inputProps', 'inputRef', 'margin', 'multiline', 'name', 'onBlur', 'onChange', 'onClean', 'onDirty', 'onFocus', 'onKeyDown', 'onKeyUp', 'placeholder', 'readOnly', 'rows', 'rowsMax', 'startAdornment', 'type', 'value']); - var muiFormControl = this.context.muiFormControl; - - var _formControlState = formControlState(this.props, this.context), - disabled = _formControlState.disabled, - error = _formControlState.error, - margin = _formControlState.margin; - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.error, error), (0, _defineProperty3.default)(_classNames, classes.fullWidth, fullWidth), (0, _defineProperty3.default)(_classNames, classes.focused, this.state.focused), (0, _defineProperty3.default)(_classNames, classes.formControl, muiFormControl), (0, _defineProperty3.default)(_classNames, classes.inkbar, !disableUnderline), (0, _defineProperty3.default)(_classNames, classes.multiline, multiline), (0, _defineProperty3.default)(_classNames, classes.underline, !disableUnderline), _classNames), classNameProp); - - var inputClassName = (0, _classnames2.default)(classes.input, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.inputDisabled, disabled), (0, _defineProperty3.default)(_classNames2, classes.inputType, type !== 'text'), (0, _defineProperty3.default)(_classNames2, classes.inputMultiline, multiline), (0, _defineProperty3.default)(_classNames2, classes.inputSearch, type === 'search'), (0, _defineProperty3.default)(_classNames2, classes.inputDense, margin === 'dense'), _classNames2), inputPropsClassName); - - var required = muiFormControl && muiFormControl.required === true; - - var InputComponent = 'input'; - var inputProps = (0, _extends3.default)({}, inputPropsProp, { - ref: this.handleRefInput - }); - - if (inputComponent) { - InputComponent = inputComponent; - inputProps = (0, _extends3.default)({ - // Rename ref to inputRef as we don't know the - // provided `inputComponent` structure. - inputRef: this.handleRefInput - }, inputProps, { - ref: null - }); - } else if (multiline) { - if (rows && !rowsMax) { - InputComponent = 'textarea'; - } else { - inputProps = (0, _extends3.default)({ - rowsMax: rowsMax, - textareaRef: this.handleRefInput - }, inputProps, { - ref: null - }); - InputComponent = _Textarea2.default; - } - } - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ onBlur: this.handleBlur, onFocus: this.handleFocus, className: className }, other), - startAdornment, - _react2.default.createElement(InputComponent, (0, _extends3.default)({ - autoComplete: autoComplete, - autoFocus: autoFocus, - className: inputClassName, - onChange: this.handleChange, - onKeyUp: onKeyUp, - onKeyDown: onKeyDown, - disabled: disabled, - required: required ? true : undefined, - value: value, - id: id, - name: name, - defaultValue: defaultValue, - placeholder: placeholder, - type: type, - readOnly: readOnly, - rows: rows, - 'aria-required': required, - 'aria-invalid': error - }, inputProps)), - endAdornment - ); - } - }]); - return Input; -}(_react2.default.Component); - -Input.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * This property helps users to fill forms faster, especially on mobile devices. - * The name can be confusing, as it's more like an autofill. - * You can learn more about it here: - * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill - */ - autoComplete: _propTypes2.default.string, - /** - * If `true`, the input will be focused during the first mount. - */ - autoFocus: _propTypes2.default.bool, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * The CSS class name of the wrapper element. - */ - className: _propTypes2.default.string, - /** - * The default input value, useful when not controlling the component. - */ - defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * If `true`, the input will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the input will not have an underline. - */ - disableUnderline: _propTypes2.default.bool, - /** - * End `InputAdornment` for this component. - */ - endAdornment: _propTypes2.default.node, - /** - * If `true`, the input will indicate an error. This is normally obtained via context from - * FormControl. - */ - error: _propTypes2.default.bool, - /** - * If `true`, the input will take up the full width of its container. - */ - fullWidth: _propTypes2.default.bool, - /** - * The id of the `input` element. - */ - id: _propTypes2.default.string, - /** - * The component used for the native input. - * Either a string to use a DOM element or a component. - */ - inputComponent: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Properties applied to the `input` element. - */ - inputProps: _propTypes2.default.object, - /** - * Use that property to pass a ref callback to the native input component. - */ - inputRef: _propTypes2.default.func, - /** - * If `dense`, will adjust vertical spacing. This is normally obtained via context from - * FormControl. - */ - margin: _propTypes2.default.oneOf(['dense', 'none']), - /** - * If `true`, a textarea element will be rendered. - */ - multiline: _propTypes2.default.bool, - /** - * Name attribute of the `input` element. - */ - name: _propTypes2.default.string, - /** - * @ignore - */ - onBlur: _propTypes2.default.func, - /** - * Callback fired when the value is changed. - * - * @param {object} event The event source of the callback - */ - onChange: _propTypes2.default.func, - /** - * TODO - */ - onClean: _propTypes2.default.func, - /** - * TODO - */ - onDirty: _propTypes2.default.func, - /** - * @ignore - */ - onFocus: _propTypes2.default.func, - /** - * @ignore - */ - onKeyDown: _propTypes2.default.func, - /** - * @ignore - */ - onKeyUp: _propTypes2.default.func, - /** - * The short hint displayed in the input before the user enters a value. - */ - placeholder: _propTypes2.default.string, - /** - * @ignore - */ - readOnly: _propTypes2.default.bool, - /** - * Number of rows to display when multiline option is set to true. - */ - rows: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * Maximum number of rows to display when multiline option is set to true. - */ - rowsMax: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * Start `InputAdornment` for this component. - */ - startAdornment: _propTypes2.default.node, - /** - * Type of the input element. It should be a valid HTML5 input type. - */ - type: _propTypes2.default.string, - /** - * The input value, required for a controlled component. - */ - value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) -} : {}; - -Input.muiName = 'Input'; - -Input.defaultProps = { - disableUnderline: false, - fullWidth: false, - multiline: false, - type: 'text' -}; - -Input.contextTypes = { - muiFormControl: _propTypes2.default.object -}; - -Input.childContextTypes = { - muiFormControl: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiInput' })(Input); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Input/InputAdornment.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - maxHeight: '2em', - alignItems: 'center' - }, - positionStart: { - marginRight: theme.spacing.unit - }, - positionEnd: { - marginLeft: theme.spacing.unit - } - }; -}; - -function InputAdornment(props) { - var _classNames; - - var children = props.children, - Component = props.component, - classes = props.classes, - className = props.className, - disableTypography = props.disableTypography, - position = props.position, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'component', 'classes', 'className', 'disableTypography', 'position']); - - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.positionStart, position === 'start'), (0, _defineProperty3.default)(_classNames, classes.positionEnd, position === 'end'), _classNames), className) - }, other), - typeof children === 'string' && !disableTypography ? _react2.default.createElement( - _Typography2.default, - { color: 'textSecondary' }, - children - ) : children - ); -} - -InputAdornment.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally an `IconButton` or string. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If children is a string then disable wrapping in a Typography component. - */ - disableTypography: _propTypes2.default.bool, - /** - * The position this adornment should appear relative to the `Input`. - */ - position: _propTypes2.default.oneOf(['start', 'end']) -} : {}; - -InputAdornment.defaultProps = { - component: 'div', - disableTypography: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiInputAdornment' })(InputAdornment); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Input/InputLabel.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Form = __webpack_require__("./node_modules/material-ui/Form/index.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - transformOrigin: 'top left' - }, - formControl: { - position: 'absolute', - left: 0, - top: 0, - // slight alteration to spec spacing to match visual spec result - transform: 'translate(0, ' + theme.spacing.unit * 3 + 'px) scale(1)' - }, - labelDense: { - // Compensation for the `Input.inputDense` style. - transform: 'translate(0, ' + (theme.spacing.unit * 2.5 + 1) + 'px) scale(1)' - }, - shrink: { - transform: 'translate(0, 1.5px) scale(0.75)', - transformOrigin: 'top left' - }, - animated: { - transition: theme.transitions.create('transform', { - duration: theme.transitions.duration.shorter, - easing: theme.transitions.easing.easeOut - }) - }, - disabled: { - color: theme.palette.text.disabled - } - }; -}; // @inheritedComponent FormLabel - -function InputLabel(props, context) { - var _classNames; - - var children = props.children, - classes = props.classes, - classNameProp = props.className, - disableAnimation = props.disableAnimation, - disabled = props.disabled, - FormControlClasses = props.FormControlClasses, - marginProp = props.margin, - shrinkProp = props.shrink, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'disableAnimation', 'disabled', 'FormControlClasses', 'margin', 'shrink']); - var muiFormControl = context.muiFormControl; - - var shrink = shrinkProp; - - if (typeof shrink === 'undefined' && muiFormControl) { - shrink = muiFormControl.dirty || muiFormControl.focused || muiFormControl.adornedStart; - } - - var margin = marginProp; - if (typeof margin === 'undefined' && muiFormControl) { - margin = muiFormControl.margin; - } - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.formControl, muiFormControl), (0, _defineProperty3.default)(_classNames, classes.animated, !disableAnimation), (0, _defineProperty3.default)(_classNames, classes.shrink, shrink), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.labelDense, margin === 'dense'), _classNames), classNameProp); - - return _react2.default.createElement( - _Form.FormLabel, - (0, _extends3.default)({ 'data-shrink': shrink, className: className, classes: FormControlClasses }, other), - children - ); -} - -InputLabel.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The contents of the `InputLabel`. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the transition animation is disabled. - */ - disableAnimation: _propTypes2.default.bool, - /** - * If `true`, apply disabled class. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the label will be displayed in an error state. - */ - error: _propTypes2.default.bool, - /** - * If `true`, the input of this label is focused. - */ - focused: _propTypes2.default.bool, - /** - * `classes` property applied to the `FormControl` element. - */ - FormControlClasses: _propTypes2.default.object, - /** - * If `dense`, will adjust vertical spacing. This is normally obtained via context from - * FormControl. - */ - margin: _propTypes2.default.oneOf(['dense']), - /** - * if `true`, the label will indicate that the input is required. - */ - required: _propTypes2.default.bool, - /** - * If `true`, the label is shrunk. - */ - shrink: _propTypes2.default.bool -} : {}; - -InputLabel.defaultProps = { - disabled: false, - disableAnimation: false -}; - -InputLabel.contextTypes = { - muiFormControl: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiInputLabel' })(InputLabel); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Input/Textarea.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var ROWS_HEIGHT = 19; - -var styles = exports.styles = { - root: { - position: 'relative', // because the shadow has position: 'absolute', - width: '100%' - }, - textarea: { - width: '100%', - height: '100%', - resize: 'none', - font: 'inherit', - padding: 0, - cursor: 'inherit', - boxSizing: 'border-box', - lineHeight: 'inherit', - border: 'none', - outline: 'none', - background: 'transparent' - }, - shadow: { - resize: 'none', - // Overflow also needed to here to remove the extra row - // added to textareas in Firefox. - overflow: 'hidden', - // Visibility needed to hide the extra text area on ipads - visibility: 'hidden', - position: 'absolute', - height: 'auto', - whiteSpace: 'pre-wrap' - } -}; - -/** - * @ignore - internal component. - */ - -var Textarea = function (_React$Component) { - (0, _inherits3.default)(Textarea, _React$Component); - - function Textarea() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Textarea); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Textarea.__proto__ || (0, _getPrototypeOf2.default)(Textarea)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - height: null - }, _this.shadow = null, _this.singlelineShadow = null, _this.input = null, _this.value = null, _this.handleResize = (0, _debounce2.default)(function (event) { - _this.syncHeightWithShadow(event); - }, 166), _this.handleRefInput = function (node) { - _this.input = node; - if (_this.props.textareaRef) { - _this.props.textareaRef(node); - } - }, _this.handleRefSinglelineShadow = function (node) { - _this.singlelineShadow = node; - }, _this.handleRefShadow = function (node) { - _this.shadow = node; - }, _this.handleChange = function (event) { - _this.value = event.target.value; - - if (typeof _this.props.value === 'undefined' && _this.shadow) { - // The component is not controlled, we need to update the shallow value. - _this.shadow.value = _this.value; - _this.syncHeightWithShadow(event); - } - - if (_this.props.onChange) { - _this.props.onChange(event); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Textarea, [{ - key: 'componentWillMount', - value: function componentWillMount() { - // expects the components it renders to respond to 'value' - // so that it can check whether they are dirty - this.value = this.props.value || this.props.defaultValue || ''; - this.setState({ - height: Number(this.props.rows) * ROWS_HEIGHT - }); - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - this.syncHeightWithShadow(null); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - if (nextProps.value !== this.props.value || Number(nextProps.rowsMax) !== Number(this.props.rowsMax)) { - this.syncHeightWithShadow(null, nextProps); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.handleResize.cancel(); - } - }, { - key: 'syncHeightWithShadow', - value: function syncHeightWithShadow(event) { - var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props; - - if (this.shadow && this.singlelineShadow) { - // The component is controlled, we need to update the shallow value. - if (typeof this.props.value !== 'undefined') { - this.shadow.value = props.value == null ? '' : String(props.value); - } - - var lineHeight = this.singlelineShadow.scrollHeight; - var newHeight = this.shadow.scrollHeight; - - // Guarding for jsdom, where scrollHeight isn't present. - // See https://github.com/tmpvar/jsdom/issues/1013 - if (newHeight === undefined) { - return; - } - - if (Number(props.rowsMax) >= Number(props.rows)) { - newHeight = Math.min(Number(props.rowsMax) * lineHeight, newHeight); - } - - newHeight = Math.max(newHeight, lineHeight); - - if (this.state.height !== newHeight) { - this.setState({ - height: newHeight - }); - } - } - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - classes = _props.classes, - className = _props.className, - defaultValue = _props.defaultValue, - onChange = _props.onChange, - rows = _props.rows, - rowsMax = _props.rowsMax, - textareaRef = _props.textareaRef, - value = _props.value, - other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'defaultValue', 'onChange', 'rows', 'rowsMax', 'textareaRef', 'value']); - - - return _react2.default.createElement( - 'div', - { className: classes.root, style: { height: this.state.height } }, - _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), - _react2.default.createElement('textarea', { - ref: this.handleRefSinglelineShadow, - className: (0, _classnames2.default)(classes.shadow, classes.textarea), - tabIndex: -1, - rows: '1', - readOnly: true, - 'aria-hidden': 'true', - value: '' - }), - _react2.default.createElement('textarea', { - ref: this.handleRefShadow, - className: (0, _classnames2.default)(classes.shadow, classes.textarea), - tabIndex: -1, - rows: rows, - 'aria-hidden': 'true', - readOnly: true, - defaultValue: defaultValue, - value: value - }), - _react2.default.createElement('textarea', (0, _extends3.default)({ - rows: rows, - className: (0, _classnames2.default)(classes.textarea, className), - defaultValue: defaultValue, - value: value, - onChange: this.handleChange, - ref: this.handleRefInput - }, other)) - ); - } - }]); - return Textarea; -}(_react2.default.Component); - -Textarea.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - */ - defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * @ignore - */ - disabled: _propTypes2.default.bool, - /** - * @ignore - */ - onChange: _propTypes2.default.func, - /** - * Number of rows to display when multiline option is set to true. - */ - rows: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * Maximum number of rows to display when multiline option is set to true. - */ - rowsMax: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * Use that property to pass a ref callback to the native textarea element. - */ - textareaRef: _propTypes2.default.func, - /** - * @ignore - */ - value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]) -} : {}; - -Textarea.defaultProps = { - rows: 1 -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTextarea' })(Textarea); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Input/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Input = __webpack_require__("./node_modules/material-ui/Input/Input.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Input).default; - } -}); - -var _InputAdornment = __webpack_require__("./node_modules/material-ui/Input/InputAdornment.js"); - -Object.defineProperty(exports, 'InputAdornment', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_InputAdornment).default; - } -}); - -var _InputLabel = __webpack_require__("./node_modules/material-ui/Input/InputLabel.js"); - -Object.defineProperty(exports, 'InputLabel', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_InputLabel).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/List/List.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - flex: '1 1 auto', - listStyle: 'none', - margin: 0, - padding: 0, - position: 'relative' - }, - padding: { - paddingTop: theme.spacing.unit, - paddingBottom: theme.spacing.unit - }, - dense: { - paddingTop: theme.spacing.unit / 2, - paddingBottom: theme.spacing.unit / 2 - }, - subheader: { - paddingTop: 0 - } - }; -}; - -var List = function (_React$Component) { - (0, _inherits3.default)(List, _React$Component); - - function List() { - (0, _classCallCheck3.default)(this, List); - return (0, _possibleConstructorReturn3.default)(this, (List.__proto__ || (0, _getPrototypeOf2.default)(List)).apply(this, arguments)); - } - - (0, _createClass3.default)(List, [{ - key: 'getChildContext', - value: function getChildContext() { - return { - dense: this.props.dense - }; - } - }, { - key: 'render', - value: function render() { - var _classNames; - - var _props = this.props, - children = _props.children, - classes = _props.classes, - classNameProp = _props.className, - Component = _props.component, - dense = _props.dense, - disablePadding = _props.disablePadding, - subheader = _props.subheader, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'component', 'dense', 'disablePadding', 'subheader']); - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.dense, dense && !disablePadding), (0, _defineProperty3.default)(_classNames, classes.padding, !disablePadding), (0, _defineProperty3.default)(_classNames, classes.subheader, subheader), _classNames), classNameProp); - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ className: className }, other), - subheader, - children - ); - } - }]); - return List; -}(_react2.default.Component); - -List.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, compact vertical padding designed for keyboard and mouse input will be used for - * the list and list items. The property is available to descendant components as the - * `dense` context. - */ - dense: _propTypes2.default.bool, - /** - * If `true`, vertical padding will be removed from the list. - */ - disablePadding: _propTypes2.default.bool, - /** - * The content of the subheader, normally `ListSubheader`. - */ - subheader: _propTypes2.default.node -} : {}; - -List.defaultProps = { - component: 'ul', - dense: false, - disablePadding: false -}; - -List.childContextTypes = { - dense: _propTypes2.default.bool -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiList' })(List); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/List/ListItem.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - justifyContent: 'flex-start', - alignItems: 'center', - position: 'relative', - textDecoration: 'none', - width: '100%', - boxSizing: 'border-box', - textAlign: 'left' - }, - container: { - position: 'relative' - }, - keyboardFocused: { - backgroundColor: theme.palette.action.hover - }, - default: { - paddingTop: 12, - paddingBottom: 12 - }, - dense: { - paddingTop: theme.spacing.unit, - paddingBottom: theme.spacing.unit - }, - disabled: { - opacity: 0.5 - }, - divider: { - borderBottom: '1px solid ' + theme.palette.divider, - backgroundClip: 'padding-box' - }, - gutters: { - paddingLeft: theme.spacing.unit * 2, - paddingRight: theme.spacing.unit * 2 - }, - button: { - transition: theme.transitions.create('background-color', { - duration: theme.transitions.duration.shortest - }), - '&:hover': { - textDecoration: 'none', - backgroundColor: theme.palette.action.hover, - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: 'transparent' - } - } - }, - secondaryAction: { - // Add some space to avoid collision as `ListItemSecondaryAction` - // is absolutely positionned. - paddingRight: theme.spacing.unit * 4 - } - }; -}; - -var ListItem = function (_React$Component) { - (0, _inherits3.default)(ListItem, _React$Component); - - function ListItem() { - (0, _classCallCheck3.default)(this, ListItem); - return (0, _possibleConstructorReturn3.default)(this, (ListItem.__proto__ || (0, _getPrototypeOf2.default)(ListItem)).apply(this, arguments)); - } - - (0, _createClass3.default)(ListItem, [{ - key: 'getChildContext', - value: function getChildContext() { - return { - dense: this.props.dense || this.context.dense || false - }; - } - }, { - key: 'render', - value: function render() { - var _classNames; - - var _props = this.props, - button = _props.button, - childrenProp = _props.children, - classes = _props.classes, - classNameProp = _props.className, - componentProp = _props.component, - ContainerComponent = _props.ContainerComponent, - ContainerProps = _props.ContainerProps, - dense = _props.dense, - disabled = _props.disabled, - disableGutters = _props.disableGutters, - divider = _props.divider, - other = (0, _objectWithoutProperties3.default)(_props, ['button', 'children', 'classes', 'className', 'component', 'ContainerComponent', 'ContainerProps', 'dense', 'disabled', 'disableGutters', 'divider']); - - - var isDense = dense || this.context.dense || false; - var children = _react2.default.Children.toArray(childrenProp); - var hasAvatar = children.some(function (value) { - return (0, _reactHelpers.isMuiElement)(value, ['ListItemAvatar']); - }); - var hasSecondaryAction = children.length && (0, _reactHelpers.isMuiElement)(children[children.length - 1], ['ListItemSecondaryAction']); - - var className = (0, _classnames2.default)(classes.root, isDense || hasAvatar ? classes.dense : classes.default, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.gutters, !disableGutters), (0, _defineProperty3.default)(_classNames, classes.divider, divider), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.button, button), (0, _defineProperty3.default)(_classNames, classes.secondaryAction, hasSecondaryAction), _classNames), classNameProp); - - var componentProps = (0, _extends3.default)({ className: className, disabled: disabled }, other); - var Component = componentProp || 'li'; - - if (button) { - componentProps.component = componentProp || 'div'; - componentProps.keyboardFocusedClassName = classes.keyboardFocused; - Component = _ButtonBase2.default; - } - - if (hasSecondaryAction) { - Component = Component !== _ButtonBase2.default && !componentProp ? 'div' : Component; - - return _react2.default.createElement( - ContainerComponent, - (0, _extends3.default)({ className: classes.container }, ContainerProps), - _react2.default.createElement( - Component, - componentProps, - children - ), - children.pop() - ); - } - - return _react2.default.createElement( - Component, - componentProps, - children - ); - } - }]); - return ListItem; -}(_react2.default.Component); - -ListItem.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the list item will be a button (using `ButtonBase`). - */ - button: _propTypes2.default.bool, - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - * By default, it's a `li` when `button` is `false` and a `div` when `button` is `true`. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * The container component. Useful when a `ListItemSecondaryAction` is rendered. - */ - ContainerComponent: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Properties applied to the container element when the component - * is used to display a `ListItemSecondaryAction`. - */ - ContainerProps: _propTypes2.default.object, - /** - * If `true`, compact vertical padding designed for keyboard and mouse input will be used. - */ - dense: _propTypes2.default.bool, - /** - * @ignore - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the left and right padding is removed. - */ - disableGutters: _propTypes2.default.bool, - /** - * If `true`, a 1px light border is added to the bottom of the list item. - */ - divider: _propTypes2.default.bool -} : {}; - -ListItem.defaultProps = { - button: false, - ContainerComponent: 'li', - dense: false, - disabled: false, - disableGutters: false, - divider: false -}; - -ListItem.contextTypes = { - dense: _propTypes2.default.bool -}; - -ListItem.childContextTypes = { - dense: _propTypes2.default.bool -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItem' })(ListItem); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/List/ListItemAvatar.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - width: 36, - height: 36, - fontSize: theme.typography.pxToRem(18), - marginRight: 4 - }, - icon: { - width: 20, - height: 20, - fontSize: theme.typography.pxToRem(20) - } - }; -}; - -/** - * It's a simple wrapper to apply the `dense` mode styles to `Avatar`. - */ -function ListItemAvatar(props, context) { - var children = props.children, - classes = props.classes, - classNameProp = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); - - - if (context.dense === undefined) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, 'Material-UI: is a simple wrapper to apply the dense styles\n to . You do not need it unless you are controlling the dense property.') : void 0; - return props.children; - } - - return _react2.default.cloneElement(children, (0, _extends3.default)({ - className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.root, context.dense), classNameProp, children.props.className), - childrenClassName: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.icon, context.dense), children.props.childrenClassName) - }, other)); -} - -ListItemAvatar.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally `Avatar`. - */ - children: _propTypes2.default.element.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -ListItemAvatar.contextTypes = { - dense: _propTypes2.default.bool -}; - -ListItemAvatar.muiName = 'ListItemAvatar'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemAvatar' })(ListItemAvatar); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/List/ListItemIcon.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - height: 24, - marginRight: theme.spacing.unit * 2, - width: 24, - color: theme.palette.action.active, - flexShrink: 0 - } - }; -}; - -/** - * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`. - */ -function ListItemIcon(props) { - var children = props.children, - classes = props.classes, - classNameProp = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); - - - return _react2.default.cloneElement(children, (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, classNameProp, children.props.className) - }, other)); -} - -ListItemIcon.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally `Icon`, `SvgIcon`, - * or a `material-ui-icons` SVG icon component. - */ - children: _propTypes2.default.element.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemIcon' })(ListItemIcon); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/List/ListItemSecondaryAction.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - position: 'absolute', - right: 4, - top: '50%', - marginTop: -theme.spacing.unit * 3 - } - }; -}; - -function ListItemSecondaryAction(props) { - var children = props.children, - classes = props.classes, - className = props.className, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - children - ); -} - -ListItemSecondaryAction.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally an `IconButton` or selection control. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string -} : {}; - -ListItemSecondaryAction.muiName = 'ListItemSecondaryAction'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemSecondaryAction' })(ListItemSecondaryAction); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/List/ListItemText.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - flex: '1 1 auto', - minWidth: 0, - padding: '0 16px', - '&:first-child': { - paddingLeft: 0 - } - }, - inset: { - '&:first-child': { - paddingLeft: theme.spacing.unit * 7 - } - }, - dense: { - fontSize: theme.typography.pxToRem(13) - }, - primary: { - '&$textDense': { - fontSize: 'inherit' - } - }, - secondary: { - '&$textDense': { - fontSize: 'inherit' - } - }, - textDense: {} - }; -}; - -function ListItemText(props, context) { - var _classNames; - - var classes = props.classes, - classNameProp = props.className, - disableTypography = props.disableTypography, - inset = props.inset, - primary = props.primary, - secondary = props.secondary, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'disableTypography', 'inset', 'primary', 'secondary']); - var dense = context.dense; - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.dense, dense), (0, _defineProperty3.default)(_classNames, classes.inset, inset), _classNames), classNameProp); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - primary && (disableTypography ? primary : _react2.default.createElement( - _Typography2.default, - { - variant: 'subheading', - className: (0, _classnames2.default)(classes.primary, (0, _defineProperty3.default)({}, classes.textDense, dense)) - }, - primary - )), - secondary && (disableTypography ? secondary : _react2.default.createElement( - _Typography2.default, - { - variant: 'body1', - className: (0, _classnames2.default)(classes.secondary, (0, _defineProperty3.default)({}, classes.textDense, dense)), - color: 'textSecondary' - }, - secondary - )) - ); -} - -ListItemText.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the children won't be wrapped by a typography component. - * For instance, that can be useful to can render an h4 instead of a - */ - disableTypography: _propTypes2.default.bool, - /** - * If `true`, the children will be indented. - * This should be used if there is no left avatar or left icon. - */ - inset: _propTypes2.default.bool, - primary: _propTypes2.default.node, - secondary: _propTypes2.default.node -} : {}; - -ListItemText.defaultProps = { - disableTypography: false, - inset: false, - primary: false, - secondary: false -}; - -ListItemText.contextTypes = { - dense: _propTypes2.default.bool -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListItemText' })(ListItemText); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/List/ListSubheader.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - boxSizing: 'border-box', - lineHeight: '48px', - listStyle: 'none', - paddingLeft: theme.spacing.unit * 2, - paddingRight: theme.spacing.unit * 2, - color: theme.palette.text.secondary, - fontFamily: theme.typography.fontFamily, - fontWeight: theme.typography.fontWeightMedium, - fontSize: theme.typography.pxToRem(theme.typography.fontSize) - }, - colorPrimary: { - color: theme.palette.primary.main - }, - colorInherit: { - color: 'inherit' - }, - inset: { - paddingLeft: theme.spacing.unit * 9 - }, - sticky: { - position: 'sticky', - top: 0, - zIndex: 1, - backgroundColor: 'inherit' - } - }; -}; - -function ListSubheader(props) { - var _classNames; - - var classes = props.classes, - classNameProp = props.className, - color = props.color, - Component = props.component, - disableSticky = props.disableSticky, - inset = props.inset, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color', 'component', 'disableSticky', 'inset']); - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default'), (0, _defineProperty3.default)(_classNames, classes.inset, inset), (0, _defineProperty3.default)(_classNames, classes.sticky, !disableSticky), _classNames), classNameProp); - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); -} - -ListSubheader.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['default', 'primary', 'inherit']), - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the List Subheader will not stick to the top during scroll. - */ - disableSticky: _propTypes2.default.bool, - /** - * If `true`, the List Subheader will be indented. - */ - inset: _propTypes2.default.bool -} : {}; - -ListSubheader.defaultProps = { - color: 'default', - component: 'li', - disableSticky: false, - inset: false -}; - -ListSubheader.muiName = 'ListSubheader'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiListSubheader' })(ListSubheader); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/List/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _List = __webpack_require__("./node_modules/material-ui/List/List.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_List).default; - } -}); - -var _ListItem = __webpack_require__("./node_modules/material-ui/List/ListItem.js"); - -Object.defineProperty(exports, 'ListItem', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ListItem).default; - } -}); - -var _ListItemAvatar = __webpack_require__("./node_modules/material-ui/List/ListItemAvatar.js"); - -Object.defineProperty(exports, 'ListItemAvatar', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ListItemAvatar).default; - } -}); - -var _ListItemText = __webpack_require__("./node_modules/material-ui/List/ListItemText.js"); - -Object.defineProperty(exports, 'ListItemText', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ListItemText).default; - } -}); - -var _ListItemIcon = __webpack_require__("./node_modules/material-ui/List/ListItemIcon.js"); - -Object.defineProperty(exports, 'ListItemIcon', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ListItemIcon).default; - } -}); - -var _ListItemSecondaryAction = __webpack_require__("./node_modules/material-ui/List/ListItemSecondaryAction.js"); - -Object.defineProperty(exports, 'ListItemSecondaryAction', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ListItemSecondaryAction).default; - } -}); - -var _ListSubheader = __webpack_require__("./node_modules/material-ui/List/ListSubheader.js"); - -Object.defineProperty(exports, 'ListSubheader', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ListSubheader).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Menu/Menu.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _scrollbarSize = __webpack_require__("./node_modules/dom-helpers/util/scrollbarSize.js"); - -var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Popover = __webpack_require__("./node_modules/material-ui/Popover/index.js"); - -var _Popover2 = _interopRequireDefault(_Popover); - -var _MenuList = __webpack_require__("./node_modules/material-ui/Menu/MenuList.js"); - -var _MenuList2 = _interopRequireDefault(_MenuList); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var RTL_ORIGIN = { - vertical: 'top', - horizontal: 'right' -}; // @inheritedComponent Popover - -var LTR_ORIGIN = { - vertical: 'top', - horizontal: 'left' -}; - -var styles = exports.styles = { - paper: { - // specZ: The maximum height of a simple menu should be one or more rows less than the view - // height. This ensures a tappable area outside of the simple menu with which to dismiss - // the menu. - maxHeight: 'calc(100vh - 96px)', - // Add iOS momentum scrolling. - WebkitOverflowScrolling: 'touch' - } -}; - -var Menu = function (_React$Component) { - (0, _inherits3.default)(Menu, _React$Component); - - function Menu() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Menu); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Menu.__proto__ || (0, _getPrototypeOf2.default)(Menu)).call.apply(_ref, [this].concat(args))), _this), _this.getContentAnchorEl = function () { - if (!_this.menuList || !_this.menuList.selectedItem) { - return (0, _reactDom.findDOMNode)(_this.menuList).firstChild; - } - - return (0, _reactDom.findDOMNode)(_this.menuList.selectedItem); - }, _this.menuList = undefined, _this.focus = function () { - if (_this.menuList && _this.menuList.selectedItem) { - (0, _reactDom.findDOMNode)(_this.menuList.selectedItem).focus(); - return; - } - - var menuList = (0, _reactDom.findDOMNode)(_this.menuList); - if (menuList && menuList.firstChild) { - menuList.firstChild.focus(); - } - }, _this.handleEnter = function (element) { - var theme = _this.props.theme; - - var menuList = (0, _reactDom.findDOMNode)(_this.menuList); - - // Focus so the scroll computation of the Popover works as expected. - _this.focus(); - - // Let's ignore that piece of logic if users are already overriding the width - // of the menu. - if (menuList && element.clientHeight < menuList.clientHeight && !menuList.style.width) { - var size = (0, _scrollbarSize2.default)() + 'px'; - menuList.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = size; - menuList.style.width = 'calc(100% + ' + size + ')'; - } - - if (_this.props.onEnter) { - _this.props.onEnter(element); - } - }, _this.handleListKeyDown = function (event, key) { - if (key === 'tab') { - event.preventDefault(); - - if (_this.props.onClose) { - _this.props.onClose(event); - } - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Menu, [{ - key: 'componentDidMount', - value: function componentDidMount() { - if (this.props.open) { - this.focus(); - } - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - children = _props.children, - classes = _props.classes, - MenuListProps = _props.MenuListProps, - onEnter = _props.onEnter, - _props$PaperProps = _props.PaperProps, - PaperProps = _props$PaperProps === undefined ? {} : _props$PaperProps, - PopoverClasses = _props.PopoverClasses, - theme = _props.theme, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'MenuListProps', 'onEnter', 'PaperProps', 'PopoverClasses', 'theme']); - - - return _react2.default.createElement( - _Popover2.default, - (0, _extends3.default)({ - getContentAnchorEl: this.getContentAnchorEl, - classes: PopoverClasses, - onEnter: this.handleEnter, - anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN, - transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN, - PaperProps: (0, _extends3.default)({}, PaperProps, { - classes: (0, _extends3.default)({}, PaperProps.classes, { - root: classes.paper - }) - }) - }, other), - _react2.default.createElement( - _MenuList2.default, - (0, _extends3.default)({ - role: 'menu', - onKeyDown: this.handleListKeyDown - }, MenuListProps, { - ref: function ref(node) { - _this2.menuList = node; - } - }), - children - ) - ); - } - }]); - return Menu; -}(_react2.default.Component); - -Menu.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The DOM element used to set the position of the menu. - */ - anchorEl: _propTypes2.default.object, - /** - * Menu contents, normally `MenuItem`s. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * Properties applied to the `MenuList` element. - */ - MenuListProps: _propTypes2.default.object, - /** - * Callback fired when the component requests to be closed. - * - * @param {object} event The event source of the callback - */ - onClose: _propTypes2.default.func, - /** - * Callback fired before the Menu enters. - */ - onEnter: _propTypes2.default.func, - /** - * Callback fired when the Menu has entered. - */ - onEntered: _propTypes2.default.func, - /** - * Callback fired when the Menu is entering. - */ - onEntering: _propTypes2.default.func, - /** - * Callback fired before the Menu exits. - */ - onExit: _propTypes2.default.func, - /** - * Callback fired when the Menu has exited. - */ - onExited: _propTypes2.default.func, - /** - * Callback fired when the Menu is exiting. - */ - onExiting: _propTypes2.default.func, - /** - * If `true`, the menu is visible. - */ - open: _propTypes2.default.bool.isRequired, - /** - * @ignore - */ - PaperProps: _propTypes2.default.object, - /** - * `classes` property applied to the `Popover` element. - */ - PopoverClasses: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The length of the transition in `ms`, or 'auto' - */ - transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) -} : {}; - -Menu.defaultProps = { - transitionDuration: 'auto' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiMenu', withTheme: true })(Menu); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Menu/MenuItem.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ListItem = __webpack_require__("./node_modules/material-ui/List/ListItem.js"); - -var _ListItem2 = _interopRequireDefault(_ListItem); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: (0, _extends3.default)({}, theme.typography.subheading, { - height: theme.spacing.unit * 3, - boxSizing: 'content-box', - width: 'auto', - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap', - '&$selected': { - backgroundColor: theme.palette.action.selected - } - }), - selected: {} - }; -}; // @inheritedComponent ListItem - -function MenuItem(props) { - var classes = props.classes, - classNameProp = props.className, - component = props.component, - selected = props.selected, - role = props.role, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'selected', 'role']); - - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.selected, selected), classNameProp); - - return _react2.default.createElement(_ListItem2.default, (0, _extends3.default)({ - button: true, - role: role, - tabIndex: -1, - className: className, - component: component - }, other)); -} - -MenuItem.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Menu item contents. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * @ignore - */ - role: _propTypes2.default.string, - /** - * Use to apply selected styling. - */ - selected: _propTypes2.default.bool -} : {}; - -MenuItem.defaultProps = { - component: 'li', - role: 'menuitem', - selected: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiMenuItem' })(MenuItem); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Menu/MenuList.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _keycode = __webpack_require__("./node_modules/keycode/index.js"); - -var _keycode2 = _interopRequireDefault(_keycode); - -var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); - -var _contains2 = _interopRequireDefault(_contains); - -var _activeElement = __webpack_require__("./node_modules/dom-helpers/activeElement.js"); - -var _activeElement2 = _interopRequireDefault(_activeElement); - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -var _List = __webpack_require__("./node_modules/material-ui/List/index.js"); - -var _List2 = _interopRequireDefault(_List); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent List - -var MenuList = function (_React$Component) { - (0, _inherits3.default)(MenuList, _React$Component); - - function MenuList() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, MenuList); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = MenuList.__proto__ || (0, _getPrototypeOf2.default)(MenuList)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - currentTabIndex: undefined - }, _this.list = undefined, _this.selectedItem = undefined, _this.blurTimer = undefined, _this.handleBlur = function (event) { - _this.blurTimer = setTimeout(function () { - if (_this.list) { - var list = (0, _reactDom.findDOMNode)(_this.list); - var currentFocus = (0, _activeElement2.default)((0, _ownerDocument2.default)(list)); - if (!(0, _contains2.default)(list, currentFocus)) { - _this.resetTabIndex(); - } - } - }, 30); - - if (_this.props.onBlur) { - _this.props.onBlur(event); - } - }, _this.handleKeyDown = function (event) { - var list = (0, _reactDom.findDOMNode)(_this.list); - var key = (0, _keycode2.default)(event); - var currentFocus = (0, _activeElement2.default)((0, _ownerDocument2.default)(list)); - - if ((key === 'up' || key === 'down') && (!currentFocus || currentFocus && !(0, _contains2.default)(list, currentFocus))) { - if (_this.selectedItem) { - (0, _reactDom.findDOMNode)(_this.selectedItem).focus(); - } else { - list.firstChild.focus(); - } - } else if (key === 'down') { - event.preventDefault(); - if (currentFocus.nextElementSibling) { - currentFocus.nextElementSibling.focus(); - } - } else if (key === 'up') { - event.preventDefault(); - if (currentFocus.previousElementSibling) { - currentFocus.previousElementSibling.focus(); - } - } - - if (_this.props.onKeyDown) { - _this.props.onKeyDown(event, key); - } - }, _this.handleItemFocus = function (event) { - var list = (0, _reactDom.findDOMNode)(_this.list); - if (list) { - for (var i = 0; i < list.children.length; i += 1) { - if (list.children[i] === event.currentTarget) { - _this.setTabIndex(i); - break; - } - } - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(MenuList, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.resetTabIndex(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearTimeout(this.blurTimer); - } - }, { - key: 'setTabIndex', - value: function setTabIndex(index) { - this.setState({ currentTabIndex: index }); - } - }, { - key: 'focus', - value: function focus() { - var currentTabIndex = this.state.currentTabIndex; - - var list = (0, _reactDom.findDOMNode)(this.list); - if (!list || !list.children || !list.firstChild) { - return; - } - - if (currentTabIndex && currentTabIndex >= 0) { - list.children[currentTabIndex].focus(); - } else { - list.firstChild.focus(); - } - } - }, { - key: 'resetTabIndex', - value: function resetTabIndex() { - var list = (0, _reactDom.findDOMNode)(this.list); - var currentFocus = (0, _activeElement2.default)((0, _ownerDocument2.default)(list)); - var items = [].concat((0, _toConsumableArray3.default)(list.children)); - var currentFocusIndex = items.indexOf(currentFocus); - - if (currentFocusIndex !== -1) { - return this.setTabIndex(currentFocusIndex); - } - - if (this.selectedItem) { - return this.setTabIndex(items.indexOf((0, _reactDom.findDOMNode)(this.selectedItem))); - } - - return this.setTabIndex(0); - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - children = _props.children, - className = _props.className, - onBlur = _props.onBlur, - onKeyDown = _props.onKeyDown, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'className', 'onBlur', 'onKeyDown']); - - - return _react2.default.createElement( - _List2.default, - (0, _extends3.default)({ - role: 'menu', - ref: function ref(node) { - _this2.list = node; - }, - className: className, - onKeyDown: this.handleKeyDown, - onBlur: this.handleBlur - }, other), - _react2.default.Children.map(children, function (child, index) { - if (!_react2.default.isValidElement(child)) { - return null; - } - - return _react2.default.cloneElement(child, { - tabIndex: index === _this2.state.currentTabIndex ? 0 : -1, - ref: child.props.selected ? function (node) { - _this2.selectedItem = node; - } : undefined, - onFocus: _this2.handleItemFocus - }); - }) - ); - } - }]); - return MenuList; -}(_react2.default.Component); - -MenuList.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * MenuList contents, normally `MenuItem`s. - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - */ - onBlur: _propTypes2.default.func, - /** - * @ignore - */ - onKeyDown: _propTypes2.default.func -} : {}; - -exports.default = MenuList; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Menu/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Menu = __webpack_require__("./node_modules/material-ui/Menu/Menu.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Menu).default; - } -}); - -var _MenuList = __webpack_require__("./node_modules/material-ui/Menu/MenuList.js"); - -Object.defineProperty(exports, 'MenuList', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_MenuList).default; - } -}); - -var _MenuItem = __webpack_require__("./node_modules/material-ui/Menu/MenuItem.js"); - -Object.defineProperty(exports, 'MenuItem', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_MenuItem).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/MobileStepper/MobileStepper.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _Progress = __webpack_require__("./node_modules/material-ui/Progress/index.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - flexDirection: 'row', - justifyContent: 'space-between', - alignItems: 'center', - background: theme.palette.background.default, - padding: theme.spacing.unit - }, - positionBottom: { - position: 'fixed', - bottom: 0, - left: 0, - right: 0, - zIndex: theme.zIndex.mobileStepper - }, - positionTop: { - position: 'fixed', - top: 0, - left: 0, - right: 0, - zIndex: theme.zIndex.mobileStepper - }, - positionStatic: {}, - dots: { - display: 'flex', - flexDirection: 'row' - }, - dot: { - backgroundColor: theme.palette.action.disabled, - borderRadius: '50%', - width: theme.spacing.unit, - height: theme.spacing.unit, - margin: '0 2px' - }, - dotActive: { - backgroundColor: theme.palette.primary.main - }, - progress: { - width: '50%' - } - }; -}; // @inheritedComponent Paper - -function MobileStepper(props) { - var activeStep = props.activeStep, - backButton = props.backButton, - classes = props.classes, - classNameProp = props.className, - nextButton = props.nextButton, - position = props.position, - steps = props.steps, - variant = props.variant, - other = (0, _objectWithoutProperties3.default)(props, ['activeStep', 'backButton', 'classes', 'className', 'nextButton', 'position', 'steps', 'variant']); - - - var className = (0, _classnames2.default)(classes.root, classes['position' + (0, _helpers.capitalize)(position)], classNameProp); - - return _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ square: true, elevation: 0, className: className }, other), - backButton, - variant === 'dots' && _react2.default.createElement( - 'div', - { className: classes.dots }, - [].concat((0, _toConsumableArray3.default)(new Array(steps))).map(function (_, step) { - var dotClassName = (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.dotActive, step === activeStep), classes.dot); - // eslint-disable-next-line react/no-array-index-key - return _react2.default.createElement('div', { key: step, className: dotClassName }); - }) - ), - variant === 'progress' && _react2.default.createElement( - 'div', - { className: classes.progress }, - _react2.default.createElement(_Progress.LinearProgress, { variant: 'determinate', value: Math.ceil(activeStep / (steps - 1) * 100) }) - ), - nextButton - ); -} - -MobileStepper.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Set the active step (zero based index). - * Defines which dot is highlighted when the variant is 'dots'. - */ - activeStep: _propTypes2.default.number, - /** - * A back button element. For instance, it can be be a `Button` or a `IconButton`. - */ - backButton: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * A next button element. For instance, it can be be a `Button` or a `IconButton`. - */ - nextButton: _propTypes2.default.node, - /** - * Set the positioning type. - */ - position: _propTypes2.default.oneOf(['bottom', 'top', 'static']), - /** - * The total steps. - */ - steps: _propTypes2.default.number.isRequired, - /** - * The type of mobile stepper to use. - */ - variant: _propTypes2.default.oneOf(['text', 'dots', 'progress']) -} : {}; - -MobileStepper.defaultProps = { - activeStep: 0, - position: 'bottom', - variant: 'dots' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiMobileStepper' })(MobileStepper); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/MobileStepper/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MobileStepper = __webpack_require__("./node_modules/material-ui/MobileStepper/MobileStepper.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_MobileStepper).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Modal/Backdrop.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Fade = __webpack_require__("./node_modules/material-ui/transitions/Fade.js"); - -var _Fade2 = _interopRequireDefault(_Fade); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - zIndex: -1, - width: '100%', - height: '100%', - position: 'fixed', - top: 0, - left: 0, - // Remove grey highlight - WebkitTapHighlightColor: 'transparent', - willChange: 'opacity', - backgroundColor: 'rgba(0, 0, 0, 0.5)' - }, - invisible: { - backgroundColor: 'transparent' - } -}; - -function Backdrop(props) { - var classes = props.classes, - invisible = props.invisible, - open = props.open, - transitionDuration = props.transitionDuration, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'invisible', 'open', 'transitionDuration']); - - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.invisible, invisible)); - - return _react2.default.createElement( - _Fade2.default, - (0, _extends3.default)({ appear: true, 'in': open, timeout: transitionDuration }, other), - _react2.default.createElement('div', { className: className, 'aria-hidden': 'true' }) - ); -} - -Backdrop.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * If `true`, the backdrop is invisible. - * It can be used when rendering a popover or a custom select component. - */ - invisible: _propTypes2.default.bool, - /** - * If `true`, the backdrop is open. - */ - open: _propTypes2.default.bool.isRequired, - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - */ - transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) -} : {}; - -Backdrop.defaultProps = { - invisible: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiBackdrop' })(Backdrop); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Modal/Modal.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _keycode = __webpack_require__("./node_modules/keycode/index.js"); - -var _keycode2 = _interopRequireDefault(_keycode); - -var _activeElement = __webpack_require__("./node_modules/dom-helpers/activeElement.js"); - -var _activeElement2 = _interopRequireDefault(_activeElement); - -var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); - -var _contains2 = _interopRequireDefault(_contains); - -var _inDOM = __webpack_require__("./node_modules/dom-helpers/util/inDOM.js"); - -var _inDOM2 = _interopRequireDefault(_inDOM); - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -var _RefHolder = __webpack_require__("./node_modules/material-ui/internal/RefHolder.js"); - -var _RefHolder2 = _interopRequireDefault(_RefHolder); - -var _Portal = __webpack_require__("./node_modules/material-ui/Portal/index.js"); - -var _Portal2 = _interopRequireDefault(_Portal); - -var _addEventListener = __webpack_require__("./node_modules/material-ui/utils/addEventListener.js"); - -var _addEventListener2 = _interopRequireDefault(_addEventListener); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ModalManager = __webpack_require__("./node_modules/material-ui/Modal/ModalManager.js"); - -var _ModalManager2 = _interopRequireDefault(_ModalManager); - -var _Backdrop = __webpack_require__("./node_modules/material-ui/Modal/Backdrop.js"); - -var _Backdrop2 = _interopRequireDefault(_Backdrop); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getContainer(container, defaultContainer) { - container = typeof container === 'function' ? container() : container; - return _reactDom2.default.findDOMNode(container) || defaultContainer; -} // @inheritedComponent Portal - -function getOwnerDocument(element) { - return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(element)); -} - -function getHasTransition(props) { - return props.children ? props.children.props.hasOwnProperty('in') : false; -} - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - width: '100%', - height: '100%', - position: 'fixed', - zIndex: theme.zIndex.modal, - top: 0, - left: 0 - }, - hidden: { - visibility: 'hidden' - } - }; -}; - -var Modal = function (_React$Component) { - (0, _inherits3.default)(Modal, _React$Component); - - function Modal(props, context) { - (0, _classCallCheck3.default)(this, Modal); - - var _this = (0, _possibleConstructorReturn3.default)(this, (Modal.__proto__ || (0, _getPrototypeOf2.default)(Modal)).call(this, props, context)); - - _this.dialog = null; - _this.mounted = false; - _this.mountNode = null; - - _this.handleRendered = function () { - _this.autoFocus(); - - if (_this.props.onRendered) { - _this.props.onRendered(); - } - }; - - _this.handleOpen = function () { - var doc = getOwnerDocument(_this); - var container = getContainer(_this.props.container, doc.body); - - _this.props.manager.add(_this, container); - _this.onDocumentKeydownListener = (0, _addEventListener2.default)(doc, 'keydown', _this.handleDocumentKeyDown); - _this.onFocusinListener = (0, _addEventListener2.default)(document, 'focus', _this.enforceFocus, true); - }; - - _this.handleClose = function () { - _this.props.manager.remove(_this); - _this.onDocumentKeydownListener.remove(); - _this.onFocusinListener.remove(); - _this.restoreLastFocus(); - }; - - _this.handleExited = function () { - _this.setState({ exited: true }); - _this.handleClose(); - }; - - _this.handleBackdropClick = function (event) { - if (event.target !== event.currentTarget) { - return; - } - - if (_this.props.onBackdropClick) { - _this.props.onBackdropClick(event); - } - - if (!_this.props.disableBackdropClick && _this.props.onClose) { - _this.props.onClose(event, 'backdropClick'); - } - }; - - _this.handleDocumentKeyDown = function (event) { - if (!_this.isTopModal() || (0, _keycode2.default)(event) !== 'esc') { - return; - } - - if (_this.props.onEscapeKeyDown) { - _this.props.onEscapeKeyDown(event); - } - - if (!_this.props.disableEscapeKeyDown && _this.props.onClose) { - _this.props.onClose(event, 'escapeKeyDown'); - } - }; - - _this.checkForFocus = function () { - if (_inDOM2.default) { - _this.lastFocus = (0, _activeElement2.default)(); - } - }; - - _this.enforceFocus = function () { - if (_this.props.disableEnforceFocus || !_this.mounted || !_this.isTopModal()) { - return; - } - - var dialogElement = _this.getDialogElement(); - var currentActiveElement = (0, _activeElement2.default)(getOwnerDocument(_this)); - - if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) { - dialogElement.focus(); - } - }; - - _this.state = { - exited: !_this.props.open - }; - return _this; - } - - (0, _createClass3.default)(Modal, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.mounted = true; - if (this.props.open) { - this.handleOpen(); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - if (nextProps.open) { - this.setState({ exited: false }); - } else if (!getHasTransition(nextProps)) { - // Otherwise let handleExited take care of marking exited. - this.setState({ exited: true }); - } - } - }, { - key: 'componentWillUpdate', - value: function componentWillUpdate(nextProps) { - if (!this.props.open && nextProps.open) { - this.checkForFocus(); - } - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(prevProps) { - if (prevProps.open && !this.props.open && !getHasTransition(this.props)) { - // Otherwise handleExited will call this. - this.handleClose(); - } else if (!prevProps.open && this.props.open) { - this.handleOpen(); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.mounted = false; - - if (this.props.open || getHasTransition(this.props) && !this.state.exited) { - this.handleClose(); - } - } - }, { - key: 'getDialogElement', - value: function getDialogElement() { - return _reactDom2.default.findDOMNode(this.dialog); - } - }, { - key: 'autoFocus', - value: function autoFocus() { - if (this.props.disableAutoFocus) { - return; - } - - var dialogElement = this.getDialogElement(); - var currentActiveElement = (0, _activeElement2.default)(getOwnerDocument(this)); - - if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) { - this.lastFocus = currentActiveElement; - - if (!dialogElement.hasAttribute('tabIndex')) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, ['Material-UI: the modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to "-1".'].join('\n')) : void 0; - dialogElement.setAttribute('tabIndex', -1); - } - - dialogElement.focus(); - } - } - }, { - key: 'restoreLastFocus', - value: function restoreLastFocus() { - if (this.props.disableRestoreFocus) { - return; - } - - if (this.lastFocus) { - this.lastFocus.focus(); - this.lastFocus = null; - } - } - }, { - key: 'isTopModal', - value: function isTopModal() { - return this.props.manager.isTopModal(this); - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - BackdropComponent = _props.BackdropComponent, - BackdropProps = _props.BackdropProps, - children = _props.children, - classes = _props.classes, - className = _props.className, - container = _props.container, - disableAutoFocus = _props.disableAutoFocus, - disableBackdropClick = _props.disableBackdropClick, - disableEnforceFocus = _props.disableEnforceFocus, - disableEscapeKeyDown = _props.disableEscapeKeyDown, - disableRestoreFocus = _props.disableRestoreFocus, - hideBackdrop = _props.hideBackdrop, - keepMounted = _props.keepMounted, - onBackdropClick = _props.onBackdropClick, - onClose = _props.onClose, - onEscapeKeyDown = _props.onEscapeKeyDown, - onRendered = _props.onRendered, - open = _props.open, - manager = _props.manager, - other = (0, _objectWithoutProperties3.default)(_props, ['BackdropComponent', 'BackdropProps', 'children', 'classes', 'className', 'container', 'disableAutoFocus', 'disableBackdropClick', 'disableEnforceFocus', 'disableEscapeKeyDown', 'disableRestoreFocus', 'hideBackdrop', 'keepMounted', 'onBackdropClick', 'onClose', 'onEscapeKeyDown', 'onRendered', 'open', 'manager']); - var exited = this.state.exited; - - var hasTransition = getHasTransition(this.props); - var childProps = {}; - - if (!keepMounted && !open && (!hasTransition || exited)) { - return null; - } - - // It's a Transition like component - if (hasTransition) { - childProps.onExited = (0, _helpers.createChainedFunction)(this.handleExited, children.props.onExited); - } - - if (children.props.role === undefined) { - childProps.role = children.props.role || 'document'; - } - - if (children.props.tabIndex === undefined) { - childProps.tabIndex = children.props.tabIndex || '-1'; - } - - return _react2.default.createElement( - _Portal2.default, - { - ref: function ref(node) { - _this2.mountNode = node ? node.getMountNode() : node; - }, - container: container, - onRendered: this.handleRendered - }, - _react2.default.createElement( - 'div', - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, className, (0, _defineProperty3.default)({}, classes.hidden, exited)) - }, other), - hideBackdrop ? null : _react2.default.createElement(BackdropComponent, (0, _extends3.default)({ open: open, onClick: this.handleBackdropClick }, BackdropProps)), - _react2.default.createElement( - _RefHolder2.default, - { - ref: function ref(node) { - _this2.dialog = node; - } - }, - _react2.default.cloneElement(children, childProps) - ) - ) - ); - } - }]); - return Modal; -}(_react2.default.Component); - -Modal.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * A backdrop component. Useful for custom backdrop rendering. - */ - BackdropComponent: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Properties applied to the `Backdrop` element. - */ - BackdropProps: _propTypes2.default.object, - /** - * A single child content element. - */ - children: _propTypes2.default.element, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * A node, component instance, or function that returns either. - * The `container` will have the portal children appended to it. - */ - container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), - /** - * If `true`, the modal will not automatically shift focus to itself when it opens, and - * replace it to the last focused element when it closes. - * This also works correctly with any modal children that have the `disableAutoFocus` prop. - * - * Generally this should never be set to `true` as it makes the modal less - * accessible to assistive technologies, like screen readers. - */ - disableAutoFocus: _propTypes2.default.bool, - /** - * If `true`, clicking the backdrop will not fire any callback. - */ - disableBackdropClick: _propTypes2.default.bool, - /** - * If `true`, the modal will not prevent focus from leaving the modal while open. - * - * Generally this should never be set to `true` as it makes the modal less - * accessible to assistive technologies, like screen readers. - */ - disableEnforceFocus: _propTypes2.default.bool, - /** - * If `true`, hitting escape will not fire any callback. - */ - disableEscapeKeyDown: _propTypes2.default.bool, - /** - * If `true`, the modal will not restore focus to previously focused element once - * modal is hidden. - */ - disableRestoreFocus: _propTypes2.default.bool, - /** - * If `true`, the backdrop is not rendered. - */ - hideBackdrop: _propTypes2.default.bool, - /** - * Always keep the children in the DOM. - * This property can be useful in SEO situation or - * when you want to maximize the responsiveness of the Modal. - */ - keepMounted: _propTypes2.default.bool, - /** - * A modal manager used to track and manage the state of open - * Modals. Useful when customizing how modals interact within a container. - */ - manager: _propTypes2.default.object, - /** - * Callback fired when the backdrop is clicked. - */ - onBackdropClick: _propTypes2.default.func, - /** - * Callback fired when the component requests to be closed. - * The `reason` parameter can optionally be used to control the response to `onClose`. - * - * @param {object} event The event source of the callback - * @param {string} reason Can be:`"escapeKeyDown"`, `"backdropClick"` - */ - onClose: _propTypes2.default.func, - /** - * Callback fired when the escape key is pressed, - * `disableEscapeKeyDown` is false and the modal is in focus. - */ - onEscapeKeyDown: _propTypes2.default.func, - /** - * Callback fired once the children has been mounted into the `container`. - * It signals that the `open={true}` property took effect. - */ - onRendered: _propTypes2.default.func, - /** - * If `true`, the modal is open. - */ - open: _propTypes2.default.bool.isRequired -} : {}; - -Modal.defaultProps = { - disableAutoFocus: false, - disableBackdropClick: false, - disableEnforceFocus: false, - disableEscapeKeyDown: false, - disableRestoreFocus: false, - hideBackdrop: false, - keepMounted: false, - // Modals don't open on the server so this won't conflict with concurrent requests. - manager: new _ModalManager2.default(), - BackdropComponent: _Backdrop2.default -}; - -exports.default = (0, _withStyles2.default)(styles, { flip: false, name: 'MuiModal' })(Modal); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Modal/ModalManager.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _style = __webpack_require__("./node_modules/dom-helpers/style/index.js"); - -var _style2 = _interopRequireDefault(_style); - -var _scrollbarSize = __webpack_require__("./node_modules/dom-helpers/util/scrollbarSize.js"); - -var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize); - -var _isOverflowing = __webpack_require__("./node_modules/material-ui/Modal/isOverflowing.js"); - -var _isOverflowing2 = _interopRequireDefault(_isOverflowing); - -var _manageAriaHidden = __webpack_require__("./node_modules/material-ui/Modal/manageAriaHidden.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function findIndexOf(data, callback) { - var idx = -1; - data.some(function (item, index) { - if (callback(item)) { - idx = index; - return true; - } - return false; - }); - return idx; -} - -function findContainer(data, modal) { - return findIndexOf(data, function (item) { - return item.modals.indexOf(modal) !== -1; - }); -} - -function getPaddingRight(node) { - return parseInt((0, _style2.default)(node, 'paddingRight') || 0, 10); -} - -function setContainerStyle(data, container) { - var style = { overflow: 'hidden' }; - - // We are only interested in the actual `style` here because we will override it. - data.style = { - overflow: container.style.overflow, - paddingRight: container.style.paddingRight - }; - - if (data.overflowing) { - var scrollbarSize = (0, _scrollbarSize2.default)(); - - // Use computed style, here to get the real padding to add our scrollbar width. - style.paddingRight = getPaddingRight(container) + scrollbarSize + 'px'; - - // .mui-fixed is a global helper. - var fixedNodes = document.querySelectorAll('.mui-fixed'); - for (var i = 0; i < fixedNodes.length; i += 1) { - var paddingRight = getPaddingRight(fixedNodes[i]); - data.prevPaddings.push(paddingRight); - fixedNodes[i].style.paddingRight = paddingRight + scrollbarSize + 'px'; - } - } - - (0, _keys2.default)(style).forEach(function (key) { - container.style[key] = style[key]; - }); -} - -function removeContainerStyle(data, container) { - (0, _keys2.default)(data.style).forEach(function (key) { - container.style[key] = data.style[key]; - }); - - var fixedNodes = document.querySelectorAll('.mui-fixed'); - for (var i = 0; i < fixedNodes.length; i += 1) { - fixedNodes[i].style.paddingRight = data.prevPaddings[i] + 'px'; - } -} -/** - * @ignore - do not document. - * - * Proper state managment for containers and the modals in those containers. - * Simplified, but inspired by react-overlay's ModalManager class - * Used by the Modal to ensure proper styling of containers. - */ - -var ModalManager = function ModalManager() { - var _this = this; - - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$hideSiblingNodes = _ref.hideSiblingNodes, - hideSiblingNodes = _ref$hideSiblingNodes === undefined ? true : _ref$hideSiblingNodes, - _ref$handleContainerO = _ref.handleContainerOverflow, - handleContainerOverflow = _ref$handleContainerO === undefined ? true : _ref$handleContainerO; - - (0, _classCallCheck3.default)(this, ModalManager); - - this.add = function (modal, container) { - var modalIdx = _this.modals.indexOf(modal); - var containerIdx = _this.containers.indexOf(container); - - if (modalIdx !== -1) { - return modalIdx; - } - - modalIdx = _this.modals.length; - _this.modals.push(modal); - - if (_this.hideSiblingNodes) { - (0, _manageAriaHidden.hideSiblings)(container, modal.mountNode); - } - - if (containerIdx !== -1) { - _this.data[containerIdx].modals.push(modal); - return modalIdx; - } - - var data = { - modals: [modal], - overflowing: (0, _isOverflowing2.default)(container), - prevPaddings: [] - }; - - if (_this.handleContainerOverflow) { - setContainerStyle(data, container); - } - - _this.containers.push(container); - _this.data.push(data); - - return modalIdx; - }; - - this.remove = function (modal) { - var modalIdx = _this.modals.indexOf(modal); - - if (modalIdx === -1) { - return modalIdx; - } - - var containerIdx = findContainer(_this.data, modal); - var data = _this.data[containerIdx]; - var container = _this.containers[containerIdx]; - - data.modals.splice(data.modals.indexOf(modal), 1); - _this.modals.splice(modalIdx, 1); - - // If that was the last modal in a container, clean up the container. - if (data.modals.length === 0) { - if (_this.handleContainerOverflow) { - removeContainerStyle(data, container); - } - - if (_this.hideSiblingNodes) { - (0, _manageAriaHidden.showSiblings)(container, modal.mountNode); - } - _this.containers.splice(containerIdx, 1); - _this.data.splice(containerIdx, 1); - } else if (_this.hideSiblingNodes) { - // Otherwise make sure the next top modal is visible to a SR. - (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].mountNode); - } - - return modalIdx; - }; - - this.isTopModal = function (modal) { - return !!_this.modals.length && _this.modals[_this.modals.length - 1] === modal; - }; - - this.hideSiblingNodes = hideSiblingNodes; - this.handleContainerOverflow = handleContainerOverflow; - // this.modals[modalIdx] = modal - this.modals = []; - // this.containers[containerIdx] = container - this.containers = []; - // this.data[containerIdx] = { - // modals: [], - // } - this.data = []; -}; - -exports.default = ModalManager; - -/***/ }), - -/***/ "./node_modules/material-ui/Modal/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Modal = __webpack_require__("./node_modules/material-ui/Modal/Modal.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Modal).default; - } -}); - -var _Backdrop = __webpack_require__("./node_modules/material-ui/Modal/Backdrop.js"); - -Object.defineProperty(exports, 'Backdrop', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Backdrop).default; - } -}); - -var _ModalManager = __webpack_require__("./node_modules/material-ui/Modal/ModalManager.js"); - -Object.defineProperty(exports, 'ModalManager', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_ModalManager).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Modal/isOverflowing.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isBody = isBody; -exports.default = isOverflowing; - -var _isWindow = __webpack_require__("./node_modules/dom-helpers/query/isWindow.js"); - -var _isWindow2 = _interopRequireDefault(_isWindow); - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function isBody(node) { - return node && node.tagName.toLowerCase() === 'body'; -} - -// Do we have a scroll bar? -function isOverflowing(container) { - var doc = (0, _ownerDocument2.default)(container); - var win = (0, _isWindow2.default)(doc); - - /* istanbul ignore next */ - if (!win && !isBody(container)) { - return container.scrollHeight > container.clientHeight; - } - - // Takes in account potential non zero margin on the body. - var style = window.getComputedStyle(doc.body); - var marginLeft = parseInt(style.getPropertyValue('margin-left'), 10); - var marginRight = parseInt(style.getPropertyValue('margin-right'), 10); - - return marginLeft + doc.body.clientWidth + marginRight < win.innerWidth; -} - -/***/ }), - -/***/ "./node_modules/material-ui/Modal/manageAriaHidden.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.ariaHidden = ariaHidden; -exports.hideSiblings = hideSiblings; -exports.showSiblings = showSiblings; -var BLACKLIST = ['template', 'script', 'style']; - -function isHidable(node) { - return node.nodeType === 1 && BLACKLIST.indexOf(node.tagName.toLowerCase()) === -1; -} - -function siblings(container, mount, callback) { - mount = [].concat(mount); // eslint-disable-line no-param-reassign - [].forEach.call(container.children, function (node) { - if (mount.indexOf(node) === -1 && isHidable(node)) { - callback(node); - } - }); -} - -function ariaHidden(show, node) { - if (!node) { - return; - } - if (show) { - node.setAttribute('aria-hidden', 'true'); - } else { - node.removeAttribute('aria-hidden'); - } -} - -function hideSiblings(container, mountNode) { - siblings(container, mountNode, function (node) { - return ariaHidden(true, node); - }); -} - -function showSiblings(container, mountNode) { - siblings(container, mountNode, function (node) { - return ariaHidden(false, node); - }); -} - -/***/ }), - -/***/ "./node_modules/material-ui/Paper/Paper.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - var shadows = {}; - theme.shadows.forEach(function (shadow, index) { - shadows['shadow' + index] = { - boxShadow: shadow - }; - }); - - return (0, _extends3.default)({ - root: { - backgroundColor: theme.palette.background.paper - }, - rounded: { - borderRadius: 2 - } - }, shadows); -}; - -function Paper(props) { - var classes = props.classes, - classNameProp = props.className, - Component = props.component, - square = props.square, - elevation = props.elevation, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'square', 'elevation']); - - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(elevation >= 0 && elevation < 25, 'Material-UI: this elevation `' + elevation + '` is not implemented.') : void 0; - - var className = (0, _classnames2.default)(classes.root, classes['shadow' + elevation], (0, _defineProperty3.default)({}, classes.rounded, !square), classNameProp); - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); -} - -Paper.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Shadow depth, corresponds to `dp` in the spec. - * It's accepting values between 0 and 24 inclusive. - */ - elevation: _propTypes2.default.number, - /** - * If `true`, rounded corners are disabled. - */ - square: _propTypes2.default.bool -} : {}; - -Paper.defaultProps = { - component: 'div', - elevation: 2, - square: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiPaper' })(Paper); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Paper/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/Paper.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Paper).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Popover/Popover.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); - -var _contains2 = _interopRequireDefault(_contains); - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -var _ownerWindow = __webpack_require__("./node_modules/dom-helpers/ownerWindow.js"); - -var _ownerWindow2 = _interopRequireDefault(_ownerWindow); - -var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Modal = __webpack_require__("./node_modules/material-ui/Modal/index.js"); - -var _Modal2 = _interopRequireDefault(_Modal); - -var _Grow = __webpack_require__("./node_modules/material-ui/transitions/Grow.js"); - -var _Grow2 = _interopRequireDefault(_Grow); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getOffsetTop(rect, vertical) { - var offset = 0; - - if (typeof vertical === 'number') { - offset = vertical; - } else if (vertical === 'center') { - offset = rect.height / 2; - } else if (vertical === 'bottom') { - offset = rect.height; - } - - return offset; -} // @inheritedComponent Modal - -function getOffsetLeft(rect, horizontal) { - var offset = 0; - - if (typeof horizontal === 'number') { - offset = horizontal; - } else if (horizontal === 'center') { - offset = rect.width / 2; - } else if (horizontal === 'right') { - offset = rect.width; - } - - return offset; -} - -function getTransformOriginValue(transformOrigin) { - return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) { - return typeof n === 'number' ? n + 'px' : n; - }).join(' '); -} - -// Sum the scrollTop between two elements. -function getScrollParent(parent, child) { - var element = child; - var scrollTop = 0; - - while (element && element !== parent) { - element = element.parentNode; - scrollTop += element.scrollTop; - } - return scrollTop; -} - -var styles = exports.styles = { - paper: { - position: 'absolute', - overflowY: 'auto', - overflowX: 'hidden', - // So we see the popover when it's empty. - // It's most likely on issue on userland. - minWidth: 16, - minHeight: 16, - maxWidth: 'calc(100vw - 32px)', - maxHeight: 'calc(100vh - 32px)', - '&:focus': { - outline: 'none' - } - } -}; - -var Popover = function (_React$Component) { - (0, _inherits3.default)(Popover, _React$Component); - - function Popover() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Popover); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Popover.__proto__ || (0, _getPrototypeOf2.default)(Popover)).call.apply(_ref, [this].concat(args))), _this), _this.componentWillUnmount = function () { - _this.handleResize.cancel(); - }, _this.setPositioningStyles = function (element) { - if (element && element.style) { - var positioning = _this.getPositioningStyle(element); - element.style.top = positioning.top; - element.style.left = positioning.left; - element.style.transformOrigin = positioning.transformOrigin; - } - }, _this.getPositioningStyle = function (element) { - var _this$props = _this.props, - anchorEl = _this$props.anchorEl, - marginThreshold = _this$props.marginThreshold; - - // Check if the parent has requested anchoring on an inner content node - - var contentAnchorOffset = _this.getContentAnchorOffset(element); - // Get the offset of of the anchoring element - var anchorOffset = _this.getAnchorOffset(contentAnchorOffset); - - var elemRect = { - width: element.clientWidth, - height: element.clientHeight - }; - // Get the transform origin point on the element itself - var transformOrigin = _this.getTransformOrigin(elemRect, contentAnchorOffset); - - // Calculate element positioning - var top = anchorOffset.top - transformOrigin.vertical; - var left = anchorOffset.left - transformOrigin.horizontal; - var bottom = top + elemRect.height; - var right = left + elemRect.width; - - // Use the parent window of the anchorEl if provided - var containerWindow = (0, _ownerWindow2.default)(anchorEl); - - // Window thresholds taking required margin into account - var heightThreshold = containerWindow.innerHeight - marginThreshold; - var widthThreshold = containerWindow.innerWidth - marginThreshold; - - // Check if the vertical axis needs shifting - if (top < marginThreshold) { - var diff = top - marginThreshold; - top -= diff; - transformOrigin.vertical += diff; - } else if (bottom > heightThreshold) { - var _diff = bottom - heightThreshold; - top -= _diff; - transformOrigin.vertical += _diff; - } - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(elemRect.height < heightThreshold || !elemRect.height || !heightThreshold, ['Material-UI: the popover component is too tall.', 'Some part of it can not be seen on the screen (' + (elemRect.height - heightThreshold) + 'px).', 'Please consider adding a `max-height` to improve the user-experience.'].join('\n')) : void 0; - - // Check if the horizontal axis needs shifting - if (left < marginThreshold) { - var _diff2 = left - marginThreshold; - left -= _diff2; - transformOrigin.horizontal += _diff2; - } else if (right > widthThreshold) { - var _diff3 = right - widthThreshold; - left -= _diff3; - transformOrigin.horizontal += _diff3; - } - - return { - top: top + 'px', - left: left + 'px', - transformOrigin: getTransformOriginValue(transformOrigin) - }; - }, _this.transitionEl = undefined, _this.handleGetOffsetTop = getOffsetTop, _this.handleGetOffsetLeft = getOffsetLeft, _this.handleEnter = function (element) { - if (_this.props.onEnter) { - _this.props.onEnter(element); - } - - _this.setPositioningStyles(element); - }, _this.handleResize = (0, _debounce2.default)(function () { - var element = _reactDom2.default.findDOMNode(_this.transitionEl); - _this.setPositioningStyles(element); - }, 166), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Popover, [{ - key: 'componentDidMount', - value: function componentDidMount() { - if (this.props.action) { - this.props.action({ - updatePosition: this.handleResize - }); - } - } - }, { - key: 'getAnchorOffset', - - - // Returns the top/left offset of the position - // to attach to on the anchor element (or body if none is provided) - value: function getAnchorOffset(contentAnchorOffset) { - var _props = this.props, - anchorEl = _props.anchorEl, - anchorOrigin = _props.anchorOrigin, - anchorReference = _props.anchorReference, - anchorPosition = _props.anchorPosition; - - - if (anchorReference === 'anchorPosition') { - return anchorPosition; - } - - var anchorElement = anchorEl || document.body; - var anchorRect = anchorElement.getBoundingClientRect(); - var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center'; - - return { - top: anchorRect.top + this.handleGetOffsetTop(anchorRect, anchorVertical), - left: anchorRect.left + this.handleGetOffsetLeft(anchorRect, anchorOrigin.horizontal) - }; - } - - // Returns the vertical offset of inner content to anchor the transform on if provided - - }, { - key: 'getContentAnchorOffset', - value: function getContentAnchorOffset(element) { - var _props2 = this.props, - getContentAnchorEl = _props2.getContentAnchorEl, - anchorReference = _props2.anchorReference; - - var contentAnchorOffset = 0; - - if (getContentAnchorEl && anchorReference === 'anchorEl') { - var contentAnchorEl = getContentAnchorEl(element); - - if (contentAnchorEl && (0, _contains2.default)(element, contentAnchorEl)) { - var scrollTop = getScrollParent(element, contentAnchorEl); - contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0; - } - - // != the default value - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(this.props.anchorOrigin.vertical === 'top', ['Material-UI: you can not change the default `anchorOrigin.vertical` value ', 'when also providing the `getContentAnchorEl` property to the popover component.', 'Only use one of the two properties.', 'Set `getContentAnchorEl` to null or left `anchorOrigin.vertical` unchanged.'].join('\n')) : void 0; - } - - return contentAnchorOffset; - } - - // Return the base transform origin using the element - // and taking the content anchor offset into account if in use - - }, { - key: 'getTransformOrigin', - value: function getTransformOrigin(elemRect) { - var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var transformOrigin = this.props.transformOrigin; - - return { - vertical: this.handleGetOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset, - horizontal: this.handleGetOffsetLeft(elemRect, transformOrigin.horizontal) - }; - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props3 = this.props, - anchorEl = _props3.anchorEl, - anchorOrigin = _props3.anchorOrigin, - anchorPosition = _props3.anchorPosition, - anchorReference = _props3.anchorReference, - children = _props3.children, - classes = _props3.classes, - containerProp = _props3.container, - elevation = _props3.elevation, - getContentAnchorEl = _props3.getContentAnchorEl, - marginThreshold = _props3.marginThreshold, - onEnter = _props3.onEnter, - onEntered = _props3.onEntered, - onEntering = _props3.onEntering, - onExit = _props3.onExit, - onExited = _props3.onExited, - onExiting = _props3.onExiting, - open = _props3.open, - PaperProps = _props3.PaperProps, - role = _props3.role, - transformOrigin = _props3.transformOrigin, - TransitionProp = _props3.transition, - transitionDuration = _props3.transitionDuration, - action = _props3.action, - other = (0, _objectWithoutProperties3.default)(_props3, ['anchorEl', 'anchorOrigin', 'anchorPosition', 'anchorReference', 'children', 'classes', 'container', 'elevation', 'getContentAnchorEl', 'marginThreshold', 'onEnter', 'onEntered', 'onEntering', 'onExit', 'onExited', 'onExiting', 'open', 'PaperProps', 'role', 'transformOrigin', 'transition', 'transitionDuration', 'action']); - - // If the container prop is provided, use that - // If the anchorEl prop is provided, use its parent body element as the container - // If neither are provided let the Modal take care of choosing the container - - var container = containerProp || (anchorEl ? (0, _ownerDocument2.default)(anchorEl).body : undefined); - - var transitionProps = {}; - // The provided transition might not support the auto timeout value. - if (TransitionProp === _Grow2.default) { - transitionProps.timeout = transitionDuration; - } - - return _react2.default.createElement( - _Modal2.default, - (0, _extends3.default)({ container: container, open: open, BackdropProps: { invisible: true } }, other), - _react2.default.createElement( - TransitionProp, - (0, _extends3.default)({ - appear: true, - 'in': open, - onEnter: this.handleEnter, - onEntered: onEntered, - onEntering: onEntering, - onExit: onExit, - onExited: onExited, - onExiting: onExiting, - role: role, - ref: function ref(node) { - _this2.transitionEl = node; - } - }, transitionProps), - _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ - className: classes.paper, - - elevation: elevation - }, PaperProps), - _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), - children - ) - ) - ); - } - }]); - return Popover; -}(_react2.default.Component); - -Popover.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * This is callback property. It's called by the component on mount. - * This is useful when you want to trigger an action programmatically. - * It currently only supports updatePosition() action. - * - * @param {object} actions This object contains all posible actions - * that can be triggered programmatically. - */ - action: _propTypes2.default.func, - /** - * This is the DOM element that may be used - * to set the position of the popover. - */ - anchorEl: _propTypes2.default.object, - /** - * This is the point on the anchor where the popover's - * `anchorEl` will attach to. This is not used when the - * anchorReference is 'anchorPosition'. - * - * Options: - * vertical: [top, center, bottom]; - * horizontal: [left, center, right]. - */ - anchorOrigin: _propTypes2.default.shape({ - horizontal: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['left', 'center', 'right'])]), - vertical: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['top', 'center', 'bottom'])]) - }), - /** - * This is the position that may be used - * to set the position of the popover. - * The coordinates are relative to - * the application's client area. - */ - anchorPosition: _propTypes2.default.shape({ - top: _propTypes2.default.number, - left: _propTypes2.default.number - }), - /* - * This determines which anchor prop to refer to to set - * the position of the popover. - */ - anchorReference: _propTypes2.default.oneOf(['anchorEl', 'anchorPosition']), - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * A node, component instance, or function that returns either. - * The `container` will passed to the Modal component. - * By default, it's using the body of the anchorEl's top-level document object, - * so it's simply `document.body` most of the time. - */ - container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), - /** - * The elevation of the popover. - */ - elevation: _propTypes2.default.number, - /** - * This function is called in order to retrieve the content anchor element. - * It's the opposite of the `anchorEl` property. - * The content anchor element should be an element inside the popover. - * It's used to correctly scroll and set the position of the popover. - * The positioning strategy tries to make the content anchor element just above the - * anchor element. - */ - getContentAnchorEl: _propTypes2.default.func, - /** - * Specifies how close to the edge of the window the popover can appear. - */ - marginThreshold: _propTypes2.default.number, - /** - * Callback fired when the component requests to be closed. - * - * @param {object} event The event source of the callback. - */ - onClose: _propTypes2.default.func, - /** - * Callback fired before the component is entering. - */ - onEnter: _propTypes2.default.func, - /** - * Callback fired when the component has entered. - */ - onEntered: _propTypes2.default.func, - /** - * Callback fired when the component is entering. - */ - onEntering: _propTypes2.default.func, - /** - * Callback fired before the component is exiting. - */ - onExit: _propTypes2.default.func, - /** - * Callback fired when the component has exited. - */ - onExited: _propTypes2.default.func, - /** - * Callback fired when the component is exiting. - */ - onExiting: _propTypes2.default.func, - /** - * If `true`, the popover is visible. - */ - open: _propTypes2.default.bool.isRequired, - /** - * Properties applied to the `Paper` element. - */ - PaperProps: _propTypes2.default.object, - /** - * @ignore - */ - role: _propTypes2.default.string, - /** - * This is the point on the popover which - * will attach to the anchor's origin. - * - * Options: - * vertical: [top, center, bottom, x(px)]; - * horizontal: [left, center, right, x(px)]. - */ - transformOrigin: _propTypes2.default.shape({ - horizontal: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['left', 'center', 'right'])]), - vertical: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['top', 'center', 'bottom'])]) - }), - /** - * Transition component. - */ - transition: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Set to 'auto' to automatically calculate transition time based on height. - */ - transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) -} : {}; - -Popover.defaultProps = { - anchorReference: 'anchorEl', - anchorOrigin: { - vertical: 'top', - horizontal: 'left' - }, - elevation: 8, - marginThreshold: 16, - transformOrigin: { - vertical: 'top', - horizontal: 'left' - }, - transition: _Grow2.default, - transitionDuration: 'auto' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiPopover' })(Popover); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Popover/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Popover = __webpack_require__("./node_modules/material-ui/Popover/Popover.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Popover).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Portal/LegacyPortal.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); - -var _exactProp2 = _interopRequireDefault(_exactProp); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getContainer(container, defaultContainer) { - container = typeof container === 'function' ? container() : container; - return _reactDom2.default.findDOMNode(container) || defaultContainer; -} - -function getOwnerDocument(element) { - return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(element)); -} - -/** - * @ignore - internal component. - * - * This module will soon be gone. We should drop it as soon as React@15.x support stop. - */ - -var LegacyPortal = function (_React$Component) { - (0, _inherits3.default)(LegacyPortal, _React$Component); - - function LegacyPortal() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, LegacyPortal); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = LegacyPortal.__proto__ || (0, _getPrototypeOf2.default)(LegacyPortal)).call.apply(_ref, [this].concat(args))), _this), _this.getMountNode = function () { - return _this.mountNode; - }, _this.mountOverlayTarget = function () { - if (!_this.overlayTarget) { - _this.overlayTarget = document.createElement('div'); - _this.mountNode = getContainer(_this.props.container, getOwnerDocument(_this).body); - _this.mountNode.appendChild(_this.overlayTarget); - } - }, _this.unmountOverlayTarget = function () { - if (_this.overlayTarget) { - _this.mountNode.removeChild(_this.overlayTarget); - _this.overlayTarget = null; - } - _this.mountNode = null; - }, _this.unrenderOverlay = function () { - if (_this.overlayTarget) { - _reactDom2.default.unmountComponentAtNode(_this.overlayTarget); - _this.overlayInstance = null; - } - }, _this.renderOverlay = function () { - var overlay = _this.props.children; - _this.mountOverlayTarget(); - var initialRender = !_this.overlayInstance; - _this.overlayInstance = _reactDom2.default.unstable_renderSubtreeIntoContainer(_this, overlay, _this.overlayTarget, function () { - if (initialRender && _this.props.onRendered) { - _this.props.onRendered(); - } - }); - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(LegacyPortal, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.mounted = true; - this.renderOverlay(); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - if (this.overlayTarget && nextProps.container !== this.props.container) { - this.mountNode.removeChild(this.overlayTarget); - this.mountNode = getContainer(nextProps.container, getOwnerDocument(this).body); - this.mountNode.appendChild(this.overlayTarget); - } - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.renderOverlay(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.mounted = false; - this.unrenderOverlay(); - this.unmountOverlayTarget(); - } - - /** - * @public - */ - - }, { - key: 'render', - value: function render() { - return null; - } - }]); - return LegacyPortal; -}(_react2.default.Component); - -LegacyPortal.propTypes = process.env.NODE_ENV !== "production" ? { - children: _propTypes2.default.element.isRequired, - container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), - onRendered: _propTypes2.default.func -} : {}; - -LegacyPortal.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(LegacyPortal.propTypes, 'LegacyPortal') : {}; - -exports.default = LegacyPortal; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Portal/Portal.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); - -var _exactProp2 = _interopRequireDefault(_exactProp); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getContainer(container, defaultContainer) { - container = typeof container === 'function' ? container() : container; - return _reactDom2.default.findDOMNode(container) || defaultContainer; -} - -function getOwnerDocument(element) { - return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(element)); -} - -/** - * This component shares many concepts with - * [react-overlays](https://react-bootstrap.github.io/react-overlays/#portals) - * But has been forked in order to fix some bugs, reduce the number of dependencies - * and take the control of our destiny. - */ - -var Portal = function (_React$Component) { - (0, _inherits3.default)(Portal, _React$Component); - - function Portal() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Portal); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Portal.__proto__ || (0, _getPrototypeOf2.default)(Portal)).call.apply(_ref, [this].concat(args))), _this), _this.getMountNode = function () { - return _this.mountNode; - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Portal, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.setContainer(this.props.container); - this.forceUpdate(this.props.onRendered); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - if (nextProps.container !== this.props.container) { - this.setContainer(nextProps.container); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.mountNode = null; - } - }, { - key: 'setContainer', - value: function setContainer(container) { - this.mountNode = getContainer(container, getOwnerDocument(this).body); - } - - /** - * @public - */ - - }, { - key: 'render', - value: function render() { - var children = this.props.children; - - - return this.mountNode ? _reactDom2.default.createPortal(children, this.mountNode) : null; - } - }]); - return Portal; -}(_react2.default.Component); - -Portal.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The children to render into the `container`. - */ - children: _propTypes2.default.node.isRequired, - /** - * A node, component instance, or function that returns either. - * The `container` will have the portal children appended to it. - * By default, it's using the body of the top-level document object, - * so it's simply `document.body` most of the time. - */ - container: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), - /** - * Callback fired once the children has been mounted into the `container`. - */ - onRendered: _propTypes2.default.func -} : {}; - -Portal.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(Portal.propTypes, 'Portal') : {}; - -exports.default = Portal; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Portal/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _Portal = __webpack_require__("./node_modules/material-ui/Portal/Portal.js"); - -var _Portal2 = _interopRequireDefault(_Portal); - -var _LegacyPortal = __webpack_require__("./node_modules/material-ui/Portal/LegacyPortal.js"); - -var _LegacyPortal2 = _interopRequireDefault(_LegacyPortal); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _reactDom2.default.createPortal ? _Portal2.default : _LegacyPortal2.default; - -/***/ }), - -/***/ "./node_modules/material-ui/Progress/CircularProgress.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SIZE = 50; - -function getRelativeValue(value, min, max) { - var clampedValue = Math.min(Math.max(min, value), max); - return (clampedValue - min) / (max - min); -} - -function easeOut(t) { - t = getRelativeValue(t, 0, 1); - // https://gist.github.com/gre/1650294 - t = (t -= 1) * t * t + 1; - return t; -} - -function easeIn(t) { - return t * t; -} - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'inline-block' - }, - colorPrimary: { - color: theme.palette.primary.main - }, - colorSecondary: { - color: theme.palette.secondary.main - }, - svg: {}, - svgIndeterminate: { - animation: 'mui-progress-circular-rotate 1.4s linear infinite' - }, - circle: { - stroke: 'currentColor', - strokeLinecap: 'round' - }, - circleIndeterminate: { - animation: 'mui-progress-circular-dash 1.4s ease-in-out infinite', - // Some default value that looks fine waiting for the animation to kicks in. - strokeDasharray: '80px, 200px', - strokeDashoffset: '0px' // Add the unit to fix a Edge 16 and below bug. - }, - '@keyframes mui-progress-circular-rotate': { - '100%': { - transform: 'rotate(360deg)' - } - }, - '@keyframes mui-progress-circular-dash': { - '0%': { - strokeDasharray: '1px, 200px', - strokeDashoffset: '0px' - }, - '50%': { - strokeDasharray: '100px, 200px', - strokeDashoffset: '-15px' - }, - '100%': { - strokeDasharray: '100px, 200px', - strokeDashoffset: '-120px' - } - } - }; -}; - -/** - * ## ARIA - * - * If the progress bar is describing the loading progress of a particular region of a page, - * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy` - * attribute to `true` on that region until it has finished loading. - */ -function CircularProgress(props) { - var _classNames2; - - var classes = props.classes, - className = props.className, - color = props.color, - max = props.max, - min = props.min, - size = props.size, - style = props.style, - thickness = props.thickness, - value = props.value, - variant = props.variant, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color', 'max', 'min', 'size', 'style', 'thickness', 'value', 'variant']); - - - var circleStyle = {}; - var rootStyle = {}; - var rootProps = {}; - - if (variant === 'determinate' || variant === 'static') { - var relVal = getRelativeValue(value, min, max) * 100; - var circumference = 2 * Math.PI * (SIZE / 2 - 5); - circleStyle.strokeDasharray = circumference.toFixed(3); - rootProps['aria-valuenow'] = Math.round(relVal); - - if (variant === 'static') { - circleStyle.strokeDashoffset = ((100 - relVal) / 100 * circumference).toFixed(3) + 'px'; - rootStyle.transform = 'rotate(-90deg)'; - } else { - circleStyle.strokeDashoffset = (easeIn((100 - relVal) / 100) * circumference).toFixed(3) + 'px'; - rootStyle.transform = 'rotate(' + (easeOut(relVal / 70) * 270).toFixed(3) + 'deg)'; - } - } - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), className), - style: (0, _extends3.default)({ width: size, height: size }, rootStyle, style), - role: 'progressbar' - }, rootProps, other), - _react2.default.createElement( - 'svg', - { - className: (0, _classnames2.default)(classes.svg, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.svgIndeterminate, variant === 'indeterminate'), (0, _defineProperty3.default)(_classNames2, classes.svgStatic, variant === 'static'), _classNames2)), - viewBox: '0 0 ' + SIZE + ' ' + SIZE - }, - _react2.default.createElement('circle', { - className: (0, _classnames2.default)(classes.circle, (0, _defineProperty3.default)({}, classes.circleIndeterminate, variant === 'indeterminate')), - style: circleStyle, - cx: SIZE / 2, - cy: SIZE / 2, - r: SIZE / 2 - 5, - fill: 'none', - strokeWidth: thickness - }) - ) - ); -} - -CircularProgress.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['primary', 'secondary', 'inherit']), - /** - * The max value of progress in determinate variant. - */ - max: _propTypes2.default.number, - /** - * The min value of progress in determinate variant. - */ - min: _propTypes2.default.number, - /** - * The size of the circle. - */ - size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), - /** - * @ignore - */ - style: _propTypes2.default.object, - /** - * The thickness of the circle. - */ - thickness: _propTypes2.default.number, - /** - * The value of the progress indicator for the determinate and static variants. - * Value between 0 and 100. - */ - value: _propTypes2.default.number, - /** - * The variant of progress indicator. Use indeterminate - * when there is no progress value. - */ - variant: _propTypes2.default.oneOf(['determinate', 'indeterminate', 'static']) -} : {}; - -CircularProgress.defaultProps = { - color: 'primary', - max: 100, - min: 0, - size: 40, - thickness: 3.6, - value: 0, - variant: 'indeterminate' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiCircularProgress', flip: false })(CircularProgress); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Progress/LinearProgress.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var TRANSITION_DURATION = 4; // 400ms - -var styles = exports.styles = function styles(theme) { - return { - root: { - position: 'relative', - overflow: 'hidden', - height: 5 - }, - primaryColor: { - backgroundColor: (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6) - }, - primaryColorBar: { - backgroundColor: theme.palette.primary.main - }, - primaryDashed: { - background: 'radial-gradient(' + (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6) + ' 0%, ' + (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6) + ' 16%, transparent 42%)', - backgroundSize: '10px 10px', - backgroundPosition: '0px -23px' - }, - secondaryColor: { - backgroundColor: (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.4) - }, - secondaryColorBar: { - backgroundColor: theme.palette.secondary.main - }, - secondaryDashed: { - background: 'radial-gradient(' + (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.4) + ' 0%, ' + (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.6) + ' 16%, transparent 42%)', - backgroundSize: '10px 10px', - backgroundPosition: '0px -23px' - }, - bar: { - width: '100%', - position: 'absolute', - left: 0, - bottom: 0, - top: 0, - transition: 'transform 0.2s linear', - transformOrigin: 'left' - }, - dashed: { - position: 'absolute', - marginTop: 0, - height: '100%', - width: '100%', - animation: 'buffer 3s infinite linear' - }, - bufferBar2: { - transition: 'transform .' + TRANSITION_DURATION + 's linear' - }, - rootBuffer: { - backgroundColor: 'transparent' - }, - rootQuery: { - transform: 'rotate(180deg)' - }, - indeterminateBar1: { - width: 'auto', - willChange: 'left, right', - animation: 'mui-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite' - }, - indeterminateBar2: { - width: 'auto', - willChange: 'left, right', - animation: 'mui-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite', - animationDelay: '1.15s' - }, - determinateBar1: { - willChange: 'transform', - transition: 'transform .' + TRANSITION_DURATION + 's linear' - }, - bufferBar1: { - zIndex: 1, - transition: 'transform .' + TRANSITION_DURATION + 's linear' - }, - // Legends: - // || represents the viewport - // - represents a light background - // x represents a dark background - '@keyframes mui-indeterminate1': { - // |-----|---x-||-----||-----| - '0%': { - left: '-35%', - right: '100%' - }, - // |-----|-----||-----||xxxx-| - '60%': { - left: '100%', - right: '-90%' - }, - '100%': { - left: '100%', - right: '-90%' - } - }, - '@keyframes mui-indeterminate2': { - // |xxxxx|xxxxx||-----||-----| - '0%': { - left: '-200%', - right: '100%' - }, - // |-----|-----||-----||-x----| - '60%': { - left: '107%', - right: '-8%' - }, - '100%': { - left: '107%', - right: '-8%' - } - }, - '@keyframes buffer': { - '0%': { - opacity: 1, - backgroundPosition: '0px -23px' - }, - '50%': { - opacity: 0, - backgroundPosition: '0px -23px' - }, - '100%': { - opacity: 1, - backgroundPosition: '-200px -23px' - } - } - }; -}; - -/** - * ## ARIA - * - * If the progress bar is describing the loading progress of a particular region of a page, - * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy` - * attribute to `true` on that region until it has finished loading. - */ -function LinearProgress(props) { - var _classNames, _classNames2, _classNames3, _classNames4; - - var classes = props.classes, - className = props.className, - color = props.color, - value = props.value, - valueBuffer = props.valueBuffer, - variant = props.variant, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color', 'value', 'valueBuffer', 'variant']); - - - var dashedClass = (0, _classnames2.default)(classes.dashed, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.primaryDashed, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.secondaryDashed, color === 'secondary'), _classNames)); - - var rootClassName = (0, _classnames2.default)(classes.root, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.primaryColor, color === 'primary'), (0, _defineProperty3.default)(_classNames2, classes.secondaryColor, color === 'secondary'), (0, _defineProperty3.default)(_classNames2, classes.rootBuffer, variant === 'buffer'), (0, _defineProperty3.default)(_classNames2, classes.rootQuery, variant === 'query'), _classNames2), className); - var primaryClassName = (0, _classnames2.default)(classes.bar, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.primaryColorBar, color === 'primary'), (0, _defineProperty3.default)(_classNames3, classes.secondaryColorBar, color === 'secondary'), (0, _defineProperty3.default)(_classNames3, classes.indeterminateBar1, variant === 'indeterminate' || variant === 'query'), (0, _defineProperty3.default)(_classNames3, classes.determinateBar1, variant === 'determinate'), (0, _defineProperty3.default)(_classNames3, classes.bufferBar1, variant === 'buffer'), _classNames3)); - var secondaryClassName = (0, _classnames2.default)(classes.bar, (_classNames4 = {}, (0, _defineProperty3.default)(_classNames4, classes.bufferBar2, variant === 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.primaryColorBar, color === 'primary' && variant !== 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.primaryColor, color === 'primary' && variant === 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.secondaryColorBar, color === 'secondary' && variant !== 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.secondaryColor, color === 'secondary' && variant === 'buffer'), (0, _defineProperty3.default)(_classNames4, classes.indeterminateBar2, variant === 'indeterminate' || variant === 'query'), _classNames4)); - var inlineStyles = { primary: {}, secondary: {} }; - var rootProps = {}; - - if (variant === 'determinate' || variant === 'buffer') { - if (value !== undefined) { - inlineStyles.primary.transform = 'scaleX(' + value / 100 + ')'; - rootProps['aria-valuenow'] = Math.round(value); - } else { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, 'Material-UI: you need to provide a value property ' + 'when using the determinate or buffer variant of LinearProgress .') : void 0; - } - } - if (variant === 'buffer') { - if (valueBuffer !== undefined) { - inlineStyles.secondary.transform = 'scaleX(' + (valueBuffer || 0) / 100 + ')'; - } else { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(false, 'Material-UI: you need to provide a valueBuffer property ' + 'when using the buffer variant of LinearProgress.') : void 0; - } - } - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: rootClassName, role: 'progressbar' }, rootProps, other), - variant === 'buffer' ? _react2.default.createElement('div', { className: dashedClass }) : null, - _react2.default.createElement('div', { className: primaryClassName, style: inlineStyles.primary }), - variant === 'determinate' ? null : _react2.default.createElement('div', { className: secondaryClassName, style: inlineStyles.secondary }) - ); -} - -LinearProgress.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['primary', 'secondary']), - /** - * The value of the progress indicator for the determinate and buffer variants. - * Value between 0 and 100. - */ - value: _propTypes2.default.number, - /** - * The value for the buffer variant. - * Value between 0 and 100. - */ - valueBuffer: _propTypes2.default.number, - /** - * The variant of progress indicator. Use indeterminate or query - * when there is no progress value. - */ - variant: _propTypes2.default.oneOf(['determinate', 'indeterminate', 'buffer', 'query']) -} : {}; - -LinearProgress.defaultProps = { - color: 'primary', - variant: 'indeterminate' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiLinearProgress' })(LinearProgress); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Progress/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _CircularProgress = __webpack_require__("./node_modules/material-ui/Progress/CircularProgress.js"); - -Object.defineProperty(exports, 'CircularProgress', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_CircularProgress).default; - } -}); - -var _LinearProgress = __webpack_require__("./node_modules/material-ui/Progress/LinearProgress.js"); - -Object.defineProperty(exports, 'LinearProgress', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_LinearProgress).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Radio/Radio.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _SwitchBase = __webpack_require__("./node_modules/material-ui/internal/SwitchBase.js"); - -var _SwitchBase2 = _interopRequireDefault(_SwitchBase); - -var _RadioButtonChecked = __webpack_require__("./node_modules/material-ui/internal/svg-icons/RadioButtonChecked.js"); - -var _RadioButtonChecked2 = _interopRequireDefault(_RadioButtonChecked); - -var _RadioButtonUnchecked = __webpack_require__("./node_modules/material-ui/internal/svg-icons/RadioButtonUnchecked.js"); - -var _RadioButtonUnchecked2 = _interopRequireDefault(_RadioButtonUnchecked); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - default: { - color: theme.palette.text.secondary - }, - checked: {}, - checkedPrimary: { - color: theme.palette.primary.main - }, - checkedSecondary: { - color: theme.palette.secondary.main - }, - disabled: { - color: theme.palette.action.disabled - } - }; -}; - -var _ref = _react2.default.createElement(_RadioButtonUnchecked2.default, null); - -var _ref2 = _react2.default.createElement(_RadioButtonChecked2.default, null); - -function Radio(props) { - var _classNames; - - var classes = props.classes, - color = props.color, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'color']); - - var checkedClass = (0, _classnames2.default)(classes.checked, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checkedPrimary, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.checkedSecondary, color === 'secondary'), _classNames)); - - return _react2.default.createElement(_SwitchBase2.default, (0, _extends3.default)({ - type: 'radio', - icon: _ref, - checkedIcon: _ref2, - classes: { - default: classes.default, - checked: checkedClass, - disabled: classes.disabled - } - }, other)); -} - -Radio.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the component is checked. - */ - checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), - /** - * The icon to display when the component is checked. - */ - checkedIcon: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['primary', 'secondary']), - /** - * @ignore - */ - defaultChecked: _propTypes2.default.bool, - /** - * If `true`, the switch will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: _propTypes2.default.bool, - /** - * The icon to display when the component is unchecked. - */ - icon: _propTypes2.default.node, - /** - * The id of the `input` element. - */ - id: _propTypes2.default.string, - /** - * Properties applied to the `input` element. - */ - inputProps: _propTypes2.default.object, - /** - * Use that property to pass a ref callback to the native input component. - */ - inputRef: _propTypes2.default.func, - /* - * @ignore - */ - name: _propTypes2.default.string, - /** - * Callback fired when the state is changed. - * - * @param {object} event The event source of the callback - * @param {boolean} checked The `checked` value of the switch - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), - /** - * The input component property `type`. - */ - type: _propTypes2.default.string, - /** - * The value of the component. - */ - value: _propTypes2.default.string -} : {}; - -Radio.defaultProps = { - color: 'secondary' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiRadio' })(Radio); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Radio/RadioGroup.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _FormGroup = __webpack_require__("./node_modules/material-ui/Form/FormGroup.js"); - -var _FormGroup2 = _interopRequireDefault(_FormGroup); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent FormGroup - -var RadioGroup = function (_React$Component) { - (0, _inherits3.default)(RadioGroup, _React$Component); - - function RadioGroup() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, RadioGroup); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = RadioGroup.__proto__ || (0, _getPrototypeOf2.default)(RadioGroup)).call.apply(_ref, [this].concat(args))), _this), _this.radios = [], _this.focus = function () { - if (!_this.radios || !_this.radios.length) { - return; - } - - var focusRadios = _this.radios.filter(function (n) { - return !n.disabled; - }); - - if (!focusRadios.length) { - return; - } - - var selectedRadio = (0, _helpers.find)(focusRadios, function (n) { - return n.checked; - }); - - if (selectedRadio) { - selectedRadio.focus(); - return; - } - - focusRadios[0].focus(); - }, _this.handleRadioChange = function (event, checked) { - if (checked && _this.props.onChange) { - _this.props.onChange(event, event.target.value); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(RadioGroup, [{ - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - children = _props.children, - name = _props.name, - value = _props.value, - onChange = _props.onChange, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'name', 'value', 'onChange']); - - - this.radios = []; - - return _react2.default.createElement( - _FormGroup2.default, - (0, _extends3.default)({ role: 'radiogroup' }, other), - _react2.default.Children.map(children, function (child, index) { - if (!_react2.default.isValidElement(child)) { - return null; - } - - return _react2.default.cloneElement(child, { - key: index, - name: name, - inputRef: function inputRef(node) { - if (node) { - _this2.radios.push(node); - } - }, - checked: value === child.props.value, - onChange: _this2.handleRadioChange - }); - }) - ); - } - }]); - return RadioGroup; -}(_react2.default.Component); - -RadioGroup.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * The name used to reference the value of the control. - */ - name: _propTypes2.default.string, - /** - * @ignore - */ - onBlur: _propTypes2.default.func, - /** - * Callback fired when a radio button is selected. - * - * @param {object} event The event source of the callback - * @param {string} value The `value` of the selected radio button - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - onKeyDown: _propTypes2.default.func, - /** - * Value of the selected radio button. - */ - value: _propTypes2.default.string -} : {}; - -exports.default = RadioGroup; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Radio/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Radio = __webpack_require__("./node_modules/material-ui/Radio/Radio.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Radio).default; - } -}); - -var _RadioGroup = __webpack_require__("./node_modules/material-ui/Radio/RadioGroup.js"); - -Object.defineProperty(exports, 'RadioGroup', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_RadioGroup).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Reboot/Reboot.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _styles = __webpack_require__("./node_modules/material-ui/styles/index.js"); - -var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); - -var _exactProp2 = _interopRequireDefault(_exactProp); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = function styles(theme) { - return { - '@global': { - html: { - WebkitFontSmoothing: 'antialiased', // Antialiasing. - MozOsxFontSmoothing: 'grayscale', // Antialiasing. - // Change from `box-sizing: content-box` so that `width` - // is not affected by `padding` or `border`. - boxSizing: 'border-box' - }, - '*, *::before, *::after': { - boxSizing: 'inherit' - }, - body: { - margin: 0, // Remove the margin in all browsers. - backgroundColor: theme.palette.background.default, - '@media print': { - // Save printer ink. - backgroundColor: theme.palette.common.white - } - } - } - }; -}; - -/** - * Kickstart an elegant, consistent, and simple baseline to build upon. - */ - -var Reboot = function (_React$Component) { - (0, _inherits3.default)(Reboot, _React$Component); - - function Reboot() { - (0, _classCallCheck3.default)(this, Reboot); - return (0, _possibleConstructorReturn3.default)(this, (Reboot.__proto__ || (0, _getPrototypeOf2.default)(Reboot)).apply(this, arguments)); - } - - (0, _createClass3.default)(Reboot, [{ - key: 'render', - value: function render() { - return this.props.children; - } - }]); - return Reboot; -}(_react2.default.Component); - -Reboot.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * You can only provide a single element with react@15, a node with react@16. - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - classes: _propTypes2.default.object.isRequired -} : {}; - -Reboot.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(Reboot.propTypes, 'Reboot') : {}; - -Reboot.defaultProps = { - children: null -}; - -exports.default = (0, _styles.withStyles)(styles, { name: 'MuiReboot' })(Reboot); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Reboot/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Reboot = __webpack_require__("./node_modules/material-ui/Reboot/Reboot.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Reboot).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Select/Select.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _SelectInput = __webpack_require__("./node_modules/material-ui/Select/SelectInput.js"); - -var _SelectInput2 = _interopRequireDefault(_SelectInput); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Input = __webpack_require__("./node_modules/material-ui/Input/index.js"); - -var _Input2 = _interopRequireDefault(_Input); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Import to enforce the CSS injection order - -var styles = exports.styles = function styles(theme) { - return { - root: { - position: 'relative', - width: '100%' - }, - select: { - '-moz-appearance': 'none', // Reset - '-webkit-appearance': 'none', // Reset - // When interacting quickly, the text can end up selected. - // Native select can't be selected either. - userSelect: 'none', - paddingRight: theme.spacing.unit * 4, - width: 'calc(100% - ' + theme.spacing.unit * 4 + 'px)', - minWidth: theme.spacing.unit * 2, // So it doesn't collapse. - cursor: 'pointer', - '&:focus': { - // Show that it's not an text input - background: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)', - borderRadius: 0 // Reset Chrome style - }, - // Remove Firefox focus border - '&:-moz-focusring': { - color: 'transparent', - textShadow: '0 0 0 #000' - }, - // Remove IE11 arrow - '&::-ms-expand': { - display: 'none' - } - }, - selectMenu: { - width: 'auto', // Fix Safari textOverflow - textOverflow: 'ellipsis', - whiteSpace: 'nowrap', - overflow: 'hidden', - minHeight: '1.1875em', // Reset (19px), match the native input line-height - lineHeight: '1.1875em' // Reset (19px), match the native input line-height - }, - disabled: { - cursor: 'default' - }, - icon: { - // We use a position absolute over a flexbox in order to forward the pointer events - // to the input. - position: 'absolute', - right: 0, - top: 'calc(50% - 12px)', // Center vertically - color: theme.palette.action.active, - 'pointer-events': 'none' // Don't block pointer events on the select under the icon. - } - }; -}; // @inheritedComponent Input - -function Select(props) { - var autoWidth = props.autoWidth, - children = props.children, - classes = props.classes, - displayEmpty = props.displayEmpty, - input = props.input, - inputProps = props.inputProps, - MenuProps = props.MenuProps, - multiple = props.multiple, - native = props.native, - onClose = props.onClose, - onOpen = props.onOpen, - open = props.open, - renderValue = props.renderValue, - other = (0, _objectWithoutProperties3.default)(props, ['autoWidth', 'children', 'classes', 'displayEmpty', 'input', 'inputProps', 'MenuProps', 'multiple', 'native', 'onClose', 'onOpen', 'open', 'renderValue']); - - - return _react2.default.cloneElement(input, (0, _extends3.default)({ - // Most of the logic is implemented in `SelectInput`. - // The `Select` component is a simple API wrapper to expose something better to play with. - inputComponent: _SelectInput2.default - }, other, { - inputProps: (0, _extends3.default)({}, inputProps, input ? input.props.inputProps : {}, { - autoWidth: autoWidth, - children: children, - classes: classes, - displayEmpty: displayEmpty, - MenuProps: MenuProps, - multiple: multiple, - native: native, - onClose: onClose, - onOpen: onOpen, - open: open, - renderValue: renderValue - }) - })); -} - -Select.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If true, the width of the popover will automatically be set according to the items inside the - * menu, otherwise it will be at least the width of the select input. - */ - autoWidth: _propTypes2.default.bool, - /** - * The option elements to populate the select with. - * Can be some `MenuItem` when `native` is false and `option` when `native` is true. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * If `true`, the selected item is displayed even if its value is empty. - * You can only use it when the `native` property is `false` (default). - */ - displayEmpty: _propTypes2.default.bool, - /** - * An `Input` element; does not have to be a material-ui specific `Input`. - */ - input: _propTypes2.default.element, - /** - * Properties applied to the `input` element. - * When `native` is `true`, the properties are applied on the `select` element. - */ - inputProps: _propTypes2.default.object, - /** - * Properties applied to the `Menu` element. - */ - MenuProps: _propTypes2.default.object, - /** - * If true, `value` must be an array and the menu will support multiple selections. - * You can only use it when the `native` property is `false` (default). - */ - multiple: _propTypes2.default.bool, - /** - * If `true`, the component will be using a native `select` element. - */ - native: _propTypes2.default.bool, - /** - * Callback function fired when a menu item is selected. - * - * @param {object} event The event source of the callback - * @param {object} child The react element that was selected - */ - onChange: _propTypes2.default.func, - /** - * Callback fired when the component requests to be closed. - * Useful in controlled mode (see open). - * - * @param {object} event The event source of the callback - */ - onClose: _propTypes2.default.func, - /** - * Callback fired when the component requests to be opened. - * Useful in controlled mode (see open). - * - * @param {object} event The event source of the callback - */ - onOpen: _propTypes2.default.func, - /** - * Control `select` open state. - * You can only use it when the `native` property is `false` (default). - */ - open: _propTypes2.default.bool, - /** - * Render the selected value. - * You can only use it when the `native` property is `false` (default). - */ - renderValue: _propTypes2.default.func, - /** - * The input value, required for a controlled component. - */ - value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) -} : {}; - -Select.defaultProps = { - autoWidth: false, - displayEmpty: false, - input: _react2.default.createElement(_Input2.default, null), - multiple: false, - native: false -}; - -Select.muiName = 'Select'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSelect' })(Select); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Select/SelectInput.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _toConsumableArray2 = __webpack_require__("./node_modules/babel-runtime/helpers/toConsumableArray.js"); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _keycode = __webpack_require__("./node_modules/keycode/index.js"); - -var _keycode2 = _interopRequireDefault(_keycode); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _ArrowDropDown = __webpack_require__("./node_modules/material-ui/internal/svg-icons/ArrowDropDown.js"); - -var _ArrowDropDown2 = _interopRequireDefault(_ArrowDropDown); - -var _Menu = __webpack_require__("./node_modules/material-ui/Menu/Menu.js"); - -var _Menu2 = _interopRequireDefault(_Menu); - -var _Input = __webpack_require__("./node_modules/material-ui/Input/Input.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var SelectInput = function (_React$Component) { - (0, _inherits3.default)(SelectInput, _React$Component); - - function SelectInput() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, SelectInput); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = SelectInput.__proto__ || (0, _getPrototypeOf2.default)(SelectInput)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - open: false - }, _this.ignoreNextBlur = false, _this.displayNode = null, _this.isControlled = _this.props.open !== undefined, _this.update = _this.isControlled ? function (_ref2) { - var event = _ref2.event, - open = _ref2.open; - - if (open) { - _this.props.onOpen(event); - } else { - _this.props.onClose(event); - } - } : function (_ref3) { - var open = _ref3.open; - return _this.setState({ open: open }); - }, _this.handleClick = function (event) { - // Opening the menu is going to blur the. It will be focused back when closed. - _this.ignoreNextBlur = true; - _this.update({ - open: true, - event: event - }); - }, _this.handleClose = function (event) { - _this.update({ - open: false, - event: event - }); - }, _this.handleItemClick = function (child) { - return function (event) { - if (!_this.props.multiple) { - _this.update({ - open: false, - event: event - }); - } - - var _this$props = _this.props, - onChange = _this$props.onChange, - name = _this$props.name; - - - if (onChange) { - var value = void 0; - var target = void 0; - - if (event.target) { - target = event.target; - } - - if (_this.props.multiple) { - value = Array.isArray(_this.props.value) ? [].concat((0, _toConsumableArray3.default)(_this.props.value)) : []; - var itemIndex = value.indexOf(child.props.value); - if (itemIndex === -1) { - value.push(child.props.value); - } else { - value.splice(itemIndex, 1); - } - } else { - value = child.props.value; - } - - event.persist(); - event.target = (0, _extends3.default)({}, target, { value: value, name: name }); - - onChange(event, child); - } - }; - }, _this.handleBlur = function (event) { - if (_this.ignoreNextBlur === true) { - // The parent components are relying on the bubbling of the event. - event.stopPropagation(); - _this.ignoreNextBlur = false; - return; - } - - if (_this.props.onBlur) { - _this.props.onBlur(event); - } - }, _this.handleKeyDown = function (event) { - if (_this.props.readOnly) { - return; - } - - if (['space', 'up', 'down'].includes((0, _keycode2.default)(event))) { - event.preventDefault(); - // Opening the menu is going to blur the. It will be focused back when closed. - _this.ignoreNextBlur = true; - _this.update({ - open: true, - event: event - }); - } - }, _this.handleSelectRef = function (node) { - if (!_this.props.inputRef) { - return; - } - - _this.props.inputRef({ - node: node, - // By pass the native input as we expose a rich object (array). - value: _this.props.value - }); - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(SelectInput, [{ - key: 'componentDidMount', - value: function componentDidMount() { - if (this.isControlled && this.props.open) { - // Focus the display node so the focus is restored on this element once - // the menu is closed. - this.displayNode.focus(); - // Rerender with the resolve `displayNode` reference. - this.forceUpdate(); - } - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - autoWidth = _props.autoWidth, - children = _props.children, - classes = _props.classes, - classNameProp = _props.className, - disabled = _props.disabled, - displayEmpty = _props.displayEmpty, - inputRef = _props.inputRef, - _props$MenuProps = _props.MenuProps, - MenuProps = _props$MenuProps === undefined ? {} : _props$MenuProps, - multiple = _props.multiple, - name = _props.name, - native = _props.native, - onBlur = _props.onBlur, - onChange = _props.onChange, - onClose = _props.onClose, - onFocus = _props.onFocus, - onOpen = _props.onOpen, - openProp = _props.open, - readOnly = _props.readOnly, - renderValue = _props.renderValue, - value = _props.value, - other = (0, _objectWithoutProperties3.default)(_props, ['autoWidth', 'children', 'classes', 'className', 'disabled', 'displayEmpty', 'inputRef', 'MenuProps', 'multiple', 'name', 'native', 'onBlur', 'onChange', 'onClose', 'onFocus', 'onOpen', 'open', 'readOnly', 'renderValue', 'value']); - - var open = this.isControlled && this.displayNode ? openProp : this.state.open; - - if (native) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(multiple === false, 'Material-UI: you can not use the `native` and `multiple` properties ' + 'at the same time on a `Select` component.') : void 0; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!renderValue, 'Material-UI: the `renderValue` property is not used by the native implementation.') : void 0; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!displayEmpty, 'Material-UI: the `displayEmpty` property is not used by the native implementation.') : void 0; - - return _react2.default.createElement( - 'div', - { className: classes.root }, - _react2.default.createElement( - 'select', - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.select, (0, _defineProperty3.default)({}, classes.disabled, disabled), classNameProp), - name: name, - disabled: disabled, - onBlur: onBlur, - onChange: onChange, - onFocus: onFocus, - value: value, - readOnly: readOnly, - ref: inputRef - }, other), - children - ), - _react2.default.createElement(_ArrowDropDown2.default, { className: classes.icon }) - ); - } - - if (value === undefined) { - throw new Error('Material-UI: the `value` property is required ' + 'when using the `Select` component with `native=false`.'); - } - - var display = void 0; - var displaySingle = ''; - var displayMultiple = []; - var computeDisplay = false; - - // No need to display any value if the field is empty. - if ((0, _Input.isDirty)(this.props) || displayEmpty) { - if (renderValue) { - display = renderValue(value); - } else { - computeDisplay = true; - } - } - - var items = _react2.default.Children.map(children, function (child) { - if (!_react2.default.isValidElement(child)) { - return null; - } - var selected = void 0; - - if (multiple) { - if (!Array.isArray(value)) { - throw new Error('Material-UI: the `value` property must be an array ' + 'when using the `Select` component with `multiple`.'); - } - - selected = value.indexOf(child.props.value) !== -1; - if (selected && computeDisplay) { - displayMultiple.push(child.props.children); - } - } else { - selected = value === child.props.value; - if (selected && computeDisplay) { - displaySingle = child.props.children; - } - } - - return _react2.default.cloneElement(child, { - role: 'option', - selected: selected, - onClick: _this2.handleItemClick(child) - }); - }); - - if (computeDisplay) { - display = multiple ? displayMultiple.join(', ') : displaySingle; - } - - var MenuMinWidth = this.displayNode && !autoWidth ? this.displayNode.clientWidth : undefined; - - return _react2.default.createElement( - 'div', - { className: classes.root }, - _react2.default.createElement( - 'div', - { - className: (0, _classnames2.default)(classes.select, classes.selectMenu, (0, _defineProperty3.default)({}, classes.disabled, disabled), classNameProp), - ref: function ref(node) { - _this2.displayNode = node; - }, - - 'aria-pressed': open ? 'true' : 'false', - tabIndex: disabled ? null : 0, - role: 'button', - 'aria-owns': open ? 'menu-' + (name || '') : null, - 'aria-haspopup': 'true', - onKeyDown: this.handleKeyDown, - onBlur: this.handleBlur, - onClick: disabled || readOnly ? null : this.handleClick, - onFocus: onFocus - }, - display - ), - _react2.default.createElement('input', (0, _extends3.default)({ - value: Array.isArray(value) ? value.join(',') : value, - name: name, - readOnly: readOnly, - ref: this.handleSelectRef - }, other, { - type: 'hidden' - })), - _react2.default.createElement(_ArrowDropDown2.default, { className: classes.icon }), - _react2.default.createElement( - _Menu2.default, - (0, _extends3.default)({ - id: 'menu-' + (name || ''), - anchorEl: this.displayNode, - open: open, - onClose: this.handleClose - }, MenuProps, { - MenuListProps: (0, _extends3.default)({ - role: 'listbox' - }, MenuProps.MenuListProps), - PaperProps: (0, _extends3.default)({}, MenuProps.PaperProps, { - style: (0, _extends3.default)({ - minWidth: MenuMinWidth - }, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null) - }) - }), - items - ) - ); - } - }]); - return SelectInput; -}(_react2.default.Component); - -SelectInput.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If true, the width of the popover will automatically be set according to the items inside the - * menu, otherwise it will be at least the width of the select input. - */ - autoWidth: _propTypes2.default.bool, - /** - * The option elements to populate the select with. - * Can be some `MenuItem` when `native` is false and `option` when `native` is true. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * The CSS class name of the select element. - */ - className: _propTypes2.default.string, - /** - * If `true`, the select will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the selected item is displayed even if its value is empty. - * You can only use it when the `native` property is `false` (default). - */ - displayEmpty: _propTypes2.default.bool, - /** - * Use that property to pass a ref callback to the native select element. - */ - inputRef: _propTypes2.default.func, - /** - * Properties applied to the `Menu` element. - */ - MenuProps: _propTypes2.default.object, - /** - * If true, `value` must be an array and the menu will support multiple selections. - * You can only use it when the `native` property is `false` (default). - */ - multiple: _propTypes2.default.bool, - /** - * Name attribute of the `select` or hidden `input` element. - */ - name: _propTypes2.default.string, - /** - * If `true`, the component will be using a native `select` element. - */ - native: _propTypes2.default.bool, - /** - * @ignore - */ - onBlur: _propTypes2.default.func, - /** - * Callback function fired when a menu item is selected. - * - * @param {object} event The event source of the callback - * @param {object} child The react element that was selected - */ - onChange: _propTypes2.default.func, - /** - * Callback fired when the component requests to be closed. - * Useful in controlled mode (see open). - * - * @param {object} event The event source of the callback - */ - onClose: _propTypes2.default.func, - /** - * @ignore - */ - onFocus: _propTypes2.default.func, - /** - * Callback fired when the component requests to be opened. - * Useful in controlled mode (see open). - * - * @param {object} event The event source of the callback - */ - onOpen: _propTypes2.default.func, - /** - * Control `select` open state. - * You can only use it when the `native` property is `false` (default). - */ - open: _propTypes2.default.bool, - /** - * @ignore - */ - readOnly: _propTypes2.default.bool, - /** - * Render the selected value. - * You can only use it when the `native` property is `false` (default). - */ - renderValue: _propTypes2.default.func, - /** - * The value of the component, required for a controlled component. - */ - value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) -} : {}; - -exports.default = SelectInput; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Select/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Select = __webpack_require__("./node_modules/material-ui/Select/Select.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Select).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Snackbar/Snackbar.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _extends8 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends9 = _interopRequireDefault(_extends8); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -var _ClickAwayListener = __webpack_require__("./node_modules/material-ui/utils/ClickAwayListener.js"); - -var _ClickAwayListener2 = _interopRequireDefault(_ClickAwayListener); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _Slide = __webpack_require__("./node_modules/material-ui/transitions/Slide.js"); - -var _Slide2 = _interopRequireDefault(_Slide); - -var _SnackbarContent = __webpack_require__("./node_modules/material-ui/Snackbar/SnackbarContent.js"); - -var _SnackbarContent2 = _interopRequireDefault(_SnackbarContent); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - var gutter = theme.spacing.unit * 3; - var top = { top: 0 }; - var bottom = { bottom: 0 }; - var right = { justifyContent: 'flex-end' }; - var left = { justifyContent: 'flex-start' }; - var topSpace = { top: gutter }; - var bottomSpace = { bottom: gutter }; - var rightSpace = { right: gutter }; - var leftSpace = { left: gutter }; - var center = { - left: '50%', - right: 'auto', - transform: 'translateX(-50%)' - }; - - return { - root: { - zIndex: theme.zIndex.snackbar, - position: 'fixed', - display: 'flex', - left: 0, - right: 0, - justifyContent: 'center', - alignItems: 'center' - }, - anchorTopCenter: (0, _extends9.default)({}, top, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({}, center))), - anchorBottomCenter: (0, _extends9.default)({}, bottom, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({}, center))), - anchorTopRight: (0, _extends9.default)({}, top, right, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ - left: 'auto' - }, topSpace, rightSpace))), - anchorBottomRight: (0, _extends9.default)({}, bottom, right, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ - left: 'auto' - }, bottomSpace, rightSpace))), - anchorTopLeft: (0, _extends9.default)({}, top, left, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ - right: 'auto' - }, topSpace, leftSpace))), - anchorBottomLeft: (0, _extends9.default)({}, bottom, left, (0, _defineProperty3.default)({}, theme.breakpoints.up('md'), (0, _extends9.default)({ - right: 'auto' - }, bottomSpace, leftSpace))) - }; -}; - -var Snackbar = function (_React$Component) { - (0, _inherits3.default)(Snackbar, _React$Component); - - function Snackbar() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Snackbar); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Snackbar.__proto__ || (0, _getPrototypeOf2.default)(Snackbar)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - // Used to only render active snackbars. - exited: false - }, _this.timerAutoHide = null, _this.handleMouseEnter = function (event) { - if (_this.props.onMouseEnter) { - _this.props.onMouseEnter(event); - } - _this.handlePause(); - }, _this.handleMouseLeave = function (event) { - if (_this.props.onMouseLeave) { - _this.props.onMouseLeave(event); - } - _this.handleResume(); - }, _this.handleClickAway = function (event) { - if (_this.props.onClose) { - _this.props.onClose(event, 'clickaway'); - } - }, _this.handlePause = function () { - clearTimeout(_this.timerAutoHide); - }, _this.handleResume = function () { - if (_this.props.autoHideDuration != null) { - if (_this.props.resumeHideDuration !== undefined) { - _this.setAutoHideTimer(_this.props.resumeHideDuration); - return; - } - _this.setAutoHideTimer((_this.props.autoHideDuration || 0) * 0.5); - } - }, _this.handleExited = function () { - _this.setState({ exited: true }); - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Snackbar, [{ - key: 'componentWillMount', - value: function componentWillMount() { - if (!this.props.open) { - this.setState({ exited: true }); - } - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - if (this.props.open) { - this.setAutoHideTimer(); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - if (nextProps.open) { - this.setState({ exited: false }); - } - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(prevProps) { - if (prevProps.open !== this.props.open) { - if (this.props.open) { - this.setAutoHideTimer(); - } else { - clearTimeout(this.timerAutoHide); - } - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearTimeout(this.timerAutoHide); - } - - // Timer that controls delay before snackbar auto hides - - }, { - key: 'setAutoHideTimer', - value: function setAutoHideTimer() { - var _this2 = this; - - var autoHideDuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - - if (!this.props.onClose || this.props.autoHideDuration == null) { - return; - } - - clearTimeout(this.timerAutoHide); - this.timerAutoHide = setTimeout(function () { - if (!_this2.props.onClose || _this2.props.autoHideDuration == null) { - return; - } - - _this2.props.onClose(null, 'timeout'); - }, autoHideDuration || this.props.autoHideDuration || 0); - } - - // Pause the timer when the user is interacting with the Snackbar - // or when the user hide the window. - - - // Restart the timer when the user is no longer interacting with the Snackbar - // or when the window is shown back. - - }, { - key: 'render', - value: function render() { - var _props = this.props, - action = _props.action, - _props$anchorOrigin = _props.anchorOrigin, - vertical = _props$anchorOrigin.vertical, - horizontal = _props$anchorOrigin.horizontal, - autoHideDuration = _props.autoHideDuration, - children = _props.children, - classes = _props.classes, - className = _props.className, - message = _props.message, - onClose = _props.onClose, - onEnter = _props.onEnter, - onEntered = _props.onEntered, - onEntering = _props.onEntering, - onExit = _props.onExit, - onExited = _props.onExited, - onExiting = _props.onExiting, - onMouseEnter = _props.onMouseEnter, - onMouseLeave = _props.onMouseLeave, - open = _props.open, - resumeHideDuration = _props.resumeHideDuration, - SnackbarContentProps = _props.SnackbarContentProps, - TransitionProp = _props.transition, - transitionDuration = _props.transitionDuration, - other = (0, _objectWithoutProperties3.default)(_props, ['action', 'anchorOrigin', 'autoHideDuration', 'children', 'classes', 'className', 'message', 'onClose', 'onEnter', 'onEntered', 'onEntering', 'onExit', 'onExited', 'onExiting', 'onMouseEnter', 'onMouseLeave', 'open', 'resumeHideDuration', 'SnackbarContentProps', 'transition', 'transitionDuration']); - - - if (!open && this.state.exited) { - return null; - } - - var transitionProps = {}; - - // The provided transition might not support the direction property. - if (TransitionProp === _Slide2.default) { - transitionProps.direction = vertical === 'top' ? 'down' : 'up'; - } - - return _react2.default.createElement( - _reactEventListener2.default, - { target: 'window', onFocus: this.handleResume, onBlur: this.handlePause }, - _react2.default.createElement( - _ClickAwayListener2.default, - { onClickAway: this.handleClickAway }, - _react2.default.createElement( - 'div', - (0, _extends9.default)({ - className: (0, _classnames2.default)(classes.root, classes['anchor' + (0, _helpers.capitalize)(vertical) + (0, _helpers.capitalize)(horizontal)], className), - onMouseEnter: this.handleMouseEnter, - onMouseLeave: this.handleMouseLeave - }, other), - _react2.default.createElement( - TransitionProp, - (0, _extends9.default)({ - appear: true, - 'in': open, - onEnter: onEnter, - onEntered: onEntered, - onEntering: onEntering, - onExit: onExit, - onExited: (0, _helpers.createChainedFunction)(this.handleExited, onExited), - onExiting: onExiting, - timeout: transitionDuration - }, transitionProps), - children || _react2.default.createElement(_SnackbarContent2.default, (0, _extends9.default)({ message: message, action: action }, SnackbarContentProps)) - ) - ) - ) - ); - } - }]); - return Snackbar; -}(_react2.default.Component); - -Snackbar.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The action to display. - */ - action: _propTypes2.default.node, - /** - * The anchor of the `Snackbar`. - */ - anchorOrigin: _propTypes2.default.shape({ - horizontal: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['left', 'center', 'right'])]), - vertical: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['top', 'center', 'bottom'])]) - }), - /** - * The number of milliseconds to wait before automatically calling the - * `onClose` function. `onClose` should then set the state of the `open` - * prop to hide the Snackbar. This behavior is disabled by default with - * the `null` value. - */ - autoHideDuration: _propTypes2.default.number, - /** - * If you wish the take control over the children of the component you can use this property. - * When used, you replace the `SnackbarContent` component with the children. - */ - children: _propTypes2.default.element, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * When displaying multiple consecutive Snackbars from a parent rendering a single - * , add the key property to ensure independent treatment of each message. - * e.g. , otherwise, the message may update-in-place and - * features such as autoHideDuration may be canceled. - */ - key: _propTypes2.default.any, - /** - * The message to display. - */ - message: _propTypes2.default.node, - /** - * Callback fired when the component requests to be closed. - * Typically `onClose` is used to set state in the parent component, - * which is used to control the `Snackbar` `open` prop. - * The `reason` parameter can optionally be used to control the response to `onClose`, - * for example ignoring `clickaway`. - * - * @param {object} event The event source of the callback - * @param {string} reason Can be:`"timeout"` (`autoHideDuration` expired) or: `"clickaway"` - */ - onClose: _propTypes2.default.func, - /** - * Callback fired before the transition is entering. - */ - onEnter: _propTypes2.default.func, - /** - * Callback fired when the transition has entered. - */ - onEntered: _propTypes2.default.func, - /** - * Callback fired when the transition is entering. - */ - onEntering: _propTypes2.default.func, - /** - * Callback fired before the transition is exiting. - */ - onExit: _propTypes2.default.func, - /** - * Callback fired when the transition has exited. - */ - onExited: _propTypes2.default.func, - /** - * Callback fired when the transition is exiting. - */ - onExiting: _propTypes2.default.func, - /** - * @ignore - */ - onMouseEnter: _propTypes2.default.func, - /** - * @ignore - */ - onMouseLeave: _propTypes2.default.func, - /** - * If true, `Snackbar` is open. - */ - open: _propTypes2.default.bool, - /** - * The number of milliseconds to wait before dismissing after user interaction. - * If `autoHideDuration` property isn't specified, it does nothing. - * If `autoHideDuration` property is specified but `resumeHideDuration` isn't, - * we default to `autoHideDuration / 2` ms. - */ - resumeHideDuration: _propTypes2.default.number, - /** - * Properties applied to the `SnackbarContent` element. - */ - SnackbarContentProps: _propTypes2.default.object, - /** - * Transition component. - */ - transition: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - */ - transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) -} : {}; - -Snackbar.defaultProps = { - anchorOrigin: { - vertical: 'bottom', - horizontal: 'center' - }, - transition: _Slide2.default, - transitionDuration: { - enter: _transitions.duration.enteringScreen, - exit: _transitions.duration.leavingScreen - } -}; - -exports.default = (0, _withStyles2.default)(styles, { flip: false, name: 'MuiSnackbar' })(Snackbar); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Snackbar/SnackbarContent.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - var _root; - - var emphasis = theme.palette.type === 'light' ? 0.8 : 0.98; - var backgroundColor = (0, _colorManipulator.emphasize)(theme.palette.background.default, emphasis); - - return { - root: (_root = { - pointerEvents: 'initial', - color: theme.palette.getContrastText(backgroundColor), - backgroundColor: backgroundColor, - display: 'flex', - alignItems: 'center', - flexWrap: 'wrap', - padding: '6px ' + theme.spacing.unit * 3 + 'px' - }, (0, _defineProperty3.default)(_root, theme.breakpoints.up('md'), { - minWidth: 288, - maxWidth: 568, - borderRadius: 2 - }), (0, _defineProperty3.default)(_root, theme.breakpoints.down('sm'), { - flexGrow: 1 - }), _root), - message: { - padding: theme.spacing.unit + 'px 0' - }, - action: { - display: 'flex', - alignItems: 'center', - marginLeft: 'auto', - paddingLeft: theme.spacing.unit * 3, - marginRight: -theme.spacing.unit - } - }; -}; // @inheritedComponent Paper - -function SnackbarContent(props) { - var action = props.action, - classes = props.classes, - className = props.className, - message = props.message, - other = (0, _objectWithoutProperties3.default)(props, ['action', 'classes', 'className', 'message']); - - - return _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ - component: _Typography2.default, - headlineMapping: { - body1: 'div' - }, - role: 'alertdialog', - square: true, - elevation: 6, - className: (0, _classnames2.default)(classes.root, className) - }, other), - _react2.default.createElement( - 'div', - { className: classes.message }, - message - ), - action ? _react2.default.createElement( - 'div', - { className: classes.action }, - action - ) : null - ); -} - -SnackbarContent.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The action to display. - */ - action: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The message to display. - */ - message: _propTypes2.default.node -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSnackbarContent' })(SnackbarContent); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Snackbar/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Snackbar = __webpack_require__("./node_modules/material-ui/Snackbar/Snackbar.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Snackbar).default; - } -}); - -var _SnackbarContent = __webpack_require__("./node_modules/material-ui/Snackbar/SnackbarContent.js"); - -Object.defineProperty(exports, 'SnackbarContent', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_SnackbarContent).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/Step.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: {}, - horizontal: { - paddingLeft: theme.spacing.unit, - paddingRight: theme.spacing.unit, - '&:first-child': { - paddingLeft: 0 - }, - '&:last-child': { - paddingRight: 0 - } - }, - vertical: {}, - alternativeLabel: { - flex: 1, - position: 'relative' - } - }; -}; - -function Step(props) { - var active = props.active, - alternativeLabel = props.alternativeLabel, - children = props.children, - classes = props.classes, - classNameProp = props.className, - completed = props.completed, - connector = props.connector, - disabled = props.disabled, - index = props.index, - last = props.last, - orientation = props.orientation, - other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'connector', 'disabled', 'index', 'last', 'orientation']); - - - var className = (0, _classnames2.default)(classes.root, classes[orientation], (0, _defineProperty3.default)({}, classes.alternativeLabel, alternativeLabel), classNameProp); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - _react2.default.Children.map(children, function (child) { - return _react2.default.cloneElement(child, (0, _extends3.default)({ - active: active, - alternativeLabel: alternativeLabel, - completed: completed, - disabled: disabled, - icon: index + 1, - last: last, - orientation: orientation - }, child.props)); - }), - connector && alternativeLabel && !last && _react2.default.cloneElement(connector, { orientation: orientation, alternativeLabel: alternativeLabel }) - ); -} - -Step.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Sets the step as active. Is passed to child components. - */ - active: _propTypes2.default.bool, - /** - * @ignore - * Set internally by Stepper when it's supplied with the alternativeLabel property. - */ - alternativeLabel: _propTypes2.default.bool, - /** - * Should be `Step` sub-components such as `StepLabel`, `StepContent`. - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Mark the step as completed. Is passed to child components. - */ - completed: _propTypes2.default.bool, - /** - * @ignore - * Passed down from Stepper if alternativeLabel is also set. - */ - connector: _propTypes2.default.element, - /** - * Mark the step as disabled, will also disable the button if - * `StepButton` is a child of `Step`. Is passed to child components. - */ - disabled: _propTypes2.default.bool, - /** - * @ignore - * Used internally for numbering. - */ - index: _propTypes2.default.number, - /** - * @ignore - */ - last: _propTypes2.default.bool, - /** - * @ignore - */ - orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) -} : {}; - -Step.defaultProps = { - active: false, - completed: false, - disabled: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStep' })(Step); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/StepButton.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -var _StepLabel = __webpack_require__("./node_modules/material-ui/Stepper/StepLabel.js"); - -var _StepLabel2 = _interopRequireDefault(_StepLabel); - -var _reactHelpers = __webpack_require__("./node_modules/material-ui/utils/reactHelpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - width: '100%', - padding: theme.spacing.unit * 3 + 'px ' + theme.spacing.unit * 2 + 'px', - margin: -theme.spacing.unit * 3 + 'px ' + -theme.spacing.unit * 2 + 'px', - boxSizing: 'content-box' - } - }; -}; // @inheritedComponent ButtonBase - -function StepButton(props) { - var active = props.active, - alternativeLabel = props.alternativeLabel, - children = props.children, - classes = props.classes, - classNameProp = props.className, - completed = props.completed, - disabled = props.disabled, - icon = props.icon, - last = props.last, - optional = props.optional, - orientation = props.orientation, - other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'disabled', 'icon', 'last', 'optional', 'orientation']); - - - var childProps = { - active: active, - alternativeLabel: alternativeLabel, - completed: completed, - disabled: disabled, - icon: icon, - optional: optional, - orientation: orientation - }; - var child = (0, _reactHelpers.isMuiElement)(children, ['StepLabel']) ? _react2.default.cloneElement(children, childProps) : _react2.default.createElement( - _StepLabel2.default, - childProps, - children - ); - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends3.default)({ disabled: disabled, className: (0, _classnames2.default)(classes.root, classNameProp) }, other), - child - ); -} - -StepButton.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * @ignore - * Passed in via `Step` - passed through to `StepLabel`. - */ - active: _propTypes2.default.bool, - /** - * @ignore - * Set internally by Stepper when it's supplied with the alternativeLabel property. - */ - alternativeLabel: _propTypes2.default.bool, - /** - * Can be a `StepLabel` or a node to place inside `StepLabel` as children. - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - * Sets completed styling. Is passed to StepLabel. - */ - completed: _propTypes2.default.bool, - /** - * @ignore - * Disables the button and sets disabled styling. Is passed to StepLabel. - */ - disabled: _propTypes2.default.bool, - /** - * The icon displayed by the step label. - */ - icon: _propTypes2.default.node, - /** - * @ignore - */ - last: _propTypes2.default.bool, - /** - * The optional node to display. - */ - optional: _propTypes2.default.node, - /** - * @ignore - */ - orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepButton' })(StepButton); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/StepConnector.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - flex: '1 1 auto' - }, - horizontal: {}, - vertical: { - marginLeft: 12, // half icon - padding: '0 0 ' + theme.spacing.unit + 'px' - }, - alternativeLabel: { - position: 'absolute', - top: theme.spacing.unit + 4, - left: 'calc(50% + 20px)', - right: 'calc(-50% + 20px)' - }, - line: { - display: 'block', - borderColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600] - }, - lineHorizontal: { - borderTopStyle: 'solid', - borderTopWidth: 1 - }, - lineVertical: { - borderLeftStyle: 'solid', - borderLeftWidth: 1, - minHeight: theme.spacing.unit * 3 - } - }; -}; - -/** - * @ignore - internal component. - */ -function StepConnector(props) { - var _classNames2; - - var alternativeLabel = props.alternativeLabel, - classNameProp = props.className, - classes = props.classes, - orientation = props.orientation, - other = (0, _objectWithoutProperties3.default)(props, ['alternativeLabel', 'className', 'classes', 'orientation']); - - - var className = (0, _classnames2.default)(classes.root, classes[orientation], (0, _defineProperty3.default)({}, classes.alternativeLabel, alternativeLabel), classNameProp); - var lineClassName = (0, _classnames2.default)(classes.line, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.lineHorizontal, orientation === 'horizontal'), (0, _defineProperty3.default)(_classNames2, classes.lineVertical, orientation === 'vertical'), _classNames2)); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - _react2.default.createElement('span', { className: lineClassName }) - ); -} - -StepConnector.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * @ignore - * Set internally by Step when it's supplied with the alternativeLabel property. - */ - alternativeLabel: _propTypes2.default.bool, - /** - * Useful to extend the style applied to the component. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - */ - orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) -} : {}; - -StepConnector.defaultProps = { - alternativeLabel: false, - orientation: 'horizontal' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepConnector' })(StepConnector); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/StepContent.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _Collapse = __webpack_require__("./node_modules/material-ui/transitions/Collapse.js"); - -var _Collapse2 = _interopRequireDefault(_Collapse); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - marginTop: theme.spacing.unit, - marginLeft: 12, // half icon - paddingLeft: theme.spacing.unit + 12, // margin + half icon - paddingRight: theme.spacing.unit, - borderLeft: '1px solid ' + (theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]) - }, - last: { - borderLeft: 'none' - }, - transition: {} - }; -}; - -function StepContent(props) { - var active = props.active, - alternativeLabel = props.alternativeLabel, - children = props.children, - classes = props.classes, - classNameProp = props.className, - completed = props.completed, - last = props.last, - optional = props.optional, - orientation = props.orientation, - Transition = props.transition, - transitionDuration = props.transitionDuration, - other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'last', 'optional', 'orientation', 'transition', 'transitionDuration']); - - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(orientation === 'vertical', 'Material-UI: is only designed for use with the vertical stepper.') : void 0; - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.last, last), classNameProp); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - _react2.default.createElement( - Transition, - { - 'in': active, - className: classes.transition, - timeout: transitionDuration, - unmountOnExit: true - }, - children - ) - ); -} - -StepContent.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * @ignore - * Expands the content. - */ - active: _propTypes2.default.bool, - /** - * @ignore - * Set internally by Step when it's supplied with the alternativeLabel property. - */ - alternativeLabel: _propTypes2.default.bool, - /** - * Step content. - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - */ - completed: _propTypes2.default.bool, - /** - * @ignore - */ - last: _propTypes2.default.bool, - /** - * @ignore - * Set internally by Step when it's supplied with the optional property. - */ - optional: _propTypes2.default.bool, - /** - * @ignore - */ - orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']), - /** - * Collapse component. - */ - transition: _propTypes2.default.func, - /** - * Adjust the duration of the content expand transition. - * Passed as a property to the transition component. - * - * Set to 'auto' to automatically calculate transition time based on height. - */ - transitionDuration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) -} : {}; - -StepContent.defaultProps = { - transition: _Collapse2.default, - transitionDuration: 'auto' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepContent' })(StepContent); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/StepIcon.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _CheckCircle = __webpack_require__("./node_modules/material-ui/internal/svg-icons/CheckCircle.js"); - -var _CheckCircle2 = _interopRequireDefault(_CheckCircle); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _StepPositionIcon = __webpack_require__("./node_modules/material-ui/Stepper/StepPositionIcon.js"); - -var _StepPositionIcon2 = _interopRequireDefault(_StepPositionIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'block' - }, - completed: { - color: theme.palette.primary.main - } - }; -}; - -function StepIcon(props) { - var completed = props.completed, - icon = props.icon, - active = props.active, - classes = props.classes; - - - if (typeof icon === 'number' || typeof icon === 'string') { - if (completed) { - return _react2.default.createElement(_CheckCircle2.default, { className: (0, _classnames2.default)(classes.root, classes.completed) }); - } - return _react2.default.createElement(_StepPositionIcon2.default, { className: classes.root, position: icon, active: active }); - } - - return icon; -} - -StepIcon.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Whether this step is active. - */ - active: _propTypes2.default.bool, - /** - * Classses for component style customizations. - */ - classes: _propTypes2.default.object.isRequired, - /** - * Mark the step as completed. Is passed to child components. - */ - completed: _propTypes2.default.bool, - /** - * The icon displayed by the step label. - */ - icon: _propTypes2.default.node.isRequired -} : {}; - -StepIcon.defaultProps = { - active: false, - completed: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepIcon' })(StepIcon); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/StepLabel.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -var _StepIcon = __webpack_require__("./node_modules/material-ui/Stepper/StepIcon.js"); - -var _StepIcon2 = _interopRequireDefault(_StepIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - alignItems: 'center' - }, - horizontal: {}, - vertical: {}, - alternativeLabel: { - flexDirection: 'column' - }, - disabled: { - cursor: 'default' - }, - label: { - color: theme.palette.text.secondary - }, - labelActive: { - color: theme.palette.text.primary, - fontWeight: 500 - }, - labelCompleted: { - color: theme.palette.text.primary, - fontWeight: 500 - }, - labelAlternativeLabel: { - textAlign: 'center', - marginTop: theme.spacing.unit * 2 - }, - iconContainer: {}, - iconContainerNoAlternative: { - paddingRight: theme.spacing.unit - }, - labelContainer: { - width: '100%' - } - }; -}; - -function StepLabel(props) { - var _classNames, _classNames3; - - var active = props.active, - alternativeLabel = props.alternativeLabel, - children = props.children, - classes = props.classes, - classNameProp = props.className, - completed = props.completed, - disabled = props.disabled, - icon = props.icon, - last = props.last, - optional = props.optional, - orientation = props.orientation, - other = (0, _objectWithoutProperties3.default)(props, ['active', 'alternativeLabel', 'children', 'classes', 'className', 'completed', 'disabled', 'icon', 'last', 'optional', 'orientation']); - - - return _react2.default.createElement( - 'span', - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.root, classes[orientation], (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.alternativeLabel, alternativeLabel), _classNames), classNameProp) - }, other), - icon && _react2.default.createElement( - 'span', - { - className: (0, _classnames2.default)(classes.iconContainer, (0, _defineProperty3.default)({}, classes.iconContainerNoAlternative, !alternativeLabel)) - }, - _react2.default.createElement(_StepIcon2.default, { - completed: completed, - active: active, - icon: icon, - alternativeLabel: alternativeLabel - }) - ), - _react2.default.createElement( - 'span', - { className: classes.labelContainer }, - _react2.default.createElement( - _Typography2.default, - { - variant: 'body1', - component: 'span', - className: (0, _classnames2.default)(classes.label, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.labelAlternativeLabel, alternativeLabel), (0, _defineProperty3.default)(_classNames3, classes.labelCompleted, completed), (0, _defineProperty3.default)(_classNames3, classes.labelActive, active), _classNames3)) - }, - children - ), - optional - ) - ); -} - -StepLabel.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * @ignore - * Sets the step as active. Is passed to child components. - */ - active: _propTypes2.default.bool, - /** - * @ignore - * Set internally by Stepper when it's supplied with the alternativeLabel property. - */ - alternativeLabel: _propTypes2.default.bool, - /** - * In most cases will simply be a string containing a title for the label. - */ - children: _propTypes2.default.node, - /** - * Custom styles for component. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - * Mark the step as completed. Is passed to child components. - */ - completed: _propTypes2.default.bool, - /** - * Mark the step as disabled, will also disable the button if - * `StepLabelButton` is a child of `StepLabel`. Is passed to child components. - */ - disabled: _propTypes2.default.bool, - /** - * Override the default icon. - */ - icon: _propTypes2.default.node, - /** - * @ignore - */ - last: _propTypes2.default.bool, - /** - * The optional node to display. - */ - optional: _propTypes2.default.node, - /** - * @ignore - */ - orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) -} : {}; - -StepLabel.defaultProps = { - active: false, - alternativeLabel: false, - completed: false, - disabled: false, - last: false, - orientation: 'horizontal' -}; - -StepLabel.muiName = 'StepLabel'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepLabel' })(StepLabel); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/StepPositionIcon.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - color: theme.palette.text.disabled - }, - active: { - color: theme.palette.primary.main - }, - text: { - fill: theme.palette.primary.contrastText, - fontSize: theme.typography.caption.fontSize, - fontFamily: theme.typography.fontFamily - } - }; -}; - -/** - * @ignore - internal component. - */ - -var _ref = _react2.default.createElement('circle', { cx: '12', cy: '12', r: '12' }); - -function StepPositionIcon(props) { - var position = props.position, - classes = props.classes, - classNameProp = props.className, - active = props.active; - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.active, active), classNameProp); - - return _react2.default.createElement( - _SvgIcon2.default, - { className: className }, - _ref, - _react2.default.createElement( - 'text', - { className: classes.text, x: '12', y: '16', textAnchor: 'middle' }, - position - ) - ); -} - -StepPositionIcon.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Whether this step is active. - */ - active: _propTypes2.default.bool, - /** - * Classses for component style customizations. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The step position as a number. - */ - position: _propTypes2.default.node -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepPosition' })(StepPositionIcon); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/Stepper.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Paper = __webpack_require__("./node_modules/material-ui/Paper/index.js"); - -var _Paper2 = _interopRequireDefault(_Paper); - -var _StepConnector = __webpack_require__("./node_modules/material-ui/Stepper/StepConnector.js"); - -var _StepConnector2 = _interopRequireDefault(_StepConnector); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent Paper - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'flex', - padding: theme.spacing.unit * 3 - }, - horizontal: { - flexDirection: 'row', - alignItems: 'center' - }, - vertical: { - flexDirection: 'column' - }, - alternativeLabel: { - alignItems: 'flex-start' - } - }; -}; - -function Stepper(props) { - var activeStep = props.activeStep, - alternativeLabel = props.alternativeLabel, - children = props.children, - classes = props.classes, - classNameProp = props.className, - connectorProp = props.connector, - nonLinear = props.nonLinear, - orientation = props.orientation, - other = (0, _objectWithoutProperties3.default)(props, ['activeStep', 'alternativeLabel', 'children', 'classes', 'className', 'connector', 'nonLinear', 'orientation']); - - - var className = (0, _classnames2.default)(classes.root, classes[orientation], (0, _defineProperty3.default)({}, classes.alternativeLabel, alternativeLabel), classNameProp); - - var connector = _react2.default.isValidElement(connectorProp) ? _react2.default.cloneElement(connectorProp, { orientation: orientation }) : null; - var childrenArray = _react2.default.Children.toArray(children); - var steps = childrenArray.map(function (step, index) { - var controlProps = { - index: index, - orientation: orientation, - active: false, - completed: false, - disabled: false, - last: index + 1 === childrenArray.length, - alternativeLabel: alternativeLabel, - connector: connectorProp - }; - - if (activeStep === index) { - controlProps.active = true; - } else if (!nonLinear && activeStep > index) { - controlProps.completed = true; - } else if (!nonLinear && activeStep < index) { - controlProps.disabled = true; - } - - return [!alternativeLabel && connector && index > 0 && _react2.default.cloneElement(connector, { - key: index // eslint-disable-line react/no-array-index-key - }), _react2.default.cloneElement(step, (0, _extends3.default)({}, controlProps, step.props))]; - }); - - return _react2.default.createElement( - _Paper2.default, - (0, _extends3.default)({ square: true, elevation: 0, className: className }, other), - steps - ); -} - -Stepper.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Set the active step (zero based index). - */ - activeStep: _propTypes2.default.number, - /** - * If set to 'true' and orientation is horizontal, - * then the step label will be positioned under the icon. - */ - alternativeLabel: _propTypes2.default.bool, - /** - * Two or more `` components. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * A component to be placed between each step. - */ - connector: _propTypes2.default.element, - /** - * If set the `Stepper` will not assist in controlling steps for linear flow. - */ - nonLinear: _propTypes2.default.bool, - /** - * The stepper orientation (layout flow direction). - */ - orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']) -} : {}; - -Stepper.defaultProps = { - activeStep: 0, - alternativeLabel: false, - connector: _react2.default.createElement(_StepConnector2.default, null), - nonLinear: false, - orientation: 'horizontal' -}; - -Stepper.muiName = 'Stepper'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiStepper' })(Stepper); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Stepper/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Stepper = __webpack_require__("./node_modules/material-ui/Stepper/Stepper.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Stepper).default; - } -}); - -var _Step = __webpack_require__("./node_modules/material-ui/Stepper/Step.js"); - -Object.defineProperty(exports, 'Step', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Step).default; - } -}); - -var _StepButton = __webpack_require__("./node_modules/material-ui/Stepper/StepButton.js"); - -Object.defineProperty(exports, 'StepButton', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_StepButton).default; - } -}); - -var _StepContent = __webpack_require__("./node_modules/material-ui/Stepper/StepContent.js"); - -Object.defineProperty(exports, 'StepContent', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_StepContent).default; - } -}); - -var _StepIcon = __webpack_require__("./node_modules/material-ui/Stepper/StepIcon.js"); - -Object.defineProperty(exports, 'StepIcon', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_StepIcon).default; - } -}); - -var _StepLabel = __webpack_require__("./node_modules/material-ui/Stepper/StepLabel.js"); - -Object.defineProperty(exports, 'StepLabel', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_StepLabel).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/SvgIcon/SvgIcon.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'inline-block', - fill: 'currentColor', - height: 24, - width: 24, - userSelect: 'none', - flexShrink: 0, - transition: theme.transitions.create('fill', { - duration: theme.transitions.duration.shorter - }) - }, - colorPrimary: { - color: theme.palette.primary.main - }, - colorSecondary: { - color: theme.palette.secondary.main - }, - colorAction: { - color: theme.palette.action.active - }, - colorDisabled: { - color: theme.palette.action.disabled - }, - colorError: { - color: theme.palette.error.main - }, - fontSize: { - width: '1em', - height: '1em' - } - }; -}; - -function SvgIcon(props) { - var _classNames; - - var children = props.children, - classes = props.classes, - classNameProp = props.className, - color = props.color, - fontSize = props.fontSize, - nativeColor = props.nativeColor, - titleAccess = props.titleAccess, - viewBox = props.viewBox, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'fontSize', 'nativeColor', 'titleAccess', 'viewBox']); - - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'inherit'), (0, _defineProperty3.default)(_classNames, classes.fontSize, fontSize), _classNames), classNameProp); - - return _react2.default.createElement( - 'svg', - (0, _extends3.default)({ - className: className, - focusable: 'false', - viewBox: viewBox, - color: nativeColor, - 'aria-hidden': titleAccess ? 'false' : 'true' - }, other), - titleAccess ? _react2.default.createElement( - 'title', - null, - titleAccess - ) : null, - children - ); -} - -SvgIcon.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Node passed into the SVG element. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - * You can use the `nativeColor` property to apply a color attribute to the SVG element. - */ - color: _propTypes2.default.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']), - /** - * If `true`, the icon size will be determined by the font-size. - */ - fontSize: _propTypes2.default.bool, - /** - * Applies a color attribute to the SVG element. - */ - nativeColor: _propTypes2.default.string, - /** - * Provides a human-readable title for the element that contains it. - * https://www.w3.org/TR/SVG-access/#Equivalent - */ - titleAccess: _propTypes2.default.string, - /** - * Allows you to redefine what the coordinates without units mean inside an SVG element. - * For example, if the SVG element is 500 (width) by 200 (height), - * and you pass viewBox="0 0 50 20", - * this means that the coordinates inside the SVG will go from the top left corner (0,0) - * to bottom right (50,20) and each unit will be worth 10px. - */ - viewBox: _propTypes2.default.string -} : {}; - -SvgIcon.defaultProps = { - color: 'inherit', - fontSize: false, - viewBox: '0 0 24 24' -}; - -SvgIcon.muiName = 'SvgIcon'; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSvgIcon' })(SvgIcon); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/SvgIcon/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/SvgIcon.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_SvgIcon).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Switch/Switch.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _SwitchBase = __webpack_require__("./node_modules/material-ui/internal/SwitchBase.js"); - -var _SwitchBase2 = _interopRequireDefault(_SwitchBase); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'inline-flex', - width: 62, - position: 'relative', - flexShrink: 0, - // For correct alignment with the text. - verticalAlign: 'middle' - }, - bar: { - borderRadius: 7, - display: 'block', - position: 'absolute', - width: 34, - height: 14, - top: '50%', - marginTop: -7, - left: '50%', - marginLeft: -17, - transition: theme.transitions.create(['opacity', 'background-color'], { - duration: theme.transitions.duration.shortest - }), - backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white, - opacity: theme.palette.type === 'light' ? 0.38 : 0.3 - }, - icon: { - boxShadow: theme.shadows[1], - backgroundColor: 'currentColor', - width: 20, - height: 20, - borderRadius: '50%' - }, - iconChecked: { - boxShadow: theme.shadows[2] - }, - // For SwitchBase - default: { - zIndex: 1, - color: theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[400], - transition: theme.transitions.create('transform', { - duration: theme.transitions.duration.shortest - }) - }, - checked: { - transform: 'translateX(14px)', - '& + $bar': { - opacity: 0.5 - } - }, - checkedPrimary: { - color: theme.palette.primary.main, - '& + $bar': { - backgroundColor: theme.palette.primary.main - } - }, - checkedSecondary: { - color: theme.palette.secondary.main, - '& + $bar': { - backgroundColor: theme.palette.secondary.main - } - }, - disabled: { - color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800], - '& + $bar': { - backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white, - opacity: theme.palette.type === 'light' ? 0.12 : 0.1 - }, - '& $icon': { - boxShadow: theme.shadows[1] - } - } - }; -}; - -function Switch(props) { - var _classNames; - - var classes = props.classes, - className = props.className, - color = props.color, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'color']); - - var icon = _react2.default.createElement('span', { className: classes.icon }); - var checkedIcon = _react2.default.createElement('span', { className: (0, _classnames2.default)(classes.icon, classes.iconChecked) }); - var checkedClass = (0, _classnames2.default)(classes.checked, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checkedPrimary, color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.checkedSecondary, color === 'secondary'), _classNames)); - - return _react2.default.createElement( - 'span', - { className: (0, _classnames2.default)(classes.root, className) }, - _react2.default.createElement(_SwitchBase2.default, (0, _extends3.default)({ - icon: icon, - classes: { - default: classes.default, - checked: checkedClass, - disabled: classes.disabled - }, - checkedIcon: checkedIcon - }, other)), - _react2.default.createElement('span', { className: classes.bar }) - ); -} - -Switch.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the component is checked. - */ - checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), - /** - * The icon to display when the component is checked. - */ - checkedIcon: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['primary', 'secondary']), - /** - * @ignore - */ - defaultChecked: _propTypes2.default.bool, - /** - * If `true`, the switch will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: _propTypes2.default.bool, - /** - * The icon to display when the component is unchecked. - */ - icon: _propTypes2.default.node, - /** - * The id of the `input` element. - */ - id: _propTypes2.default.string, - /** - * Properties applied to the `input` element. - */ - inputProps: _propTypes2.default.object, - /** - * Use that property to pass a ref callback to the native input component. - */ - inputRef: _propTypes2.default.func, - /* - * @ignore - */ - name: _propTypes2.default.string, - /** - * Callback fired when the state is changed. - * - * @param {object} event The event source of the callback - * @param {boolean} checked The `checked` value of the switch - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), - /** - * The input component property `type`. - */ - type: _propTypes2.default.string, - /** - * The value of the component. - */ - value: _propTypes2.default.string -} : {}; - -Switch.defaultProps = { - color: 'secondary' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSwitch' })(Switch); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Switch/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Switch = __webpack_require__("./node_modules/material-ui/Switch/Switch.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Switch).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Table/Table.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - fontFamily: theme.typography.fontFamily, - width: '100%', - borderCollapse: 'collapse', - borderSpacing: 0, - overflow: 'hidden' - } - }; -}; - -var Table = function (_React$Component) { - (0, _inherits3.default)(Table, _React$Component); - - function Table() { - (0, _classCallCheck3.default)(this, Table); - return (0, _possibleConstructorReturn3.default)(this, (Table.__proto__ || (0, _getPrototypeOf2.default)(Table)).apply(this, arguments)); - } - - (0, _createClass3.default)(Table, [{ - key: 'getChildContext', - value: function getChildContext() { - // eslint-disable-line class-methods-use-this - return { - table: {} - }; - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - classes = _props.classes, - classNameProp = _props.className, - Component = _props.component, - other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'component']); - - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, classNameProp) }, other)); - } - }]); - return Table; -}(_react2.default.Component); - -Table.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the table, normally `TableHeader` and `TableBody`. - */ - children: _propTypes2.default.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) -} : {}; - -Table.defaultProps = { - component: 'table' -}; - -Table.childContextTypes = { - table: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTable' })(Table); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TableBody.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var TableBody = function (_React$Component) { - (0, _inherits3.default)(TableBody, _React$Component); - - function TableBody() { - (0, _classCallCheck3.default)(this, TableBody); - return (0, _possibleConstructorReturn3.default)(this, (TableBody.__proto__ || (0, _getPrototypeOf2.default)(TableBody)).apply(this, arguments)); - } - - (0, _createClass3.default)(TableBody, [{ - key: 'getChildContext', - value: function getChildContext() { - // eslint-disable-line class-methods-use-this - return { - table: { - body: true - } - }; - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - Component = _props.component, - other = (0, _objectWithoutProperties3.default)(_props, ['component']); - - - return _react2.default.createElement(Component, other); - } - }]); - return TableBody; -}(_react2.default.Component); - -TableBody.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally `TableRow`. - */ - children: _propTypes2.default.node.isRequired, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) -} : {}; - -TableBody.defaultProps = { - component: 'tbody' -}; - -TableBody.childContextTypes = { - table: _propTypes2.default.object -}; - -exports.default = TableBody; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TableCell.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - // Workaround for a rendering bug with spanned columns in Chrome 62.0. - // Removes the alpha (sets it to 1), and lightens or darkens the theme color. - borderBottom: '1px solid\n ' + (theme.palette.type === 'light' ? (0, _colorManipulator.lighten)((0, _colorManipulator.fade)(theme.palette.divider, 1), 0.88) : (0, _colorManipulator.darken)((0, _colorManipulator.fade)(theme.palette.divider, 1), 0.8)), - textAlign: 'left' - }, - numeric: { - textAlign: 'right', - flexDirection: 'row-reverse' // can be dynamically inherited at runtime by contents - }, - typeHead: { - color: theme.palette.text.secondary, - fontSize: theme.typography.pxToRem(12), - fontWeight: theme.typography.fontWeightMedium, - position: 'relative' // Workaround for Tooltip positioning issue. - }, - typeBody: { - fontSize: theme.typography.pxToRem(13), - color: theme.palette.text.primary - }, - typeFooter: { - borderBottom: 0, - color: theme.palette.text.secondary, - fontSize: theme.typography.pxToRem(12) - }, - paddingDefault: { - padding: theme.spacing.unit / 2 + 'px ' + theme.spacing.unit * 7 + 'px ' + theme.spacing.unit / 2 + 'px ' + theme.spacing.unit * 3 + 'px', - '&:last-child': { - paddingRight: theme.spacing.unit * 3 - } - }, - paddingDense: { - paddingRight: theme.spacing.unit * 3 - }, - paddingCheckbox: { - padding: '0 12px' - } - }; -}; - -function TableCell(props, context) { - var _classNames; - - var children = props.children, - classes = props.classes, - classNameProp = props.className, - component = props.component, - sortDirection = props.sortDirection, - numeric = props.numeric, - padding = props.padding, - scopeProp = props.scope, - variant = props.variant, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'component', 'sortDirection', 'numeric', 'padding', 'scope', 'variant']); - var table = context.table; - - var Component = void 0; - if (component) { - Component = component; - } else { - Component = table && table.head ? 'th' : 'td'; - } - - var scope = scopeProp; - if (!scope && table && table.head) { - scope = 'col'; - } - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.numeric, numeric), (0, _defineProperty3.default)(_classNames, classes['padding' + (0, _helpers.capitalize)(padding)], padding !== 'none' && padding !== 'default'), (0, _defineProperty3.default)(_classNames, classes.paddingDefault, padding !== 'none'), (0, _defineProperty3.default)(_classNames, classes.typeHead, variant ? variant === 'head' : table && table.head), (0, _defineProperty3.default)(_classNames, classes.typeBody, variant ? variant === 'body' : table && table.body), (0, _defineProperty3.default)(_classNames, classes.typeFooter, variant ? variant === 'footer' : table && table.footer), _classNames), classNameProp); - - var ariaSort = null; - if (sortDirection) { - ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending'; - } - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ className: className, 'aria-sort': ariaSort, scope: scope }, other), - children - ); -} - -TableCell.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The table cell contents. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, content will align to the right. - */ - numeric: _propTypes2.default.bool, - /** - * Sets the padding applied to the cell. - */ - padding: _propTypes2.default.oneOf(['default', 'checkbox', 'dense', 'none']), - /** - * Set scope attribute. - */ - scope: _propTypes2.default.string, - /** - * Set aria-sort direction. - */ - sortDirection: _propTypes2.default.oneOf(['asc', 'desc', false]), - /** - * Specify the cell type. - * By default, the TableHead, TableBody or TableFooter parent component set the value. - */ - variant: _propTypes2.default.oneOf(['head', 'body', 'footer']) -} : {}; - -TableCell.defaultProps = { - numeric: false, - padding: 'default' -}; - -TableCell.contextTypes = { - table: _propTypes2.default.object.isRequired -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTableCell' })(TableCell); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TableFooter.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var TableFooter = function (_React$Component) { - (0, _inherits3.default)(TableFooter, _React$Component); - - function TableFooter() { - (0, _classCallCheck3.default)(this, TableFooter); - return (0, _possibleConstructorReturn3.default)(this, (TableFooter.__proto__ || (0, _getPrototypeOf2.default)(TableFooter)).apply(this, arguments)); - } - - (0, _createClass3.default)(TableFooter, [{ - key: 'getChildContext', - value: function getChildContext() { - // eslint-disable-line class-methods-use-this - return { - table: { - footer: true - } - }; - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - Component = _props.component, - other = (0, _objectWithoutProperties3.default)(_props, ['component']); - - - return _react2.default.createElement(Component, other); - } - }]); - return TableFooter; -}(_react2.default.Component); - -TableFooter.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally `TableRow`. - */ - children: _propTypes2.default.node, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) -} : {}; - -TableFooter.defaultProps = { - component: 'tfoot' -}; - -TableFooter.childContextTypes = { - table: _propTypes2.default.object -}; - -exports.default = TableFooter; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TableHead.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var TableHead = function (_React$Component) { - (0, _inherits3.default)(TableHead, _React$Component); - - function TableHead() { - (0, _classCallCheck3.default)(this, TableHead); - return (0, _possibleConstructorReturn3.default)(this, (TableHead.__proto__ || (0, _getPrototypeOf2.default)(TableHead)).apply(this, arguments)); - } - - (0, _createClass3.default)(TableHead, [{ - key: 'getChildContext', - value: function getChildContext() { - // eslint-disable-line class-methods-use-this - return { - table: { - head: true - } - }; - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - Component = _props.component, - other = (0, _objectWithoutProperties3.default)(_props, ['component']); - - - return _react2.default.createElement(Component, other); - } - }]); - return TableHead; -}(_react2.default.Component); - -TableHead.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally `TableRow`. - */ - children: _propTypes2.default.node.isRequired, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]) -} : {}; - -TableHead.defaultProps = { - component: 'thead' -}; - -TableHead.childContextTypes = { - table: _propTypes2.default.object -}; - -exports.default = TableHead; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TablePagination.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _Input = __webpack_require__("./node_modules/material-ui/Input/index.js"); - -var _Input2 = _interopRequireDefault(_Input); - -var _Menu = __webpack_require__("./node_modules/material-ui/Menu/index.js"); - -var _Select = __webpack_require__("./node_modules/material-ui/Select/index.js"); - -var _Select2 = _interopRequireDefault(_Select); - -var _TableCell = __webpack_require__("./node_modules/material-ui/Table/TableCell.js"); - -var _TableCell2 = _interopRequireDefault(_TableCell); - -var _Toolbar = __webpack_require__("./node_modules/material-ui/Toolbar/index.js"); - -var _Toolbar2 = _interopRequireDefault(_Toolbar); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/index.js"); - -var _Typography2 = _interopRequireDefault(_Typography); - -var _TablePaginationActions = __webpack_require__("./node_modules/material-ui/Table/TablePaginationActions.js"); - -var _TablePaginationActions2 = _interopRequireDefault(_TablePaginationActions); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent TableCell - -var styles = exports.styles = function styles(theme) { - return { - root: { - // Increase the specificity to override TableCell. - '&:last-child': { - padding: 0 - } - }, - toolbar: { - height: 56, - minHeight: 56, - paddingRight: 2 - }, - spacer: { - flex: '1 1 100%' - }, - caption: { - flexShrink: 0 - }, - input: { - fontSize: 'inherit', - flexShrink: 0 - }, - selectRoot: { - marginRight: theme.spacing.unit * 4, - marginLeft: theme.spacing.unit, - color: theme.palette.text.secondary - }, - select: { - paddingLeft: theme.spacing.unit, - paddingRight: theme.spacing.unit * 2 - }, - selectIcon: { - top: 1 - }, - actions: { - flexShrink: 0, - color: theme.palette.text.secondary, - marginLeft: theme.spacing.unit * 2.5 - } - }; -}; - -/** - * A `TableCell` based component for placing inside `TableFooter` for pagination. - */ - -var TablePagination = function (_React$Component) { - (0, _inherits3.default)(TablePagination, _React$Component); - - function TablePagination() { - (0, _classCallCheck3.default)(this, TablePagination); - return (0, _possibleConstructorReturn3.default)(this, (TablePagination.__proto__ || (0, _getPrototypeOf2.default)(TablePagination)).apply(this, arguments)); - } - - (0, _createClass3.default)(TablePagination, [{ - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - var count = nextProps.count, - onChangePage = nextProps.onChangePage, - rowsPerPage = nextProps.rowsPerPage; - - var newLastPage = Math.max(0, Math.ceil(count / rowsPerPage) - 1); - if (this.props.page > newLastPage) { - onChangePage(null, newLastPage); - } - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - Actions = _props.Actions, - backIconButtonProps = _props.backIconButtonProps, - classes = _props.classes, - colSpanProp = _props.colSpan, - Component = _props.component, - count = _props.count, - labelDisplayedRows = _props.labelDisplayedRows, - labelRowsPerPage = _props.labelRowsPerPage, - nextIconButtonProps = _props.nextIconButtonProps, - onChangePage = _props.onChangePage, - onChangeRowsPerPage = _props.onChangeRowsPerPage, - page = _props.page, - rowsPerPage = _props.rowsPerPage, - rowsPerPageOptions = _props.rowsPerPageOptions, - other = (0, _objectWithoutProperties3.default)(_props, ['Actions', 'backIconButtonProps', 'classes', 'colSpan', 'component', 'count', 'labelDisplayedRows', 'labelRowsPerPage', 'nextIconButtonProps', 'onChangePage', 'onChangeRowsPerPage', 'page', 'rowsPerPage', 'rowsPerPageOptions']); - - - var colSpan = void 0; - - if (Component === _TableCell2.default || Component === 'td') { - colSpan = colSpanProp || 1000; // col-span over everything - } - - return _react2.default.createElement( - Component, - (0, _extends3.default)({ className: classes.root, colSpan: colSpan }, other), - _react2.default.createElement( - _Toolbar2.default, - { className: classes.toolbar }, - _react2.default.createElement('div', { className: classes.spacer }), - rowsPerPageOptions.length > 1 && _react2.default.createElement( - _Typography2.default, - { variant: 'caption', className: classes.caption }, - labelRowsPerPage - ), - rowsPerPageOptions.length > 1 && _react2.default.createElement( - _Select2.default, - { - classes: { - root: classes.selectRoot, - select: classes.select, - icon: classes.selectIcon - }, - input: _react2.default.createElement(_Input2.default, { - classes: { - root: classes.input - }, - disableUnderline: true - }), - value: rowsPerPage, - onChange: onChangeRowsPerPage - }, - rowsPerPageOptions.map(function (rowsPerPageOption) { - return _react2.default.createElement( - _Menu.MenuItem, - { key: rowsPerPageOption, value: rowsPerPageOption }, - rowsPerPageOption - ); - }) - ), - _react2.default.createElement( - _Typography2.default, - { variant: 'caption', className: classes.caption }, - labelDisplayedRows({ - from: count === 0 ? 0 : page * rowsPerPage + 1, - to: Math.min(count, (page + 1) * rowsPerPage), - count: count, - page: page - }) - ), - _react2.default.createElement(Actions, { - backIconButtonProps: backIconButtonProps, - count: count, - nextIconButtonProps: nextIconButtonProps, - onChangePage: onChangePage, - page: page, - rowsPerPage: rowsPerPage - }) - ) - ); - } - }]); - return TablePagination; -}(_react2.default.Component); - -TablePagination.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The component used for displaying the actions. - * Either a string to use a DOM element or a component. - */ - Actions: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Properties applied to the back arrow `IconButton` component. - */ - backIconButtonProps: _propTypes2.default.object, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - colSpan: _propTypes2.default.number, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * The total number of rows. - */ - count: _propTypes2.default.number.isRequired, - /** - * Useful to customize the displayed rows label. - */ - labelDisplayedRows: _propTypes2.default.func, - /** - * Useful to customize the rows per page label. Invoked with a `{ from, to, count, page }` - * object. - */ - labelRowsPerPage: _propTypes2.default.node, - /** - * Properties applied to the next arrow `IconButton` component. - */ - nextIconButtonProps: _propTypes2.default.object, - /** - * Callback fired when the page is changed. - * - * @param {object} event The event source of the callback - * @param {number} page The page selected - */ - onChangePage: _propTypes2.default.func.isRequired, - /** - * Callback fired when the number of rows per page is changed. - * - * @param {object} event The event source of the callback - */ - onChangeRowsPerPage: _propTypes2.default.func, - /** - * The zero-based index of the current page. - */ - page: _propTypes2.default.number.isRequired, - /** - * The number of rows per page. - */ - rowsPerPage: _propTypes2.default.number.isRequired, - /** - * Customizes the options of the rows per page select field. If less than two options are - * available, no select field will be displayed. - */ - rowsPerPageOptions: _propTypes2.default.array -} : {}; - -TablePagination.defaultProps = { - Actions: _TablePaginationActions2.default, - component: _TableCell2.default, - labelDisplayedRows: function labelDisplayedRows(_ref) { - var from = _ref.from, - to = _ref.to, - count = _ref.count; - return from + '-' + to + ' of ' + count; - }, - labelRowsPerPage: 'Rows per page:', - rowsPerPageOptions: [5, 10, 25] -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTablePagination' })(TablePagination); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TablePaginationActions.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _KeyboardArrowLeft = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowLeft.js"); - -var _KeyboardArrowLeft2 = _interopRequireDefault(_KeyboardArrowLeft); - -var _KeyboardArrowRight = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowRight.js"); - -var _KeyboardArrowRight2 = _interopRequireDefault(_KeyboardArrowRight); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); - -var _IconButton2 = _interopRequireDefault(_IconButton); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - flexShrink: 0, - color: theme.palette.text.secondary, - marginLeft: theme.spacing.unit * 2.5 - } - }; -}; - -/** - * @ignore - internal component. - */ - -var _ref2 = _react2.default.createElement(_KeyboardArrowRight2.default, null); - -var _ref3 = _react2.default.createElement(_KeyboardArrowLeft2.default, null); - -var _ref4 = _react2.default.createElement(_KeyboardArrowLeft2.default, null); - -var _ref5 = _react2.default.createElement(_KeyboardArrowRight2.default, null); - -var TablePaginationActions = function (_React$Component) { - (0, _inherits3.default)(TablePaginationActions, _React$Component); - - function TablePaginationActions() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, TablePaginationActions); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TablePaginationActions.__proto__ || (0, _getPrototypeOf2.default)(TablePaginationActions)).call.apply(_ref, [this].concat(args))), _this), _this.handleBackButtonClick = function (event) { - _this.props.onChangePage(event, _this.props.page - 1); - }, _this.handleNextButtonClick = function (event) { - _this.props.onChangePage(event, _this.props.page + 1); - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(TablePaginationActions, [{ - key: 'render', - value: function render() { - var _props = this.props, - backIconButtonProps = _props.backIconButtonProps, - classes = _props.classes, - count = _props.count, - nextIconButtonProps = _props.nextIconButtonProps, - onChangePage = _props.onChangePage, - page = _props.page, - rowsPerPage = _props.rowsPerPage, - theme = _props.theme, - other = (0, _objectWithoutProperties3.default)(_props, ['backIconButtonProps', 'classes', 'count', 'nextIconButtonProps', 'onChangePage', 'page', 'rowsPerPage', 'theme']); - - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: classes.root }, other), - _react2.default.createElement( - _IconButton2.default, - (0, _extends3.default)({ - onClick: this.handleBackButtonClick, - disabled: page === 0 - }, backIconButtonProps), - theme.direction === 'rtl' ? _ref2 : _ref3 - ), - _react2.default.createElement( - _IconButton2.default, - (0, _extends3.default)({ - onClick: this.handleNextButtonClick, - disabled: page >= Math.ceil(count / rowsPerPage) - 1 - }, nextIconButtonProps), - theme.direction === 'rtl' ? _ref4 : _ref5 - ) - ); - } - }]); - return TablePaginationActions; -}(_react2.default.Component); - -TablePaginationActions.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Properties applied to the back arrow `IconButton` component. - */ - backIconButtonProps: _propTypes2.default.object, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * The total number of rows. - */ - count: _propTypes2.default.number.isRequired, - /** - * Properties applied to the next arrow `IconButton` component. - */ - nextIconButtonProps: _propTypes2.default.object, - /** - * Callback fired when the page is changed. - * - * @param {object} event The event source of the callback - * @param {number} page The page selected - */ - onChangePage: _propTypes2.default.func.isRequired, - /** - * The zero-based index of the current page. - */ - page: _propTypes2.default.number.isRequired, - /** - * The number of rows per page. - */ - rowsPerPage: _propTypes2.default.number.isRequired, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTablePaginationActions', withTheme: true })(TablePaginationActions); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TableRow.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - color: 'inherit', - display: 'table-row', - height: 48, - '&:focus': { - outline: 'none' - }, - verticalAlign: 'middle' - }, - typeHead: { - height: 56 - }, - typeFooter: { - height: 56 - }, - selected: { - backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.04)' // grey[100] - : 'rgba(255, 255, 255, 0.08)' - }, - hover: { - '&:hover': { - backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.07)' // grey[200] - : 'rgba(255, 255, 255, 0.14)' - } - } - }; -}; - -/** - * Will automatically set dynamic row height - * based on the material table element parent (head, body, etc). - */ -function TableRow(props, context) { - var _classNames; - - var classes = props.classes, - classNameProp = props.className, - Component = props.component, - hover = props.hover, - selected = props.selected, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'component', 'hover', 'selected']); - var table = context.table; - - - var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.typeHead, table && table.head), (0, _defineProperty3.default)(_classNames, classes.typeFooter, table && table.footer), (0, _defineProperty3.default)(_classNames, classes.hover, table && hover), (0, _defineProperty3.default)(_classNames, classes.selected, table && selected), _classNames), classNameProp); - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); -} - -TableRow.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Should be valid `` children such as `TableCell`. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the table row will shade on hover. - */ - hover: _propTypes2.default.bool, - /** - * If `true`, the table row will have the selected shading. - */ - selected: _propTypes2.default.bool -} : {}; - -TableRow.defaultProps = { - component: 'tr', - hover: false, - selected: false -}; - -TableRow.contextTypes = { - table: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTableRow' })(TableRow); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/TableSortLabel.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _ArrowDownward = __webpack_require__("./node_modules/material-ui/internal/svg-icons/ArrowDownward.js"); - -var _ArrowDownward2 = _interopRequireDefault(_ArrowDownward); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent ButtonBase - -var styles = exports.styles = function styles(theme) { - return { - root: { - cursor: 'pointer', - display: 'inline-flex', - justifyContent: 'flex-start', - flexDirection: 'inherit', - alignItems: 'center', - '&:hover': { - color: theme.palette.text.primary - }, - '&:focus': { - color: theme.palette.text.primary - } - }, - active: { - color: theme.palette.text.primary, - '& $icon': { - opacity: 1 - } - }, - icon: { - height: 16, - marginRight: 4, - marginLeft: 4, - opacity: 0, - transition: theme.transitions.create(['opacity', 'transform'], { - duration: theme.transitions.duration.shorter - }), - userSelect: 'none', - width: 16 - }, - desc: { - transform: 'rotate(0deg)' - }, - asc: { - transform: 'rotate(180deg)' - } - }; -}; - -/** - * A button based label for placing inside `TableCell` for column sorting. - */ -function TableSortLabel(props) { - var active = props.active, - classes = props.classes, - classNameProp = props.className, - children = props.children, - direction = props.direction, - other = (0, _objectWithoutProperties3.default)(props, ['active', 'classes', 'className', 'children', 'direction']); - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.active, active), classNameProp); - - var iconClassName = (0, _classnames2.default)(classes.icon, (0, _defineProperty3.default)({}, classes[direction], !!direction)); - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends3.default)({ className: className, component: 'span', disableRipple: true }, other), - children, - _react2.default.createElement(_ArrowDownward2.default, { className: iconClassName }) - ); -} - -TableSortLabel.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the label will have the active styling (should be true for the sorted column). - */ - active: _propTypes2.default.bool, - /** - * Label contents, the arrow will be appended automatically. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The current sort direction. - */ - direction: _propTypes2.default.oneOf(['asc', 'desc']) -} : {}; - -TableSortLabel.defaultProps = { - active: false, - direction: 'desc' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTableSortLabel' })(TableSortLabel); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Table/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Table = __webpack_require__("./node_modules/material-ui/Table/Table.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Table).default; - } -}); - -var _TableBody = __webpack_require__("./node_modules/material-ui/Table/TableBody.js"); - -Object.defineProperty(exports, 'TableBody', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TableBody).default; - } -}); - -var _TableCell = __webpack_require__("./node_modules/material-ui/Table/TableCell.js"); - -Object.defineProperty(exports, 'TableCell', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TableCell).default; - } -}); - -var _TableFooter = __webpack_require__("./node_modules/material-ui/Table/TableFooter.js"); - -Object.defineProperty(exports, 'TableFooter', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TableFooter).default; - } -}); - -var _TableHead = __webpack_require__("./node_modules/material-ui/Table/TableHead.js"); - -Object.defineProperty(exports, 'TableHead', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TableHead).default; - } -}); - -var _TablePagination = __webpack_require__("./node_modules/material-ui/Table/TablePagination.js"); - -Object.defineProperty(exports, 'TablePagination', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TablePagination).default; - } -}); - -var _TableRow = __webpack_require__("./node_modules/material-ui/Table/TableRow.js"); - -Object.defineProperty(exports, 'TableRow', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TableRow).default; - } -}); - -var _TableSortLabel = __webpack_require__("./node_modules/material-ui/Table/TableSortLabel.js"); - -Object.defineProperty(exports, 'TableSortLabel', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TableSortLabel).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Tabs/Tab.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _extends3 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends4 = _interopRequireDefault(_extends3); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent ButtonBase - -var styles = exports.styles = function styles(theme) { - return { - root: (0, _extends4.default)({}, theme.typography.button, (0, _defineProperty3.default)({ - maxWidth: 264, - position: 'relative', - minWidth: 72, - padding: 0, - height: 48, - flex: 'none', - overflow: 'hidden' - }, theme.breakpoints.up('md'), { - minWidth: 160 - })), - rootLabelIcon: { - height: 72 - }, - rootInherit: { - color: 'inherit', - opacity: 0.7 - }, - rootPrimary: { - color: theme.palette.text.secondary - }, - rootPrimarySelected: { - color: theme.palette.primary.main - }, - rootPrimaryDisabled: { - color: theme.palette.text.disabled - }, - rootSecondary: { - color: theme.palette.text.secondary - }, - rootSecondarySelected: { - color: theme.palette.secondary.main - }, - rootSecondaryDisabled: { - color: theme.palette.text.disabled - }, - rootInheritSelected: { - opacity: 1 - }, - rootInheritDisabled: { - opacity: 0.4 - }, - fullWidth: { - flexGrow: 1 - }, - wrapper: { - display: 'inline-flex', - alignItems: 'center', - justifyContent: 'center', - width: '100%', - flexDirection: 'column' - }, - labelContainer: (0, _defineProperty3.default)({ - paddingTop: 6, - paddingBottom: 6, - paddingLeft: 12, - paddingRight: 12 - }, theme.breakpoints.up('md'), { - paddingLeft: theme.spacing.unit * 3, - paddingRight: theme.spacing.unit * 3 - }), - label: (0, _defineProperty3.default)({ - fontSize: theme.typography.pxToRem(theme.typography.fontSize), - whiteSpace: 'normal' - }, theme.breakpoints.up('md'), { - fontSize: theme.typography.pxToRem(theme.typography.fontSize - 1) - }), - labelWrapped: (0, _defineProperty3.default)({}, theme.breakpoints.down('sm'), { - fontSize: theme.typography.pxToRem(theme.typography.fontSize - 2) - }) - }; -}; - -var Tab = function (_React$Component) { - (0, _inherits3.default)(Tab, _React$Component); - - function Tab() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Tab); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Tab.__proto__ || (0, _getPrototypeOf2.default)(Tab)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - wrappedText: false - }, _this.handleChange = function (event) { - var _this$props = _this.props, - onChange = _this$props.onChange, - value = _this$props.value, - onClick = _this$props.onClick; - - - if (onChange) { - onChange(event, value); - } - - if (onClick) { - onClick(event); - } - }, _this.label = undefined, _this.checkTextWrap = function () { - if (_this.label) { - var wrappedText = _this.label.getClientRects().length > 1; - if (_this.state.wrappedText !== wrappedText) { - _this.setState({ wrappedText: wrappedText }); - } - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Tab, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.checkTextWrap(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(prevProps, prevState) { - if (this.state.wrappedText === prevState.wrappedText) { - /** - * At certain text and tab lengths, a larger font size may wrap to two lines while the smaller - * font size still only requires one line. This check will prevent an infinite render loop - * fron occurring in that scenario. - */ - this.checkTextWrap(); - } - } - }, { - key: 'render', - value: function render() { - var _this2 = this, - _classNames2; - - var _props = this.props, - classes = _props.classes, - classNameProp = _props.className, - disabled = _props.disabled, - fullWidth = _props.fullWidth, - icon = _props.icon, - indicator = _props.indicator, - labelProp = _props.label, - onChange = _props.onChange, - selected = _props.selected, - styleProp = _props.style, - textColor = _props.textColor, - value = _props.value, - other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'className', 'disabled', 'fullWidth', 'icon', 'indicator', 'label', 'onChange', 'selected', 'style', 'textColor', 'value']); - - - var label = void 0; - - if (labelProp !== undefined) { - label = _react2.default.createElement( - 'span', - { className: classes.labelContainer }, - _react2.default.createElement( - 'span', - { - className: (0, _classnames2.default)(classes.label, (0, _defineProperty3.default)({}, classes.labelWrapped, this.state.wrappedText)), - ref: function ref(node) { - _this2.label = node; - } - }, - labelProp - ) - ); - } - - var className = (0, _classnames2.default)(classes.root, classes['root' + (0, _helpers.capitalize)(textColor)], (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes['root' + (0, _helpers.capitalize)(textColor) + 'Disabled'], disabled), (0, _defineProperty3.default)(_classNames2, classes['root' + (0, _helpers.capitalize)(textColor) + 'Selected'], selected), (0, _defineProperty3.default)(_classNames2, classes.rootLabelIcon, icon && label), (0, _defineProperty3.default)(_classNames2, classes.fullWidth, fullWidth), _classNames2), classNameProp); - - var style = {}; - - if (textColor !== 'secondary' && textColor !== 'inherit') { - style.color = textColor; - } - - style = (0, _keys2.default)(style).length > 0 ? (0, _extends4.default)({}, style, styleProp) : styleProp; - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends4.default)({ - focusRipple: true, - className: className, - style: style, - role: 'tab', - 'aria-selected': selected, - disabled: disabled - }, other, { - onClick: this.handleChange - }), - _react2.default.createElement( - 'span', - { className: classes.wrapper }, - icon, - label - ), - indicator - ); - } - }]); - return Tab; -}(_react2.default.Component); - -Tab.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the tab will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * @ignore - */ - fullWidth: _propTypes2.default.bool, - /** - * The icon element. - */ - icon: _propTypes2.default.node, - /** - * @ignore - * For server side rendering consideration, we let the selected tab - * render the indicator. - */ - indicator: _propTypes2.default.node, - /** - * The label element. - */ - label: _propTypes2.default.node, - /** - * @ignore - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - onClick: _propTypes2.default.func, - /** - * @ignore - */ - selected: _propTypes2.default.bool, - /** - * @ignore - */ - style: _propTypes2.default.object, - /** - * @ignore - */ - textColor: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.oneOf(['secondary', 'primary', 'inherit'])]), - /** - * You can provide your own value. Otherwise, we fallback to the child position index. - */ - value: _propTypes2.default.any -} : {}; - -Tab.defaultProps = { - disabled: false, - textColor: 'inherit' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTab' })(Tab); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Tabs/TabIndicator.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - position: 'absolute', - height: 2, - bottom: 0, - width: '100%', - transition: theme.transitions.create(), - willChange: 'left, width' - }, - colorPrimary: { - backgroundColor: theme.palette.primary.main - }, - colorSecondary: { - backgroundColor: theme.palette.secondary.main - } - }; -}; - -/** - * @ignore - internal component. - */ -function TabIndicator(props) { - var classes = props.classes, - classNameProp = props.className, - color = props.color, - styleProp = props.style; - - var colorPredefined = ['primary', 'secondary'].indexOf(color) !== -1; - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes['color' + (0, _helpers.capitalize)(color)], colorPredefined), classNameProp); - - var style = colorPredefined ? styleProp : (0, _extends3.default)({}, styleProp, { - backgroundColor: color - }); - - return _react2.default.createElement('span', { className: className, style: style }); -} - -TabIndicator.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - * The color of the tab indicator. - */ - color: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.oneOf(['primary', 'secondary'])]), - /** - * @ignore - * The style of the root element. - */ - style: _propTypes2.default.object -} : {}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTabIndicator' })(TabIndicator); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Tabs/TabScrollButton.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _KeyboardArrowLeft = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowLeft.js"); - -var _KeyboardArrowLeft2 = _interopRequireDefault(_KeyboardArrowLeft); - -var _KeyboardArrowRight = __webpack_require__("./node_modules/material-ui/internal/svg-icons/KeyboardArrowRight.js"); - -var _KeyboardArrowRight2 = _interopRequireDefault(_KeyboardArrowRight); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _ButtonBase = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); - -var _ButtonBase2 = _interopRequireDefault(_ButtonBase); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - color: 'inherit', - flex: '0 0 ' + theme.spacing.unit * 7 + 'px' - } - }; -}; - -/** - * @ignore - internal component. - */ - -var _ref = _react2.default.createElement(_KeyboardArrowLeft2.default, null); - -var _ref2 = _react2.default.createElement(_KeyboardArrowRight2.default, null); - -function TabScrollButton(props) { - var classes = props.classes, - classNameProp = props.className, - direction = props.direction, - onClick = props.onClick, - visible = props.visible, - other = (0, _objectWithoutProperties3.default)(props, ['classes', 'className', 'direction', 'onClick', 'visible']); - - - var className = (0, _classnames2.default)(classes.root, classNameProp); - - if (!visible) { - return _react2.default.createElement('div', { className: className }); - } - - return _react2.default.createElement( - _ButtonBase2.default, - (0, _extends3.default)({ className: className, onClick: onClick, tabIndex: -1 }, other), - direction === 'left' ? _ref : _ref2 - ); -} - -TabScrollButton.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Which direction should the button indicate? - */ - direction: _propTypes2.default.oneOf(['left', 'right']), - /** - * Callback to execute for button press. - */ - onClick: _propTypes2.default.func, - /** - * Should the button be present or just consume space. - */ - visible: _propTypes2.default.bool -} : {}; - -TabScrollButton.defaultProps = { - visible: true -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTabScrollButton' })(TabScrollButton); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Tabs/Tabs.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _isNan = __webpack_require__("./node_modules/babel-runtime/core-js/number/is-nan.js"); - -var _isNan2 = _interopRequireDefault(_isNan); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _reactScrollbarSize = __webpack_require__("./node_modules/react-scrollbar-size/index.js"); - -var _reactScrollbarSize2 = _interopRequireDefault(_reactScrollbarSize); - -var _normalizeScrollLeft = __webpack_require__("./node_modules/normalize-scroll-left/lib/main.js"); - -var _scroll = __webpack_require__("./node_modules/scroll/index.js"); - -var _scroll2 = _interopRequireDefault(_scroll); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _TabIndicator = __webpack_require__("./node_modules/material-ui/Tabs/TabIndicator.js"); - -var _TabIndicator2 = _interopRequireDefault(_TabIndicator); - -var _TabScrollButton = __webpack_require__("./node_modules/material-ui/Tabs/TabScrollButton.js"); - -var _TabScrollButton2 = _interopRequireDefault(_TabScrollButton); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - overflow: 'hidden', - minHeight: 48, - WebkitOverflowScrolling: 'touch' // Add iOS momentum scrolling. - }, - flexContainer: { - display: 'flex' - }, - scrollingContainer: { - position: 'relative', - display: 'inline-block', - flex: '1 1 auto', - whiteSpace: 'nowrap' - }, - fixed: { - overflowX: 'hidden', - width: '100%' - }, - scrollable: { - overflowX: 'scroll' - }, - centered: { - justifyContent: 'center' - }, - buttonAuto: (0, _defineProperty3.default)({}, theme.breakpoints.down('xs'), { - display: 'none' - }) - }; -}; - -var Tabs = function (_React$Component) { - (0, _inherits3.default)(Tabs, _React$Component); - - function Tabs() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Tabs); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Tabs.__proto__ || (0, _getPrototypeOf2.default)(Tabs)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - indicatorStyle: {}, - scrollerStyle: { - marginBottom: 0 - }, - showLeftScroll: false, - showRightScroll: false, - mounted: false - }, _this.getConditionalElements = function () { - var _this$props = _this.props, - classes = _this$props.classes, - buttonClassName = _this$props.buttonClassName, - scrollable = _this$props.scrollable, - scrollButtons = _this$props.scrollButtons, - TabScrollButtonProp = _this$props.TabScrollButton, - theme = _this$props.theme; - - var conditionalElements = {}; - conditionalElements.scrollbarSizeListener = scrollable ? _react2.default.createElement(_reactScrollbarSize2.default, { - onLoad: _this.handleScrollbarSizeChange, - onChange: _this.handleScrollbarSizeChange - }) : null; - - var showScrollButtons = scrollable && (scrollButtons === 'auto' || scrollButtons === 'on'); - - conditionalElements.scrollButtonLeft = showScrollButtons ? _react2.default.createElement(TabScrollButtonProp, { - direction: theme && theme.direction === 'rtl' ? 'right' : 'left', - onClick: _this.handleLeftScrollClick, - visible: _this.state.showLeftScroll, - className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.buttonAuto, scrollButtons === 'auto'), buttonClassName) - }) : null; - - conditionalElements.scrollButtonRight = showScrollButtons ? _react2.default.createElement(TabScrollButtonProp, { - direction: theme && theme.direction === 'rtl' ? 'left' : 'right', - onClick: _this.handleRightScrollClick, - visible: _this.state.showRightScroll, - className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.buttonAuto, scrollButtons === 'auto'), buttonClassName) - }) : null; - - return conditionalElements; - }, _this.getTabsMeta = function (value, direction) { - var tabsMeta = void 0; - if (_this.tabs) { - var rect = _this.tabs.getBoundingClientRect(); - // create a new object with ClientRect class props + scrollLeft - tabsMeta = { - clientWidth: _this.tabs ? _this.tabs.clientWidth : 0, - scrollLeft: _this.tabs ? _this.tabs.scrollLeft : 0, - scrollLeftNormalized: _this.tabs ? (0, _normalizeScrollLeft.getNormalizedScrollLeft)(_this.tabs, direction) : 0, - scrollWidth: _this.tabs ? _this.tabs.scrollWidth : 0, - left: rect.left, - right: rect.right - }; - } - - var tabMeta = void 0; - if (_this.tabs && value !== false) { - var children = _this.tabs.children[0].children; - - if (children.length > 0) { - var tab = children[_this.valueToIndex[value]]; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(tab, 'Material-UI: the value provided `' + value + '` is invalid') : void 0; - tabMeta = tab ? tab.getBoundingClientRect() : null; - } - } - return { tabsMeta: tabsMeta, tabMeta: tabMeta }; - }, _this.tabs = undefined, _this.valueToIndex = {}, _this.handleResize = (0, _debounce2.default)(function () { - _this.updateIndicatorState(_this.props); - _this.updateScrollButtonState(); - }, 166), _this.handleLeftScrollClick = function () { - if (_this.tabs) { - _this.moveTabsScroll(-_this.tabs.clientWidth); - } - }, _this.handleRightScrollClick = function () { - if (_this.tabs) { - _this.moveTabsScroll(_this.tabs.clientWidth); - } - }, _this.handleScrollbarSizeChange = function (_ref2) { - var scrollbarHeight = _ref2.scrollbarHeight; - - _this.setState({ - scrollerStyle: { - marginBottom: -scrollbarHeight - } - }); - }, _this.handleTabsScroll = (0, _debounce2.default)(function () { - _this.updateScrollButtonState(); - }, 166), _this.moveTabsScroll = function (delta) { - var theme = _this.props.theme; - - - if (_this.tabs) { - var multiplier = theme.direction === 'rtl' ? -1 : 1; - var nextScrollLeft = _this.tabs.scrollLeft + delta * multiplier; - // Fix for Edge - var invert = theme.direction === 'rtl' && (0, _normalizeScrollLeft.detectScrollType)() === 'reverse' ? -1 : 1; - _scroll2.default.left(_this.tabs, invert * nextScrollLeft); - } - }, _this.scrollSelectedIntoView = function () { - var _this$props2 = _this.props, - theme = _this$props2.theme, - value = _this$props2.value; - - var _this$getTabsMeta = _this.getTabsMeta(value, theme.direction), - tabsMeta = _this$getTabsMeta.tabsMeta, - tabMeta = _this$getTabsMeta.tabMeta; - - if (!tabMeta || !tabsMeta) { - return; - } - - if (tabMeta.left < tabsMeta.left) { - // left side of button is out of view - var nextScrollLeft = tabsMeta.scrollLeft + (tabMeta.left - tabsMeta.left); - _scroll2.default.left(_this.tabs, nextScrollLeft); - } else if (tabMeta.right > tabsMeta.right) { - // right side of button is out of view - var _nextScrollLeft = tabsMeta.scrollLeft + (tabMeta.right - tabsMeta.right); - _scroll2.default.left(_this.tabs, _nextScrollLeft); - } - }, _this.updateScrollButtonState = function () { - var _this$props3 = _this.props, - scrollable = _this$props3.scrollable, - scrollButtons = _this$props3.scrollButtons, - theme = _this$props3.theme; - - - if (_this.tabs && scrollable && scrollButtons !== 'off') { - var _this$tabs = _this.tabs, - scrollWidth = _this$tabs.scrollWidth, - clientWidth = _this$tabs.clientWidth; - - var scrollLeft = (0, _normalizeScrollLeft.getNormalizedScrollLeft)(_this.tabs, theme.direction); - - var showLeftScroll = theme.direction === 'rtl' ? scrollWidth > clientWidth + scrollLeft : scrollLeft > 0; - - var showRightScroll = theme.direction === 'rtl' ? scrollLeft > 0 : scrollWidth > clientWidth + scrollLeft; - - if (showLeftScroll !== _this.state.showLeftScroll || showRightScroll !== _this.state.showRightScroll) { - _this.setState({ showLeftScroll: showLeftScroll, showRightScroll: showRightScroll }); - } - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Tabs, [{ - key: 'componentDidMount', - value: function componentDidMount() { - // eslint-disable-next-line react/no-did-mount-set-state - this.setState({ mounted: true }); - this.updateIndicatorState(this.props); - this.updateScrollButtonState(); - - if (this.props.action) { - this.props.action({ - updateIndicator: this.handleResize - }); - } - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(prevProps, prevState) { - this.updateScrollButtonState(); - - // The index might have changed at the same time. - // We need to check again the right indicator position. - this.updateIndicatorState(this.props); - - if (this.state.indicatorStyle !== prevState.indicatorStyle) { - this.scrollSelectedIntoView(); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.handleResize.cancel(); - this.handleTabsScroll.cancel(); - } - }, { - key: 'updateIndicatorState', - value: function updateIndicatorState(props) { - var theme = props.theme, - value = props.value; - - var _getTabsMeta = this.getTabsMeta(value, theme.direction), - tabsMeta = _getTabsMeta.tabsMeta, - tabMeta = _getTabsMeta.tabMeta; - - var left = 0; - - if (tabMeta && tabsMeta) { - var correction = theme.direction === 'rtl' ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft; - left = tabMeta.left - tabsMeta.left + correction; - } - - var indicatorStyle = { - left: left, - // May be wrong until the font is loaded. - width: tabMeta ? tabMeta.width : 0 - }; - - if ((indicatorStyle.left !== this.state.indicatorStyle.left || indicatorStyle.width !== this.state.indicatorStyle.width) && !(0, _isNan2.default)(indicatorStyle.left) && !(0, _isNan2.default)(indicatorStyle.width)) { - this.setState({ indicatorStyle: indicatorStyle }); - } - } - }, { - key: 'render', - value: function render() { - var _classNames3, - _this2 = this; - - var _props = this.props, - action = _props.action, - buttonClassName = _props.buttonClassName, - centered = _props.centered, - childrenProp = _props.children, - classes = _props.classes, - classNameProp = _props.className, - fullWidth = _props.fullWidth, - indicatorClassName = _props.indicatorClassName, - indicatorColor = _props.indicatorColor, - onChange = _props.onChange, - scrollable = _props.scrollable, - scrollButtons = _props.scrollButtons, - TabScrollButtonProp = _props.TabScrollButton, - textColor = _props.textColor, - theme = _props.theme, - value = _props.value, - other = (0, _objectWithoutProperties3.default)(_props, ['action', 'buttonClassName', 'centered', 'children', 'classes', 'className', 'fullWidth', 'indicatorClassName', 'indicatorColor', 'onChange', 'scrollable', 'scrollButtons', 'TabScrollButton', 'textColor', 'theme', 'value']); - - - var className = (0, _classnames2.default)(classes.root, classNameProp); - var scrollerClassName = (0, _classnames2.default)(classes.scrollingContainer, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.fixed, !scrollable), (0, _defineProperty3.default)(_classNames3, classes.scrollable, scrollable), _classNames3)); - var tabItemContainerClassName = (0, _classnames2.default)(classes.flexContainer, (0, _defineProperty3.default)({}, classes.centered, centered && !scrollable)); - - var indicator = _react2.default.createElement(_TabIndicator2.default, { - style: this.state.indicatorStyle, - className: indicatorClassName, - color: indicatorColor - }); - - this.valueToIndex = {}; - var childIndex = 0; - var children = _react2.default.Children.map(childrenProp, function (child) { - if (!_react2.default.isValidElement(child)) { - return null; - } - - var childValue = child.props.value || childIndex; - _this2.valueToIndex[childValue] = childIndex; - var selected = childValue === value; - - childIndex += 1; - return _react2.default.cloneElement(child, { - fullWidth: fullWidth, - indicator: selected && !_this2.state.mounted && indicator, - selected: selected, - onChange: onChange, - textColor: textColor, - value: childValue - }); - }); - - var conditionalElements = this.getConditionalElements(); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }), - conditionalElements.scrollbarSizeListener, - _react2.default.createElement( - 'div', - { className: classes.flexContainer }, - conditionalElements.scrollButtonLeft, - _react2.default.createElement( - 'div', - { - className: scrollerClassName, - style: this.state.scrollerStyle, - ref: function ref(node) { - _this2.tabs = node; - }, - role: 'tablist', - onScroll: this.handleTabsScroll - }, - _react2.default.createElement( - 'div', - { className: tabItemContainerClassName }, - children - ), - this.state.mounted && indicator - ), - conditionalElements.scrollButtonRight - ) - ); - } - }]); - return Tabs; -}(_react2.default.Component); - -Tabs.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Callback fired when the component mounts. - * This is useful when you want to trigger an action programmatically. - * It currently only supports `updateIndicator()` action. - * - * @param {object} actions This object contains all possible actions - * that can be triggered programmatically. - */ - action: _propTypes2.default.func, - /** - * The CSS class name of the scroll button elements. - */ - buttonClassName: _propTypes2.default.string, - /** - * If `true`, the tabs will be centered. - * This property is intended for large views. - */ - centered: _propTypes2.default.bool, - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, the tabs will grow to use all the available space. - * This property is intended for small views, like on mobile. - */ - fullWidth: _propTypes2.default.bool, - /** - * The CSS class name of the indicator element. - */ - indicatorClassName: _propTypes2.default.string, - /** - * Determines the color of the indicator. - */ - indicatorColor: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.oneOf(['secondary', 'primary'])]), - /** - * Callback fired when the value changes. - * - * @param {object} event The event source of the callback - * @param {number} value We default to the index of the child - */ - onChange: _propTypes2.default.func, - /** - * True invokes scrolling properties and allow for horizontally scrolling - * (or swiping) the tab bar. - */ - scrollable: _propTypes2.default.bool, - /** - * Determine behavior of scroll buttons when tabs are set to scroll - * `auto` will only present them on medium and larger viewports - * `on` will always present them - * `off` will never present them - */ - scrollButtons: _propTypes2.default.oneOf(['auto', 'on', 'off']), - /** - * The component used to render the scroll buttons. - */ - TabScrollButton: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * Determines the color of the `Tab`. - */ - textColor: _propTypes2.default.oneOf(['secondary', 'primary', 'inherit']), - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The value of the currently selected `Tab`. - * If you don't want any selected `Tab`, you can set this property to `false`. - */ - value: _propTypes2.default.any -} : {}; - -Tabs.defaultProps = { - centered: false, - fullWidth: false, - indicatorColor: 'secondary', - scrollable: false, - scrollButtons: 'auto', - TabScrollButton: _TabScrollButton2.default, - textColor: 'inherit' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTabs', withTheme: true })(Tabs); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Tabs/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Tabs = __webpack_require__("./node_modules/material-ui/Tabs/Tabs.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Tabs).default; - } -}); - -var _Tab = __webpack_require__("./node_modules/material-ui/Tabs/Tab.js"); - -Object.defineProperty(exports, 'Tab', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Tab).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/TextField/TextField.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _Input = __webpack_require__("./node_modules/material-ui/Input/index.js"); - -var _Input2 = _interopRequireDefault(_Input); - -var _FormControl = __webpack_require__("./node_modules/material-ui/Form/FormControl.js"); - -var _FormControl2 = _interopRequireDefault(_FormControl); - -var _FormHelperText = __webpack_require__("./node_modules/material-ui/Form/FormHelperText.js"); - -var _FormHelperText2 = _interopRequireDefault(_FormHelperText); - -var _Select = __webpack_require__("./node_modules/material-ui/Select/Select.js"); - -var _Select2 = _interopRequireDefault(_Select); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The `TextField` is a convenience wrapper for the most common cases (80%). - * It cannot be all things to all people, otherwise the API would grow out of control. - * - * ## Advanced Configuration - * - * It's important to understand that the text field is a simple abstraction - * on top of the following components: - * - [FormControl](/api/form-control) - * - [InputLabel](/api/input-label) - * - [Input](/api/input) - * - [FormHelperText](/api/form-helper-text) - * - * If you wish to alter the properties applied to the native input, you can do as follow: - * - * ```jsx - * const inputProps = { - * step: 300, - * }; - * - * return ; - * ``` - * - * For advanced cases, please look at the source of TextField by clicking on the - * "Edit this page" button above. Consider either: - * - using the upper case props for passing values direct to the components. - * - using the underlying components directly as shown in the demos. - */ -function TextField(props) { - var autoComplete = props.autoComplete, - autoFocus = props.autoFocus, - children = props.children, - className = props.className, - defaultValue = props.defaultValue, - disabled = props.disabled, - error = props.error, - FormHelperTextProps = props.FormHelperTextProps, - fullWidth = props.fullWidth, - helperText = props.helperText, - helperTextClassName = props.helperTextClassName, - id = props.id, - InputLabelProps = props.InputLabelProps, - inputProps = props.inputProps, - InputProps = props.InputProps, - inputRef = props.inputRef, - label = props.label, - labelClassName = props.labelClassName, - multiline = props.multiline, - name = props.name, - onChange = props.onChange, - placeholder = props.placeholder, - required = props.required, - rows = props.rows, - rowsMax = props.rowsMax, - select = props.select, - SelectProps = props.SelectProps, - type = props.type, - value = props.value, - other = (0, _objectWithoutProperties3.default)(props, ['autoComplete', 'autoFocus', 'children', 'className', 'defaultValue', 'disabled', 'error', 'FormHelperTextProps', 'fullWidth', 'helperText', 'helperTextClassName', 'id', 'InputLabelProps', 'inputProps', 'InputProps', 'inputRef', 'label', 'labelClassName', 'multiline', 'name', 'onChange', 'placeholder', 'required', 'rows', 'rowsMax', 'select', 'SelectProps', 'type', 'value']); - - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!select || Boolean(children), 'Material-UI: `children` must be passed when using the `TextField` component with `select`.') : void 0; - - var helperTextId = helperText && id ? id + '-helper-text' : undefined; - var InputComponent = _react2.default.createElement(_Input2.default, (0, _extends3.default)({ - autoComplete: autoComplete, - autoFocus: autoFocus, - defaultValue: defaultValue, - disabled: disabled, - fullWidth: fullWidth, - multiline: multiline, - name: name, - rows: rows, - rowsMax: rowsMax, - type: type, - value: value, - id: id, - inputRef: inputRef, - onChange: onChange, - placeholder: placeholder, - inputProps: inputProps - }, InputProps)); - - return _react2.default.createElement( - _FormControl2.default, - (0, _extends3.default)({ - 'aria-describedby': helperTextId, - className: className, - error: error, - fullWidth: fullWidth, - required: required - }, other), - label && _react2.default.createElement( - _Input.InputLabel, - (0, _extends3.default)({ htmlFor: id, className: labelClassName }, InputLabelProps), - label - ), - select ? _react2.default.createElement( - _Select2.default, - (0, _extends3.default)({ value: value, input: InputComponent }, SelectProps), - children - ) : InputComponent, - helperText && _react2.default.createElement( - _FormHelperText2.default, - (0, _extends3.default)({ className: helperTextClassName, id: helperTextId }, FormHelperTextProps), - helperText - ) - ); -} // @inheritedComponent FormControl - -TextField.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * This property helps users to fill forms faster, especially on mobile devices. - * The name can be confusing, as it's more like an autofill. - * You can learn more about it here: - * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill - */ - autoComplete: _propTypes2.default.string, - /** - * If `true`, the input will be focused during the first mount. - */ - autoFocus: _propTypes2.default.bool, - /** - * @ignore - */ - children: _propTypes2.default.node, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The default value of the `Input` element. - */ - defaultValue: _propTypes2.default.string, - /** - * If `true`, the input will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the label will be displayed in an error state. - */ - error: _propTypes2.default.bool, - /** - * Properties applied to the `FormHelperText` element. - */ - FormHelperTextProps: _propTypes2.default.object, - /** - * If `true`, the input will take up the full width of its container. - */ - fullWidth: _propTypes2.default.bool, - /** - * The helper text content. - */ - helperText: _propTypes2.default.node, - /** - * The CSS class name of the helper text element. - */ - helperTextClassName: _propTypes2.default.string, - /** - * The id of the `input` element. - * Use that property to make `label` and `helperText` accessible for screen readers. - */ - id: _propTypes2.default.string, - /** - * Properties applied to the `InputLabel` element. - */ - InputLabelProps: _propTypes2.default.object, - /** - * Properties applied to the `Input` element. - */ - InputProps: _propTypes2.default.object, - /** - * Properties applied to the native `input` element. - */ - inputProps: _propTypes2.default.object, - /** - * Use that property to pass a ref callback to the native input component. - */ - inputRef: _propTypes2.default.func, - /** - * The label content. - */ - label: _propTypes2.default.node, - /** - * The CSS class name of the label element. - */ - labelClassName: _propTypes2.default.string, - /** - * If `dense` or `normal`, will adjust vertical spacing of this and contained components. - */ - margin: _propTypes2.default.oneOf(['none', 'dense', 'normal']), - /** - * If `true`, a textarea element will be rendered instead of an input. - */ - multiline: _propTypes2.default.bool, - /** - * Name attribute of the `input` element. - */ - name: _propTypes2.default.string, - /** - * Callback fired when the value is changed. - * - * @param {object} event The event source of the callback - */ - onChange: _propTypes2.default.func, - /** - * The short hint displayed in the input before the user enters a value. - */ - placeholder: _propTypes2.default.string, - /** - * If `true`, the label is displayed as required. - */ - required: _propTypes2.default.bool, - /** - * Number of rows to display when multiline option is set to true. - */ - rows: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * Maximum number of rows to display when multiline option is set to true. - */ - rowsMax: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), - /** - * Render a `Select` element while passing the `Input` element to `Select` as `input` parameter. - * If this option is set you must pass the options of the select as children. - */ - select: _propTypes2.default.bool, - /** - * Properties applied to the `Select` element. - */ - SelectProps: _propTypes2.default.object, - /** - * Type attribute of the `Input` element. It should be a valid HTML5 input type. - */ - type: _propTypes2.default.string, - /** - * The value of the `Input` element, required for a controlled component. - */ - value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]))]) -} : {}; - -TextField.defaultProps = { - required: false, - select: false -}; - -exports.default = TextField; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/TextField/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _TextField = __webpack_require__("./node_modules/material-ui/TextField/TextField.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_TextField).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Toolbar/Toolbar.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: (0, _extends3.default)({ - position: 'relative', - display: 'flex', - alignItems: 'center' - }, theme.mixins.toolbar), - gutters: theme.mixins.gutters({}) - }; -}; - -function Toolbar(props) { - var children = props.children, - classes = props.classes, - classNameProp = props.className, - disableGutters = props.disableGutters, - other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'disableGutters']); - - - var className = (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.gutters, !disableGutters), classNameProp); - - return _react2.default.createElement( - 'div', - (0, _extends3.default)({ className: className }, other), - children - ); -} - -Toolbar.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * If `true`, disables gutter padding. - */ - disableGutters: _propTypes2.default.bool -} : {}; - -Toolbar.defaultProps = { - disableGutters: false -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiToolbar' })(Toolbar); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Toolbar/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Toolbar = __webpack_require__("./node_modules/material-ui/Toolbar/Toolbar.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Toolbar).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Tooltip/Tooltip.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _reactPopper = __webpack_require__("./node_modules/react-popper/lib/react-popper.js"); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -var _RefHolder = __webpack_require__("./node_modules/material-ui/internal/RefHolder.js"); - -var _RefHolder2 = _interopRequireDefault(_RefHolder); - -var _common = __webpack_require__("./node_modules/material-ui/colors/common.js"); - -var _common2 = _interopRequireDefault(_common); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* eslint-disable react/no-multi-comp, no-underscore-dangle */ - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'inline', - flexDirection: 'inherit' // Makes the wrapper more transparent. - }, - popper: { - zIndex: theme.zIndex.tooltip - }, - popperClose: { - pointerEvents: 'none' - }, - tooltip: (0, _defineProperty3.default)({ - backgroundColor: theme.palette.grey[700], - borderRadius: 2, - color: _common2.default.white, - fontFamily: theme.typography.fontFamily, - opacity: 0, - transform: 'scale(0)', - transition: theme.transitions.create(['opacity', 'transform'], { - duration: theme.transitions.duration.shortest - }), - minHeight: 0, - padding: theme.spacing.unit, - fontSize: theme.typography.pxToRem(14), - lineHeight: theme.typography.round(16 / 14) + 'em' - }, theme.breakpoints.up('sm'), { - padding: theme.spacing.unit / 2 + 'px ' + theme.spacing.unit + 'px', - fontSize: theme.typography.pxToRem(10), - lineHeight: theme.typography.round(14 / 10) + 'em' - }), - tooltipLeft: (0, _defineProperty3.default)({ - transformOrigin: 'right center', - margin: '0 ' + theme.spacing.unit * 3 + 'px' - }, theme.breakpoints.up('sm'), { - margin: '0 14px' - }), - tooltipRight: (0, _defineProperty3.default)({ - transformOrigin: 'left center', - margin: '0 ' + theme.spacing.unit * 3 + 'px' - }, theme.breakpoints.up('sm'), { - margin: '0 14px' - }), - tooltipTop: (0, _defineProperty3.default)({ - transformOrigin: 'center bottom', - margin: theme.spacing.unit * 3 + 'px 0' - }, theme.breakpoints.up('sm'), { - margin: '14px 0' - }), - tooltipBottom: (0, _defineProperty3.default)({ - transformOrigin: 'center top', - margin: theme.spacing.unit * 3 + 'px 0' - }, theme.breakpoints.up('sm'), { - margin: '14px 0' - }), - tooltipOpen: { - opacity: 0.9, - transform: 'scale(1)' - } - }; -}; - -function flipPlacement(placement) { - switch (placement) { - case 'bottom-end': - return 'bottom-start'; - case 'bottom-start': - return 'bottom-end'; - case 'top-end': - return 'top-start'; - case 'top-start': - return 'top-end'; - default: - return placement; - } -} - -var Tooltip = function (_React$Component) { - (0, _inherits3.default)(Tooltip, _React$Component); - - function Tooltip() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Tooltip); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Tooltip.__proto__ || (0, _getPrototypeOf2.default)(Tooltip)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this.enterTimer = null, _this.leaveTimer = null, _this.touchTimer = null, _this.isControlled = null, _this.popper = null, _this.children = null, _this.ignoreNonTouchEvents = false, _this.handleResize = (0, _debounce2.default)(function () { - if (_this.popper) { - _this.popper._popper.scheduleUpdate(); - } - }, 166), _this.handleRequestOpen = function (event) { - var children = _this.props.children; - - var childrenProps = children.props; - - if (event.type === 'focus' && childrenProps.onFocus) { - childrenProps.onFocus(event); - } - - if (event.type === 'mouseover' && childrenProps.onMouseOver) { - childrenProps.onMouseOver(event); - } - - if (_this.ignoreNonTouchEvents && event.type !== 'touchstart') { - return; - } - - clearTimeout(_this.leaveTimer); - if (_this.props.enterDelay > 0) { - _this.leaveTimer = setTimeout(function () { - _this.requestOpen(event); - }, _this.props.enterDelay); - } else { - _this.requestOpen(event); - } - }, _this.requestOpen = function (event) { - if (!_this.isControlled) { - _this.setState({ open: true }); - } - - if (_this.props.onOpen) { - _this.props.onOpen(event, true); - } - }, _this.handleClose = function (event) { - var children = _this.props.children; - - var childrenProps = children.props; - - if (event.type === 'blur' && childrenProps.onBlur) { - childrenProps.onBlur(event); - } - - if (event.type === 'mouseleave' && childrenProps.onMouseLeave) { - childrenProps.onMouseLeave(event); - } - - clearTimeout(_this.leaveTimer); - if (_this.props.leaveDelay) { - _this.leaveTimer = setTimeout(function () { - _this.requestClose(event); - }, _this.props.leaveDelay); - } else { - _this.requestClose(event); - } - }, _this.requestClose = function (event) { - _this.ignoreNonTouchEvents = false; - - if (!_this.isControlled) { - _this.setState({ open: false }); - } - - if (_this.props.onClose) { - _this.props.onClose(event, false); - } - }, _this.handleTouchStart = function (event) { - _this.ignoreNonTouchEvents = true; - var children = _this.props.children; - - var childrenProps = children.props; - - if (childrenProps.onTouchStart) { - childrenProps.onTouchStart(event); - } - - clearTimeout(_this.touchTimer); - event.persist(); - _this.touchTimer = setTimeout(function () { - _this.handleRequestOpen(event); - }, 1e3); - }, _this.handleTouchEnd = function (event) { - var children = _this.props.children; - - var childrenProps = children.props; - - if (childrenProps.onTouchEnd) { - childrenProps.onTouchEnd(event); - } - - clearTimeout(_this.touchTimer); - clearTimeout(_this.leaveTimer); - event.persist(); - _this.leaveTimer = setTimeout(function () { - _this.requestClose(event); - }, 1500 + _this.props.leaveDelay); - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Tooltip, [{ - key: 'componentWillMount', - value: function componentWillMount() { - var props = this.props; - - - this.isControlled = props.open != null; - - if (!this.isControlled) { - // not controlled, use internal state - this.setState({ - open: false - }); - } - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!this.children || !this.children.disabled || !this.children.tagName.toLowerCase() === 'button', ['Material-UI: you are providing a disabled button children to the Tooltip component.', 'A disabled element do not fire events.', 'But the Tooltip needs to listen to the children element events to display the title.', '', 'Place a `div` over top of the element.'].join('\n')) : void 0; - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearTimeout(this.enterTimer); - clearTimeout(this.leaveTimer); - this.handleResize.cancel(); - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - childrenProp = _props.children, - classes = _props.classes, - className = _props.className, - disableTriggerFocus = _props.disableTriggerFocus, - disableTriggerHover = _props.disableTriggerHover, - disableTriggerTouch = _props.disableTriggerTouch, - enterDelay = _props.enterDelay, - id = _props.id, - leaveDelay = _props.leaveDelay, - onClose = _props.onClose, - onOpen = _props.onOpen, - openProp = _props.open, - rawPlacement = _props.placement, - _props$PopperProps = _props.PopperProps; - _props$PopperProps = _props$PopperProps === undefined ? {} : _props$PopperProps; - var PopperClassName = _props$PopperProps.PopperClassName, - PopperOther = (0, _objectWithoutProperties3.default)(_props$PopperProps, ['PopperClassName']), - theme = _props.theme, - title = _props.title, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'disableTriggerFocus', 'disableTriggerHover', 'disableTriggerTouch', 'enterDelay', 'id', 'leaveDelay', 'onClose', 'onOpen', 'open', 'placement', 'PopperProps', 'theme', 'title']); - - - var placement = theme.direction === 'rtl' ? flipPlacement(rawPlacement) : rawPlacement; - var open = this.isControlled ? openProp : this.state.open; - var childrenProps = {}; - - if (title === '') { - open = false; - } - - childrenProps['aria-describedby'] = id; - - if (!disableTriggerTouch) { - childrenProps.onTouchStart = this.handleTouchStart; - childrenProps.onTouchEnd = this.handleTouchEnd; - } - - if (!disableTriggerHover) { - childrenProps.onMouseOver = this.handleRequestOpen; - childrenProps.onMouseLeave = this.handleClose; - } - - if (!disableTriggerFocus) { - childrenProps.onFocus = this.handleRequestOpen; - childrenProps.onBlur = this.handleClose; - } - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!childrenProp.props.title, ['Material-UI: you have been providing a `title` property to the child of .', 'Remove this title property `' + childrenProp.props.title + '` or the Tooltip component.'].join('\n')) : void 0; - - return _react2.default.createElement( - _reactEventListener2.default, - { target: 'window', onResize: this.handleResize }, - _react2.default.createElement( - _reactPopper.Manager, - (0, _extends3.default)({ className: (0, _classnames2.default)(classes.root, className) }, other), - _react2.default.createElement( - _reactPopper.Target, - null, - function (_ref2) { - var targetProps = _ref2.targetProps; - return _react2.default.createElement( - _RefHolder2.default, - { - ref: function ref(node) { - _this2.children = (0, _reactDom.findDOMNode)(node); - targetProps.ref(_this2.children); - } - }, - _react2.default.cloneElement(childrenProp, childrenProps) - ); - } - ), - _react2.default.createElement( - _reactPopper.Popper, - (0, _extends3.default)({ - placement: placement, - eventsEnabled: open, - className: (0, _classnames2.default)(classes.popper, (0, _defineProperty3.default)({}, classes.popperClose, !open), PopperClassName) - }, PopperOther, { - ref: function ref(node) { - _this2.popper = node; - } - }), - function (_ref3) { - var popperProps = _ref3.popperProps, - restProps = _ref3.restProps; - - var actualPlacement = popperProps['data-placement'] || placement; - return _react2.default.createElement( - 'div', - (0, _extends3.default)({}, popperProps, restProps, { - style: (0, _extends3.default)({}, popperProps.style, { - top: popperProps.style.top || 0, - left: popperProps.style.left || 0 - }, restProps.style) - }), - _react2.default.createElement( - 'div', - { - id: id, - role: 'tooltip', - 'aria-hidden': !open, - className: (0, _classnames2.default)(classes.tooltip, (0, _defineProperty3.default)({}, classes.tooltipOpen, open), classes['tooltip' + (0, _helpers.capitalize)(actualPlacement.split('-')[0])]) - }, - title - ) - ); - } - ) - ) - ); - } - }]); - return Tooltip; -}(_react2.default.Component); - -Tooltip.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Tooltip reference element. - */ - children: _propTypes2.default.element.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * Do not respond to focus events. - */ - disableTriggerFocus: _propTypes2.default.bool, - /** - * Do not respond to hover events. - */ - disableTriggerHover: _propTypes2.default.bool, - /** - * Do not respond to long press touch events. - */ - disableTriggerTouch: _propTypes2.default.bool, - /** - * The number of milliseconds to wait before showing the tooltip. - */ - enterDelay: _propTypes2.default.number, - /** - * The relationship between the tooltip and the wrapper component is not clear from the DOM. - * By providing this property, we can use aria-describedby to solve the accessibility issue. - */ - id: _propTypes2.default.string, - /** - * The number of milliseconds to wait before hidding the tooltip. - */ - leaveDelay: _propTypes2.default.number, - /** - * Callback fired when the tooltip requests to be closed. - * - * @param {object} event The event source of the callback - */ - onClose: _propTypes2.default.func, - /** - * Callback fired when the tooltip requests to be open. - * - * @param {object} event The event source of the callback - */ - onOpen: _propTypes2.default.func, - /** - * If `true`, the tooltip is shown. - */ - open: _propTypes2.default.bool, - /** - * Tooltip placement - */ - placement: _propTypes2.default.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']), - /** - * Properties applied to the `Popper` element. - */ - PopperProps: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * Tooltip title. Zero-length titles string are never displayed. - */ - title: _propTypes2.default.node.isRequired -} : {}; - -Tooltip.defaultProps = { - disableTriggerFocus: false, - disableTriggerHover: false, - disableTriggerTouch: false, - enterDelay: 0, - leaveDelay: 0, - placement: 'bottom' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTooltip', withTheme: true })(Tooltip); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Tooltip/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Tooltip = __webpack_require__("./node_modules/material-ui/Tooltip/Tooltip.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Tooltip).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/Typography/Typography.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _helpers = __webpack_require__("./node_modules/material-ui/utils/helpers.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - root: { - display: 'block', - margin: 0 - }, - display4: theme.typography.display4, - display3: theme.typography.display3, - display2: theme.typography.display2, - display1: theme.typography.display1, - headline: theme.typography.headline, - title: theme.typography.title, - subheading: theme.typography.subheading, - body2: theme.typography.body2, - body1: theme.typography.body1, - caption: theme.typography.caption, - button: theme.typography.button, - alignLeft: { - textAlign: 'left' - }, - alignCenter: { - textAlign: 'center' - }, - alignRight: { - textAlign: 'right' - }, - alignJustify: { - textAlign: 'justify' - }, - noWrap: { - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap' - }, - gutterBottom: { - marginBottom: '0.35em' - }, - paragraph: { - marginBottom: theme.spacing.unit * 2 - }, - colorInherit: { - color: 'inherit' - }, - colorPrimary: { - color: theme.palette.primary.main - }, - colorSecondary: { - color: theme.palette.secondary.main - }, - colorTextSecondary: { - color: theme.palette.text.secondary - }, - colorError: { - color: theme.palette.error.main - } - }; -}; - -function Typography(props) { - var _classNames; - - var align = props.align, - classes = props.classes, - classNameProp = props.className, - componentProp = props.component, - color = props.color, - gutterBottom = props.gutterBottom, - headlineMapping = props.headlineMapping, - noWrap = props.noWrap, - paragraph = props.paragraph, - variant = props.variant, - other = (0, _objectWithoutProperties3.default)(props, ['align', 'classes', 'className', 'component', 'color', 'gutterBottom', 'headlineMapping', 'noWrap', 'paragraph', 'variant']); - - - var className = (0, _classnames2.default)(classes.root, classes[variant], (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes['color' + (0, _helpers.capitalize)(color)], color !== 'default'), (0, _defineProperty3.default)(_classNames, classes.noWrap, noWrap), (0, _defineProperty3.default)(_classNames, classes.gutterBottom, gutterBottom), (0, _defineProperty3.default)(_classNames, classes.paragraph, paragraph), (0, _defineProperty3.default)(_classNames, classes['align' + (0, _helpers.capitalize)(align)], align !== 'inherit'), _classNames), classNameProp); - - var Component = componentProp || (paragraph ? 'p' : headlineMapping[variant]) || 'span'; - - return _react2.default.createElement(Component, (0, _extends3.default)({ className: className }, other)); -} - -Typography.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Set the text-align on the component. - */ - align: _propTypes2.default.oneOf(['inherit', 'left', 'center', 'right', 'justify']), - /** - * The content of the component. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: _propTypes2.default.oneOf(['inherit', 'primary', 'textSecondary', 'secondary', 'error', 'default']), - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - * By default, it maps the variant to a good default headline component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the text will have a bottom margin. - */ - gutterBottom: _propTypes2.default.bool, - /** - * We are empirically mapping the variant property to a range of different DOM element types. - * For instance, h1 to h6. If you wish to change that mapping, you can provide your own. - * Alternatively, you can use the `component` property. - */ - headlineMapping: _propTypes2.default.object, - /** - * If `true`, the text will not wrap, but instead will truncate with an ellipsis. - */ - noWrap: _propTypes2.default.bool, - /** - * If `true`, the text will have a bottom margin. - */ - paragraph: _propTypes2.default.bool, - /** - * Applies the theme typography styles. - */ - variant: _propTypes2.default.oneOf(['display4', 'display3', 'display2', 'display1', 'headline', 'title', 'subheading', 'body2', 'body1', 'caption', 'button']) -} : {}; - -Typography.defaultProps = { - align: 'inherit', - color: 'default', - gutterBottom: false, - headlineMapping: { - display4: 'h1', - display3: 'h1', - display2: 'h1', - display1: 'h1', - headline: 'h1', - title: 'h2', - subheading: 'h3', - body2: 'aside', - body1: 'p' - }, - noWrap: false, - paragraph: false, - variant: 'body1' -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiTypography' })(Typography); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/Typography/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Typography = __webpack_require__("./node_modules/material-ui/Typography/Typography.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Typography).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/colors/amber.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var amber = { - 50: '#fff8e1', - 100: '#ffecb3', - 200: '#ffe082', - 300: '#ffd54f', - 400: '#ffca28', - 500: '#ffc107', - 600: '#ffb300', - 700: '#ffa000', - 800: '#ff8f00', - 900: '#ff6f00', - A100: '#ffe57f', - A200: '#ffd740', - A400: '#ffc400', - A700: '#ffab00' -}; - -exports.default = amber; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/blue.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var blue = { - 50: '#e3f2fd', - 100: '#bbdefb', - 200: '#90caf9', - 300: '#64b5f6', - 400: '#42a5f5', - 500: '#2196f3', - 600: '#1e88e5', - 700: '#1976d2', - 800: '#1565c0', - 900: '#0d47a1', - A100: '#82b1ff', - A200: '#448aff', - A400: '#2979ff', - A700: '#2962ff' -}; - -exports.default = blue; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/blueGrey.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var blueGrey = { - 50: '#eceff1', - 100: '#cfd8dc', - 200: '#b0bec5', - 300: '#90a4ae', - 400: '#78909c', - 500: '#607d8b', - 600: '#546e7a', - 700: '#455a64', - 800: '#37474f', - 900: '#263238', - A100: '#cfd8dc', - A200: '#b0bec5', - A400: '#78909c', - A700: '#455a64' -}; - -exports.default = blueGrey; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/brown.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var brown = { - 50: '#efebe9', - 100: '#d7ccc8', - 200: '#bcaaa4', - 300: '#a1887f', - 400: '#8d6e63', - 500: '#795548', - 600: '#6d4c41', - 700: '#5d4037', - 800: '#4e342e', - 900: '#3e2723', - A100: '#d7ccc8', - A200: '#bcaaa4', - A400: '#8d6e63', - A700: '#5d4037' -}; - -exports.default = brown; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/common.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var common = { - black: '#000', - white: '#fff' -}; - -exports.default = common; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/cyan.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var cyan = { - 50: '#e0f7fa', - 100: '#b2ebf2', - 200: '#80deea', - 300: '#4dd0e1', - 400: '#26c6da', - 500: '#00bcd4', - 600: '#00acc1', - 700: '#0097a7', - 800: '#00838f', - 900: '#006064', - A100: '#84ffff', - A200: '#18ffff', - A400: '#00e5ff', - A700: '#00b8d4' -}; - -exports.default = cyan; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/deepOrange.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var deepOrange = { - 50: '#fbe9e7', - 100: '#ffccbc', - 200: '#ffab91', - 300: '#ff8a65', - 400: '#ff7043', - 500: '#ff5722', - 600: '#f4511e', - 700: '#e64a19', - 800: '#d84315', - 900: '#bf360c', - A100: '#ff9e80', - A200: '#ff6e40', - A400: '#ff3d00', - A700: '#dd2c00' -}; - -exports.default = deepOrange; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/deepPurple.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var deepPurple = { - 50: '#ede7f6', - 100: '#d1c4e9', - 200: '#b39ddb', - 300: '#9575cd', - 400: '#7e57c2', - 500: '#673ab7', - 600: '#5e35b1', - 700: '#512da8', - 800: '#4527a0', - 900: '#311b92', - A100: '#b388ff', - A200: '#7c4dff', - A400: '#651fff', - A700: '#6200ea' -}; - -exports.default = deepPurple; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/green.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var green = { - 50: '#e8f5e9', - 100: '#c8e6c9', - 200: '#a5d6a7', - 300: '#81c784', - 400: '#66bb6a', - 500: '#4caf50', - 600: '#43a047', - 700: '#388e3c', - 800: '#2e7d32', - 900: '#1b5e20', - A100: '#b9f6ca', - A200: '#69f0ae', - A400: '#00e676', - A700: '#00c853' -}; - -exports.default = green; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/grey.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var grey = { - 50: '#fafafa', - 100: '#f5f5f5', - 200: '#eeeeee', - 300: '#e0e0e0', - 400: '#bdbdbd', - 500: '#9e9e9e', - 600: '#757575', - 700: '#616161', - 800: '#424242', - 900: '#212121', - A100: '#d5d5d5', - A200: '#aaaaaa', - A400: '#303030', - A700: '#616161' -}; - -exports.default = grey; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _common = __webpack_require__("./node_modules/material-ui/colors/common.js"); - -Object.defineProperty(exports, 'common', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_common).default; - } -}); - -var _red = __webpack_require__("./node_modules/material-ui/colors/red.js"); - -Object.defineProperty(exports, 'red', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_red).default; - } -}); - -var _pink = __webpack_require__("./node_modules/material-ui/colors/pink.js"); - -Object.defineProperty(exports, 'pink', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_pink).default; - } -}); - -var _purple = __webpack_require__("./node_modules/material-ui/colors/purple.js"); - -Object.defineProperty(exports, 'purple', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_purple).default; - } -}); - -var _deepPurple = __webpack_require__("./node_modules/material-ui/colors/deepPurple.js"); - -Object.defineProperty(exports, 'deepPurple', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_deepPurple).default; - } -}); - -var _indigo = __webpack_require__("./node_modules/material-ui/colors/indigo.js"); - -Object.defineProperty(exports, 'indigo', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_indigo).default; - } -}); - -var _blue = __webpack_require__("./node_modules/material-ui/colors/blue.js"); - -Object.defineProperty(exports, 'blue', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_blue).default; - } -}); - -var _lightBlue = __webpack_require__("./node_modules/material-ui/colors/lightBlue.js"); - -Object.defineProperty(exports, 'lightBlue', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_lightBlue).default; - } -}); - -var _cyan = __webpack_require__("./node_modules/material-ui/colors/cyan.js"); - -Object.defineProperty(exports, 'cyan', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_cyan).default; - } -}); - -var _teal = __webpack_require__("./node_modules/material-ui/colors/teal.js"); - -Object.defineProperty(exports, 'teal', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_teal).default; - } -}); - -var _green = __webpack_require__("./node_modules/material-ui/colors/green.js"); - -Object.defineProperty(exports, 'green', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_green).default; - } -}); - -var _lightGreen = __webpack_require__("./node_modules/material-ui/colors/lightGreen.js"); - -Object.defineProperty(exports, 'lightGreen', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_lightGreen).default; - } -}); - -var _lime = __webpack_require__("./node_modules/material-ui/colors/lime.js"); - -Object.defineProperty(exports, 'lime', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_lime).default; - } -}); - -var _yellow = __webpack_require__("./node_modules/material-ui/colors/yellow.js"); - -Object.defineProperty(exports, 'yellow', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_yellow).default; - } -}); - -var _amber = __webpack_require__("./node_modules/material-ui/colors/amber.js"); - -Object.defineProperty(exports, 'amber', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_amber).default; - } -}); - -var _orange = __webpack_require__("./node_modules/material-ui/colors/orange.js"); - -Object.defineProperty(exports, 'orange', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_orange).default; - } -}); - -var _deepOrange = __webpack_require__("./node_modules/material-ui/colors/deepOrange.js"); - -Object.defineProperty(exports, 'deepOrange', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_deepOrange).default; - } -}); - -var _brown = __webpack_require__("./node_modules/material-ui/colors/brown.js"); - -Object.defineProperty(exports, 'brown', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_brown).default; - } -}); - -var _grey = __webpack_require__("./node_modules/material-ui/colors/grey.js"); - -Object.defineProperty(exports, 'grey', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_grey).default; - } -}); - -var _blueGrey = __webpack_require__("./node_modules/material-ui/colors/blueGrey.js"); - -Object.defineProperty(exports, 'blueGrey', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_blueGrey).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/colors/indigo.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var indigo = { - 50: '#e8eaf6', - 100: '#c5cae9', - 200: '#9fa8da', - 300: '#7986cb', - 400: '#5c6bc0', - 500: '#3f51b5', - 600: '#3949ab', - 700: '#303f9f', - 800: '#283593', - 900: '#1a237e', - A100: '#8c9eff', - A200: '#536dfe', - A400: '#3d5afe', - A700: '#304ffe' -}; - -exports.default = indigo; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/lightBlue.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var lightBlue = { - 50: '#e1f5fe', - 100: '#b3e5fc', - 200: '#81d4fa', - 300: '#4fc3f7', - 400: '#29b6f6', - 500: '#03a9f4', - 600: '#039be5', - 700: '#0288d1', - 800: '#0277bd', - 900: '#01579b', - A100: '#80d8ff', - A200: '#40c4ff', - A400: '#00b0ff', - A700: '#0091ea' -}; - -exports.default = lightBlue; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/lightGreen.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var lightGreen = { - 50: '#f1f8e9', - 100: '#dcedc8', - 200: '#c5e1a5', - 300: '#aed581', - 400: '#9ccc65', - 500: '#8bc34a', - 600: '#7cb342', - 700: '#689f38', - 800: '#558b2f', - 900: '#33691e', - A100: '#ccff90', - A200: '#b2ff59', - A400: '#76ff03', - A700: '#64dd17' -}; - -exports.default = lightGreen; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/lime.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var lime = { - 50: '#f9fbe7', - 100: '#f0f4c3', - 200: '#e6ee9c', - 300: '#dce775', - 400: '#d4e157', - 500: '#cddc39', - 600: '#c0ca33', - 700: '#afb42b', - 800: '#9e9d24', - 900: '#827717', - A100: '#f4ff81', - A200: '#eeff41', - A400: '#c6ff00', - A700: '#aeea00' -}; - -exports.default = lime; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/orange.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var orange = { - 50: '#fff3e0', - 100: '#ffe0b2', - 200: '#ffcc80', - 300: '#ffb74d', - 400: '#ffa726', - 500: '#ff9800', - 600: '#fb8c00', - 700: '#f57c00', - 800: '#ef6c00', - 900: '#e65100', - A100: '#ffd180', - A200: '#ffab40', - A400: '#ff9100', - A700: '#ff6d00' -}; - -exports.default = orange; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/pink.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var pink = { - 50: '#fce4ec', - 100: '#f8bbd0', - 200: '#f48fb1', - 300: '#f06292', - 400: '#ec407a', - 500: '#e91e63', - 600: '#d81b60', - 700: '#c2185b', - 800: '#ad1457', - 900: '#880e4f', - A100: '#ff80ab', - A200: '#ff4081', - A400: '#f50057', - A700: '#c51162' -}; - -exports.default = pink; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/purple.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var purple = { - 50: '#f3e5f5', - 100: '#e1bee7', - 200: '#ce93d8', - 300: '#ba68c8', - 400: '#ab47bc', - 500: '#9c27b0', - 600: '#8e24aa', - 700: '#7b1fa2', - 800: '#6a1b9a', - 900: '#4a148c', - A100: '#ea80fc', - A200: '#e040fb', - A400: '#d500f9', - A700: '#aa00ff' -}; - -exports.default = purple; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/red.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var red = { - 50: '#ffebee', - 100: '#ffcdd2', - 200: '#ef9a9a', - 300: '#e57373', - 400: '#ef5350', - 500: '#f44336', - 600: '#e53935', - 700: '#d32f2f', - 800: '#c62828', - 900: '#b71c1c', - A100: '#ff8a80', - A200: '#ff5252', - A400: '#ff1744', - A700: '#d50000' -}; - -exports.default = red; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/teal.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var teal = { - 50: '#e0f2f1', - 100: '#b2dfdb', - 200: '#80cbc4', - 300: '#4db6ac', - 400: '#26a69a', - 500: '#009688', - 600: '#00897b', - 700: '#00796b', - 800: '#00695c', - 900: '#004d40', - A100: '#a7ffeb', - A200: '#64ffda', - A400: '#1de9b6', - A700: '#00bfa5' -}; - -exports.default = teal; - -/***/ }), - -/***/ "./node_modules/material-ui/colors/yellow.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var yellow = { - 50: '#fffde7', - 100: '#fff9c4', - 200: '#fff59d', - 300: '#fff176', - 400: '#ffee58', - 500: '#ffeb3b', - 600: '#fdd835', - 700: '#fbc02d', - 800: '#f9a825', - 900: '#f57f17', - A100: '#ffff8d', - A200: '#ffff00', - A400: '#ffea00', - A700: '#ffd600' -}; - -exports.default = yellow; - -/***/ }), - -/***/ "./node_modules/material-ui/es/Button/Button.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__ = __webpack_require__("./node_modules/material-ui/es/styles/colorManipulator.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ButtonBase__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_helpers__ = __webpack_require__("./node_modules/material-ui/es/utils/helpers.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_reactHelpers__ = __webpack_require__("./node_modules/material-ui/es/utils/reactHelpers.js"); - - -// @inheritedComponent ButtonBase - - - - - - - - - - -const styles = theme => ({ - root: __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, theme.typography.button, { - lineHeight: '1.4em', // Improve readability for multiline button. - boxSizing: 'border-box', - minWidth: theme.spacing.unit * 11, - minHeight: 36, - padding: `${theme.spacing.unit}px ${theme.spacing.unit * 2}px`, - borderRadius: 2, - color: theme.palette.text.primary, - transition: theme.transitions.create(['background-color', 'box-shadow'], { - duration: theme.transitions.duration.short - }), - '&:hover': { - textDecoration: 'none', - // Reset on mouse devices - backgroundColor: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__["a" /* fade */])(theme.palette.text.primary, 0.12), - '@media (hover: none)': { - backgroundColor: 'transparent' - }, - '&$disabled': { - backgroundColor: 'transparent' - } - } - }), - label: { - width: '100%', - display: 'inherit', - alignItems: 'inherit', - justifyContent: 'inherit' - }, - flatPrimary: { - color: theme.palette.primary.main, - '&:hover': { - backgroundColor: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__["a" /* fade */])(theme.palette.primary.main, 0.12), - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: 'transparent' - } - } - }, - flatSecondary: { - color: theme.palette.secondary.main, - '&:hover': { - backgroundColor: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__styles_colorManipulator__["a" /* fade */])(theme.palette.secondary.main, 0.12), - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: 'transparent' - } - } - }, - colorInherit: { - color: 'inherit' - }, - raised: { - color: theme.palette.getContrastText(theme.palette.grey[300]), - backgroundColor: theme.palette.grey[300], - boxShadow: theme.shadows[2], - '&$keyboardFocused': { - boxShadow: theme.shadows[6] - }, - '&:active': { - boxShadow: theme.shadows[8] - }, - '&$disabled': { - boxShadow: theme.shadows[0], - backgroundColor: theme.palette.action.disabledBackground - }, - '&:hover': { - backgroundColor: theme.palette.grey.A100, - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: theme.palette.grey[300] - }, - '&$disabled': { - backgroundColor: theme.palette.action.disabledBackground - } - } - }, - keyboardFocused: {}, - raisedPrimary: { - color: theme.palette.primary.contrastText, - backgroundColor: theme.palette.primary.main, - '&:hover': { - backgroundColor: theme.palette.primary.dark, - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: theme.palette.primary.main - } - } - }, - raisedSecondary: { - color: theme.palette.secondary.contrastText, - backgroundColor: theme.palette.secondary.main, - '&:hover': { - backgroundColor: theme.palette.secondary.dark, - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: theme.palette.secondary.main - } - } - }, - disabled: { - color: theme.palette.action.disabled - }, - fab: { - borderRadius: '50%', - padding: 0, - minWidth: 0, - width: 56, - fontSize: 24, - height: 56, - boxShadow: theme.shadows[6], - '&:active': { - boxShadow: theme.shadows[12] - } - }, - mini: { - width: 40, - height: 40 - }, - sizeSmall: { - padding: `${theme.spacing.unit - 1}px ${theme.spacing.unit}px`, - minWidth: theme.spacing.unit * 8, - minHeight: 32, - fontSize: theme.typography.pxToRem(theme.typography.fontSize - 1) - }, - sizeLarge: { - padding: `${theme.spacing.unit}px ${theme.spacing.unit * 3}px`, - minWidth: theme.spacing.unit * 14, - minHeight: 40, - fontSize: theme.typography.pxToRem(theme.typography.fontSize + 1) - }, - fullWidth: { - width: '100%' - } -}); -/* harmony export (immutable) */ __webpack_exports__["styles"] = styles; - - -function Button(props) { - const { - children: childrenProp, - classes, - className: classNameProp, - color, - disabled, - disableFocusRipple, - fullWidth, - mini, - size, - variant - } = props, - other = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default()(props, ['children', 'classes', 'className', 'color', 'disabled', 'disableFocusRipple', 'fullWidth', 'mini', 'size', 'variant']); - - const fab = variant === 'fab'; - const raised = variant === 'raised'; - const flat = !raised && !fab; - const className = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.root, { - [classes.raised]: raised || fab, - [classes.fab]: fab, - [classes.mini]: fab && mini, - [classes.colorInherit]: color === 'inherit', - [classes.flatPrimary]: flat && color === 'primary', - [classes.flatSecondary]: flat && color === 'secondary', - [classes.raisedPrimary]: !flat && color === 'primary', - [classes.raisedSecondary]: !flat && color === 'secondary', - [classes[`size${__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__utils_helpers__["a" /* capitalize */])(size)}`]]: size !== 'medium', - [classes.disabled]: disabled, - [classes.fullWidth]: fullWidth - }, classNameProp); - - let children = childrenProp; - - if (fab) { - children = __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.map(children, child => { - if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_reactHelpers__["a" /* isMuiElement */])(child, ['Icon', 'SvgIcon'])) { - return __WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(child, { fontSize: true }); - } - return child; - }); - } - - return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( - __WEBPACK_IMPORTED_MODULE_7__ButtonBase__["a" /* default */], - __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ - className: className, - disabled: disabled, - focusRipple: !disableFocusRipple, - keyboardFocusedClassName: classes.keyboardFocused - }, other), - __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( - 'span', - { className: classes.label }, - children - ) - ); -} - -Button.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the button. - */ - children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node.isRequired, - /** - * Useful to extend the style applied to components. - */ - classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, - /** - * @ignore - */ - className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - color: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['default', 'inherit', 'primary', 'secondary']), - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - * The default value is a `button`. - */ - component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]), - /** - * If `true`, the button will be disabled. - */ - disabled: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * If `true`, the keyboard focus ripple will be disabled. - * `disableRipple` must also be true. - */ - disableFocusRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * If `true`, the button will take up the full width of its container. - */ - fullWidth: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * The URL to link to when the button is clicked. - * If defined, an `a` element will be used as the root node. - */ - href: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, - /** - * If `true`, and `fab` is `true`, will use mini floating action button styling. - */ - mini: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * The size of the button. - * `small` is equivalent to the dense button styling. - */ - size: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['small', 'medium', 'large']), - /** - * @ignore - */ - type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, - /** - * The color of the component. It supports those theme colors that make sense for this component. - */ - variant: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['flat', 'raised', 'fab']) -} : {}; - -Button.defaultProps = { - color: 'default', - disabled: false, - disableFocusRipple: false, - disableRipple: false, - fullWidth: false, - mini: false, - size: 'medium', - type: 'button', - variant: 'flat' -}; - -/* harmony default export */ __webpack_exports__["default"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__styles_withStyles__["a" /* default */])(styles, { name: 'MuiButton' })(Button)); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/ButtonBase/ButtonBase.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom__ = __webpack_require__("./node_modules/react-dom/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_dom__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_keycode__ = __webpack_require__("./node_modules/keycode/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_keycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_keycode__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow__ = __webpack_require__("./node_modules/dom-helpers/ownerWindow.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__ = __webpack_require__("./node_modules/material-ui/es/utils/keyboardFocus.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__TouchRipple__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/TouchRipple.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__createRippleHandler__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/createRippleHandler.js"); - - - - - - - - - - - - - -const styles = { - root: { - display: 'inline-flex', - alignItems: 'center', - justifyContent: 'center', - position: 'relative', - // Remove grey highlight - WebkitTapHighlightColor: 'transparent', - backgroundColor: 'transparent', // Reset default value - outline: 'none', - border: 0, - margin: 0, // Remove the margin in Safari - borderRadius: 0, - padding: 0, // Remove the padding in Firefox - cursor: 'pointer', - userSelect: 'none', - verticalAlign: 'middle', - '-moz-appearance': 'none', // Reset - '-webkit-appearance': 'none', // Reset - textDecoration: 'none', - // So we take precedent over the style of a native element. - color: 'inherit', - '&::-moz-focus-inner': { - borderStyle: 'none' // Remove Firefox dotted outline. - } - }, - disabled: { - pointerEvents: 'none', // Disable link interactions - cursor: 'default' - } -}; -/* unused harmony export styles */ - - -// Don't automatically add the role="button" property on these components. -// It's invalid HTML syntax. -const INVALID_COMPONENT_ROLE = ['a']; - -/** - * `ButtonBase` contains as few styles as possible. - * It aims to be a simple building block for creating a button. - * It contains a load of style reset and some focus/ripple logic. - */ -class ButtonBase extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.Component { - constructor(...args) { - var _temp; - - return _temp = super(...args), this.state = { - keyboardFocused: false - }, this.onKeyboardFocusHandler = event => { - this.keyDown = false; - this.setState({ keyboardFocused: true }); - - if (this.props.onKeyboardFocus) { - this.props.onKeyboardFocus(event); - } - }, this.onRippleRef = node => { - this.ripple = node; - }, this.ripple = null, this.keyDown = false, this.button = null, this.keyboardFocusTimeout = null, this.keyboardFocusCheckTime = 50, this.keyboardFocusMaxCheckTimes = 5, this.handleKeyDown = event => { - const { component, focusRipple, onKeyDown, onClick } = this.props; - const key = __WEBPACK_IMPORTED_MODULE_6_keycode___default()(event); - - // Check if key is already down to avoid repeats being counted as multiple activations - if (focusRipple && !this.keyDown && this.state.keyboardFocused && this.ripple && key === 'space') { - this.keyDown = true; - event.persist(); - this.ripple.stop(event, () => { - this.ripple.start(event); - }); - } - - if (onKeyDown) { - onKeyDown(event); - } - - // Keyboard accessibility for non interactive elements - if (event.target === this.button && onClick && component && component !== 'a' && component !== 'button' && (key === 'space' || key === 'enter')) { - event.preventDefault(); - onClick(event); - } - }, this.handleKeyUp = event => { - if (this.props.focusRipple && __WEBPACK_IMPORTED_MODULE_6_keycode___default()(event) === 'space' && this.ripple && this.state.keyboardFocused) { - this.keyDown = false; - event.persist(); - this.ripple.stop(event, () => this.ripple.pulsate(event)); - } - if (this.props.onKeyUp) { - this.props.onKeyUp(event); - } - }, this.handleMouseDown = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'MouseDown', 'start', () => { - clearTimeout(this.keyboardFocusTimeout); - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["a" /* focusKeyPressed */])(false); - if (this.state.keyboardFocused) { - this.setState({ keyboardFocused: false }); - } - }), this.handleMouseUp = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'MouseUp', 'stop'), this.handleMouseLeave = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'MouseLeave', 'stop', event => { - if (this.state.keyboardFocused) { - event.preventDefault(); - } - }), this.handleTouchStart = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'TouchStart', 'start'), this.handleTouchEnd = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'TouchEnd', 'stop'), this.handleTouchMove = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'TouchEnd', 'stop'), this.handleBlur = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__createRippleHandler__["a" /* default */])(this, 'Blur', 'stop', () => { - clearTimeout(this.keyboardFocusTimeout); - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["a" /* focusKeyPressed */])(false); - this.setState({ keyboardFocused: false }); - }), this.handleFocus = event => { - if (this.props.disabled) { - return; - } - - // Fix for https://github.com/facebook/react/issues/7769 - if (!this.button) { - this.button = event.currentTarget; - } - - event.persist(); - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["b" /* detectKeyboardFocus */])(this, this.button, () => { - this.onKeyboardFocusHandler(event); - }); - - if (this.props.onFocus) { - this.props.onFocus(event); - } - }, _temp; - } - - componentDidMount() { - this.button = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_react_dom__["findDOMNode"])(this); - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__utils_keyboardFocus__["c" /* listenForFocusKeys */])(__WEBPACK_IMPORTED_MODULE_7_dom_helpers_ownerWindow___default()(this.button)); - } - - componentWillReceiveProps(nextProps) { - // The blur won't fire when the disabled state is set on a focused input. - // We need to book keep the focused state manually. - if (!this.props.disabled && nextProps.disabled && this.state.keyboardFocused) { - this.setState({ - keyboardFocused: false - }); - } - } - - componentWillUpdate(nextProps, nextState) { - if (this.props.focusRipple && nextState.keyboardFocused && !this.state.keyboardFocused && !this.props.disableRipple) { - this.ripple.pulsate(); - } - } - - componentWillUnmount() { - this.button = null; - clearTimeout(this.keyboardFocusTimeout); - } // Used to help track keyboard activation keyDown - - - render() { - const _props = this.props, - { - buttonRef, - centerRipple, - children, - classes, - className: classNameProp, - component, - disabled, - disableRipple, - focusRipple, - keyboardFocusedClassName, - onBlur, - onFocus, - onKeyboardFocus, - onKeyDown, - onKeyUp, - onMouseDown, - onMouseLeave, - onMouseUp, - onTouchEnd, - onTouchMove, - onTouchStart, - tabIndex, - type - } = _props, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['buttonRef', 'centerRipple', 'children', 'classes', 'className', 'component', 'disabled', 'disableRipple', 'focusRipple', 'keyboardFocusedClassName', 'onBlur', 'onFocus', 'onKeyboardFocus', 'onKeyDown', 'onKeyUp', 'onMouseDown', 'onMouseLeave', 'onMouseUp', 'onTouchEnd', 'onTouchMove', 'onTouchStart', 'tabIndex', 'type']); - - const className = __WEBPACK_IMPORTED_MODULE_5_classnames___default()(classes.root, { - [classes.disabled]: disabled, - [keyboardFocusedClassName || '']: this.state.keyboardFocused - }, classNameProp); - - const buttonProps = {}; - - let ComponentProp = component; - - if (!ComponentProp) { - if (other.href) { - ComponentProp = 'a'; - } else { - ComponentProp = 'button'; - } - } - - if (ComponentProp === 'button') { - buttonProps.type = type || 'button'; - buttonProps.disabled = disabled; - } else if (INVALID_COMPONENT_ROLE.indexOf(ComponentProp) === -1) { - buttonProps.role = 'button'; - } - - return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( - ComponentProp, - __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - onBlur: this.handleBlur, - onFocus: this.handleFocus, - onKeyDown: this.handleKeyDown, - onKeyUp: this.handleKeyUp, - onMouseDown: this.handleMouseDown, - onMouseLeave: this.handleMouseLeave, - onMouseUp: this.handleMouseUp, - onTouchEnd: this.handleTouchEnd, - onTouchMove: this.handleTouchMove, - onTouchStart: this.handleTouchStart, - tabIndex: disabled ? -1 : tabIndex, - className: className, - ref: buttonRef - }, buttonProps, other), - children, - !disableRipple && !disabled ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__TouchRipple__["a" /* default */], { innerRef: this.onRippleRef, center: centerRipple }) : null - ); - } -} - -ButtonBase.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Use that property to pass a ref callback to the native button component. - */ - buttonRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * If `true`, the ripples will be centered. - * They won't start at the cursor interaction position. - */ - centerRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * The content of the component. - */ - children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node, - /** - * Useful to extend the style applied to components. - */ - classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, - /** - * @ignore - */ - className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - * The default value is a `button`. - */ - component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]), - /** - * If `true`, the base button will be disabled. - */ - disabled: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * If `true`, the base button will have a keyboard focus ripple. - * `disableRipple` must also be `false`. - */ - focusRipple: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * The CSS class applied while the component is keyboard focused. - */ - keyboardFocusedClassName: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, - /** - * @ignore - */ - onBlur: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onClick: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onFocus: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * Callback fired when the component is focused with a keyboard. - * We trigger a `onFocus` callback too. - */ - onKeyboardFocus: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onKeyDown: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onKeyUp: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onMouseDown: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onMouseLeave: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onMouseUp: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onTouchEnd: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onTouchMove: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - onTouchStart: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, - /** - * @ignore - */ - role: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, - /** - * @ignore - */ - tabIndex: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]), - /** - * @ignore - */ - type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string -} : {}; - -ButtonBase.defaultProps = { - centerRipple: false, - disableRipple: false, - focusRipple: false, - tabIndex: 0, - type: 'button' -}; - -/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__styles_withStyles__["a" /* default */])(styles, { name: 'MuiButtonBase' })(ButtonBase)); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/ButtonBase/Ripple.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition__ = __webpack_require__("./node_modules/react-transition-group/Transition.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition__); - - - - - - - -/** - * @ignore - internal component. - */ -class Ripple extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.Component { - constructor(...args) { - var _temp; - - return _temp = super(...args), this.state = { - rippleVisible: false, - rippleLeaving: false - }, this.handleEnter = () => { - this.setState({ - rippleVisible: true - }); - }, this.handleExit = () => { - this.setState({ - rippleLeaving: true - }); - }, _temp; - } - - render() { - const _props = this.props, - { - classes, - className: classNameProp, - pulsate, - rippleX, - rippleY, - rippleSize - } = _props, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['classes', 'className', 'pulsate', 'rippleX', 'rippleY', 'rippleSize']); - const { rippleVisible, rippleLeaving } = this.state; - - const className = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.wrapper, { - [classes.wrapperLeaving]: rippleLeaving, - [classes.wrapperPulsating]: pulsate - }, classNameProp); - - const rippleClassName = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.ripple, { - [classes.rippleVisible]: rippleVisible, - [classes.rippleFast]: pulsate - }); - - const rippleStyles = { - width: rippleSize, - height: rippleSize, - top: -(rippleSize / 2) + rippleY, - left: -(rippleSize / 2) + rippleX - }; - - return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( - __WEBPACK_IMPORTED_MODULE_5_react_transition_group_Transition___default.a, - __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ onEnter: this.handleEnter, onExit: this.handleExit }, other), - __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( - 'span', - { className: className }, - __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('span', { className: rippleClassName, style: rippleStyles }) - ) - ); - } -} - -Ripple.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, - /** - * @ignore - */ - className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, - /** - * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element. - */ - pulsate: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * Diameter of the ripple. - */ - rippleSize: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, - /** - * Horizontal position of the ripple center. - */ - rippleX: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, - /** - * Vertical position of the ripple center. - */ - rippleY: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number -} : {}; - -Ripple.defaultProps = { - pulsate: false -}; - -/* harmony default export */ __webpack_exports__["a"] = (Ripple); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/ButtonBase/TouchRipple.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom__ = __webpack_require__("./node_modules/react-dom/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_dom__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup__ = __webpack_require__("./node_modules/react-transition-group/TransitionGroup.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Ripple__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/Ripple.js"); - - - - - - - - - - -const DURATION = 550; -const DELAY_RIPPLE = 80; -/* unused harmony export DELAY_RIPPLE */ - - -const styles = theme => ({ - root: { - display: 'block', - position: 'absolute', - overflow: 'hidden', - borderRadius: 'inherit', - width: '100%', - height: '100%', - left: 0, - top: 0, - pointerEvents: 'none', - zIndex: 0 - }, - wrapper: { - opacity: 1 - }, - wrapperLeaving: { - opacity: 0, - animation: `mui-ripple-exit ${DURATION}ms ${theme.transitions.easing.easeInOut}` - }, - wrapperPulsating: { - position: 'absolute', - left: 0, - top: 0, - display: 'block', - width: '100%', - height: '100%', - animation: `mui-ripple-pulsate 2500ms ${theme.transitions.easing.easeInOut} 200ms infinite` - }, - '@keyframes mui-ripple-enter': { - '0%': { - transform: 'scale(0)' - }, - '100%': { - transform: 'scale(1)' - } - }, - '@keyframes mui-ripple-exit': { - '0%': { - opacity: 1 - }, - '100%': { - opacity: 0 - } - }, - '@keyframes mui-ripple-pulsate': { - '0%': { - transform: 'scale(1)' - }, - '50%': { - transform: 'scale(0.92)' - }, - '100%': { - transform: 'scale(1)' - } - }, - ripple: { - width: 50, - height: 50, - left: 0, - top: 0, - opacity: 0, - position: 'absolute', - borderRadius: '50%', - background: 'currentColor' - }, - rippleVisible: { - opacity: 0.3, - transform: 'scale(1)', - animation: `mui-ripple-enter ${DURATION}ms ${theme.transitions.easing.easeInOut}` - }, - rippleFast: { - animationDuration: '200ms' - } -}); -/* unused harmony export styles */ - - -/** - * @ignore - internal component. - */ -class TouchRipple extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.Component { - constructor(...args) { - var _temp; - - return _temp = super(...args), this.state = { - nextKey: 0, - ripples: [] - }, this.ignoringMouseDown = false, this.startTimer = null, this.startTimerCommit = null, this.pulsate = () => { - this.start({}, { pulsate: true }); - }, this.start = (event = {}, options = {}, cb) => { - const { - pulsate = false, - center = this.props.center || options.pulsate, - fakeElement = false // For test purposes - } = options; - - if (event.type === 'mousedown' && this.ignoringMouseDown) { - this.ignoringMouseDown = false; - return; - } - - if (event.type === 'touchstart') { - this.ignoringMouseDown = true; - } - - const element = fakeElement ? null : __WEBPACK_IMPORTED_MODULE_4_react_dom___default.a.findDOMNode(this); - const rect = element ? element.getBoundingClientRect() : { - width: 0, - height: 0, - left: 0, - top: 0 - }; - - // Get the size of the ripple - let rippleX; - let rippleY; - let rippleSize; - - if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) { - rippleX = Math.round(rect.width / 2); - rippleY = Math.round(rect.height / 2); - } else { - const clientX = event.clientX ? event.clientX : event.touches[0].clientX; - const clientY = event.clientY ? event.clientY : event.touches[0].clientY; - rippleX = Math.round(clientX - rect.left); - rippleY = Math.round(clientY - rect.top); - } - - if (center) { - rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); - - // For some reason the animation is broken on Mobile Chrome if the size if even. - if (rippleSize % 2 === 0) { - rippleSize += 1; - } - } else { - const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2; - const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2; - rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2)); - } - - // Touche devices - if (event.touches) { - // Prepare the ripple effect. - this.startTimerCommit = () => { - this.startCommit({ pulsate, rippleX, rippleY, rippleSize, cb }); - }; - // Deplay the execution of the ripple effect. - this.startTimer = setTimeout(() => { - this.startTimerCommit(); - this.startTimerCommit = null; - }, DELAY_RIPPLE); // We have to make a tradeoff with this value. - } else { - this.startCommit({ pulsate, rippleX, rippleY, rippleSize, cb }); - } - }, this.startCommit = params => { - const { pulsate, rippleX, rippleY, rippleSize, cb } = params; - let ripples = this.state.ripples; - - // Add a ripple to the ripples array. - ripples = [...ripples, __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__Ripple__["a" /* default */], { - key: this.state.nextKey, - classes: this.props.classes, - timeout: { - exit: DURATION, - enter: DURATION - }, - pulsate: pulsate, - rippleX: rippleX, - rippleY: rippleY, - rippleSize: rippleSize - })]; - - this.setState({ - nextKey: this.state.nextKey + 1, - ripples - }, cb); - }, this.stop = (event, cb) => { - clearTimeout(this.startTimer); - const { ripples } = this.state; - - // The touch interaction occures to quickly. - // We still want to show ripple effect. - if (event.type === 'touchend' && this.startTimerCommit) { - event.persist(); - this.startTimerCommit(); - this.startTimerCommit = null; - this.startTimer = setTimeout(() => { - this.stop(event, cb); - }, 0); - return; - } - - this.startTimerCommit = null; - - if (ripples && ripples.length) { - this.setState({ - ripples: ripples.slice(1) - }, cb); - } - }, _temp; - } - - componentWillUnmount() { - clearTimeout(this.startTimer); - } - - // Used to filter out mouse emulated events on mobile. - - // We use a timer in order to only show the ripples for touch "click" like events. - // We don't want to display the ripple for touch scroll events. - - // This is the hook called once the previous timeout is ready. - - - render() { - const _props = this.props, - { center, classes, className } = _props, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['center', 'classes', 'className']); - - return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( - __WEBPACK_IMPORTED_MODULE_5_react_transition_group_TransitionGroup___default.a, - __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - component: 'span', - enter: true, - exit: true, - className: __WEBPACK_IMPORTED_MODULE_6_classnames___default()(classes.root, className) - }, other), - this.state.ripples - ); - } -} - -TouchRipple.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the ripple starts at the center of the component - * rather than at the point of interaction. - */ - center: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, - /** - * Useful to extend the style applied to components. - */ - classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, - /** - * @ignore - */ - className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string -} : {}; - -TouchRipple.defaultProps = { - center: false -}; - -/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__styles_withStyles__["a" /* default */])(styles, { flip: false, name: 'MuiTouchRipple' })(TouchRipple)); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/ButtonBase/createRippleHandler.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -function createRippleHandler(instance, eventName, action, cb) { - return function handleEvent(event) { - if (cb) { - cb.call(instance, event); - } - - if (event.defaultPrevented) { - return false; - } - - if (instance.ripple) { - instance.ripple[action](event); - } - - if (instance.props && typeof instance.props[`on${eventName}`] === 'function') { - instance.props[`on${eventName}`](event); - } - - return true; - }; -} - -/* harmony default export */ __webpack_exports__["a"] = (createRippleHandler); - -/***/ }), - -/***/ "./node_modules/material-ui/es/ButtonBase/index.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ButtonBase__ = __webpack_require__("./node_modules/material-ui/es/ButtonBase/ButtonBase.js"); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__ButtonBase__["a"]; }); - - -/***/ }), - -/***/ "./node_modules/material-ui/es/List/ListItemSecondaryAction.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__("./node_modules/react/react.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__styles_withStyles__ = __webpack_require__("./node_modules/material-ui/es/styles/withStyles.js"); - - - - - - - -const styles = theme => ({ - root: { - position: 'absolute', - right: 4, - top: '50%', - marginTop: -theme.spacing.unit * 3 - } -}); -/* harmony export (immutable) */ __webpack_exports__["styles"] = styles; - - -function ListItemSecondaryAction(props) { - const { children, classes, className } = props, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(props, ['children', 'classes', 'className']); - - return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( - 'div', - __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(classes.root, className) }, other), - children - ); -} - -ListItemSecondaryAction.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content of the component, normally an `IconButton` or selection control. - */ - children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node, - /** - * Useful to extend the style applied to components. - */ - classes: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired, - /** - * @ignore - */ - className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string -} : {}; - -ListItemSecondaryAction.muiName = 'ListItemSecondaryAction'; - -/* harmony default export */ __webpack_exports__["default"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__styles_withStyles__["a" /* default */])(styles, { name: 'MuiListItemSecondaryAction' })(ListItemSecondaryAction)); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/colors/common.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -const common = { - black: '#000', - white: '#fff' -}; - -/* harmony default export */ __webpack_exports__["a"] = (common); - -/***/ }), - -/***/ "./node_modules/material-ui/es/colors/grey.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -const grey = { - 50: '#fafafa', - 100: '#f5f5f5', - 200: '#eeeeee', - 300: '#e0e0e0', - 400: '#bdbdbd', - 500: '#9e9e9e', - 600: '#757575', - 700: '#616161', - 800: '#424242', - 900: '#212121', - A100: '#d5d5d5', - A200: '#aaaaaa', - A400: '#303030', - A700: '#616161' -}; - -/* harmony default export */ __webpack_exports__["a"] = (grey); - -/***/ }), - -/***/ "./node_modules/material-ui/es/colors/indigo.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -const indigo = { - 50: '#e8eaf6', - 100: '#c5cae9', - 200: '#9fa8da', - 300: '#7986cb', - 400: '#5c6bc0', - 500: '#3f51b5', - 600: '#3949ab', - 700: '#303f9f', - 800: '#283593', - 900: '#1a237e', - A100: '#8c9eff', - A200: '#536dfe', - A400: '#3d5afe', - A700: '#304ffe' -}; - -/* harmony default export */ __webpack_exports__["a"] = (indigo); - -/***/ }), - -/***/ "./node_modules/material-ui/es/colors/pink.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -const pink = { - 50: '#fce4ec', - 100: '#f8bbd0', - 200: '#f48fb1', - 300: '#f06292', - 400: '#ec407a', - 500: '#e91e63', - 600: '#d81b60', - 700: '#c2185b', - 800: '#ad1457', - 900: '#880e4f', - A100: '#ff80ab', - A200: '#ff4081', - A400: '#f50057', - A700: '#c51162' -}; - -/* harmony default export */ __webpack_exports__["a"] = (pink); - -/***/ }), - -/***/ "./node_modules/material-ui/es/colors/red.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -const red = { - 50: '#ffebee', - 100: '#ffcdd2', - 200: '#ef9a9a', - 300: '#e57373', - 400: '#ef5350', - 500: '#f44336', - 600: '#e53935', - 700: '#d32f2f', - 800: '#c62828', - 900: '#b71c1c', - A100: '#ff8a80', - A200: '#ff5252', - A400: '#ff1744', - A700: '#d50000' -}; - -/* harmony default export */ __webpack_exports__["a"] = (red); - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/colorManipulator.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export convertHexToRGB */ -/* unused harmony export decomposeColor */ -/* unused harmony export recomposeColor */ -/* harmony export (immutable) */ __webpack_exports__["d"] = getContrastRatio; -/* unused harmony export getLuminance */ -/* unused harmony export emphasize */ -/* harmony export (immutable) */ __webpack_exports__["a"] = fade; -/* harmony export (immutable) */ __webpack_exports__["c"] = darken; -/* harmony export (immutable) */ __webpack_exports__["b"] = lighten; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__); -// weak -/* eslint-disable no-use-before-define */ - - - -/** - * Returns a number whose value is limited to the given range. - * - * @param {number} value The value to be clamped - * @param {number} min The lower boundary of the output range - * @param {number} max The upper boundary of the output range - * @returns {number} A number in the range [min, max] - */ -function clamp(value, min = 0, max = 1) { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(value >= min && value <= max, `Material-UI: the value provided ${value} is out of range [${min}, ${max}].`) : void 0; - - if (value < min) { - return min; - } - if (value > max) { - return max; - } - return value; -} - -/** - * Converts a color from CSS hex format to CSS rgb format. - * - * @param {string} color - Hex color, i.e. #nnn or #nnnnnn - * @returns {string} A CSS rgb color string - */ -function convertHexToRGB(color) { - color = color.substr(1); - - const re = new RegExp(`.{1,${color.length / 3}}`, 'g'); - let colors = color.match(re); - - if (colors && colors[0].length === 1) { - colors = colors.map(n => n + n); - } - - return colors ? `rgb(${colors.map(n => parseInt(n, 16)).join(', ')})` : ''; -} - -/** - * Returns an object with the type and values of a color. - * - * Note: Does not support rgb % values. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @returns {object} - A MUI color object: {type: string, values: number[]} - */ -function decomposeColor(color) { - if (color.charAt(0) === '#') { - return decomposeColor(convertHexToRGB(color)); - } - - const marker = color.indexOf('('); - const type = color.substring(0, marker); - let values = color.substring(marker + 1, color.length - 1).split(','); - values = values.map(value => parseFloat(value)); - - return { type, values }; -} - -/** - * Converts a color object with type and values to a string. - * - * @param {object} color - Decomposed color - * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla' - * @param {array} color.values - [n,n,n] or [n,n,n,n] - * @returns {string} A CSS color string - */ -function recomposeColor(color) { - const { type } = color; - let { values } = color; - - if (type.indexOf('rgb') > -1) { - // Only convert the first 3 values to int (i.e. not alpha) - values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n); - } - - if (type.indexOf('hsl') > -1) { - values[1] = `${values[1]}%`; - values[2] = `${values[2]}%`; - } - - return `${color.type}(${values.join(', ')})`; -} - -/** - * Calculates the contrast ratio between two colors. - * - * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests - * - * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @returns {number} A contrast ratio value in the range 0 - 21. - */ -function getContrastRatio(foreground, background) { - const lumA = getLuminance(foreground); - const lumB = getLuminance(background); - return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05); -} - -/** - * The relative brightness of any point in a color space, - * normalized to 0 for darkest black and 1 for lightest white. - * - * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @returns {number} The relative brightness of the color in the range 0 - 1 - */ -function getLuminance(color) { - const decomposedColor = decomposeColor(color); - - if (decomposedColor.type.indexOf('rgb') > -1) { - const rgb = decomposedColor.values.map(val => { - val /= 255; // normalized - return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4); - }); - // Truncate at 3 digits - return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3)); - } else if (decomposedColor.type.indexOf('hsl') > -1) { - return decomposedColor.values[2] / 100; - } - - throw new Error(`Material-UI: unsupported \`${color}\` color.`); -} - -/** - * Darken or lighten a colour, depending on its luminance. - * Light colors are darkened, dark colors are lightened. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} coefficient=0.15 - multiplier in the range 0 - 1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function emphasize(color, coefficient = 0.15) { - return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient); -} - -/** - * Set the absolute transparency of a color. - * Any existing alpha values are overwritten. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} value - value to set the alpha channel to in the range 0 -1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function fade(color, value) { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(color, `Material-UI: missing color argument in fade(${color}, ${value}).`) : void 0; - - if (!color) return color; - - color = decomposeColor(color); - value = clamp(value); - - if (color.type === 'rgb' || color.type === 'hsl') { - color.type += 'a'; - } - color.values[3] = value; - - return recomposeColor(color); -} - -/** - * Darkens a color. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} coefficient - multiplier in the range 0 - 1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function darken(color, coefficient) { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(color, `Material-UI: missing color argument in darken(${color}, ${coefficient}).`) : void 0; - - if (!color) return color; - - color = decomposeColor(color); - coefficient = clamp(coefficient); - - if (color.type.indexOf('hsl') > -1) { - color.values[2] *= 1 - coefficient; - } else if (color.type.indexOf('rgb') > -1) { - for (let i = 0; i < 3; i += 1) { - color.values[i] *= 1 - coefficient; - } - } - return recomposeColor(color); -} - -/** - * Lightens a color. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} coefficient - multiplier in the range 0 - 1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function lighten(color, coefficient) { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(color, `Material-UI: missing color argument in lighten(${color}, ${coefficient}).`) : void 0; - - if (!color) return color; - - color = decomposeColor(color); - coefficient = clamp(coefficient); - - if (color.type.indexOf('hsl') > -1) { - color.values[2] += (100 - color.values[2]) * coefficient; - } else if (color.type.indexOf('rgb') > -1) { - for (let i = 0; i < 3; i += 1) { - color.values[i] += (255 - color.values[i]) * coefficient; - } - } - - return recomposeColor(color); -} -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/createBreakpoints.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (immutable) */ __webpack_exports__["a"] = createBreakpoints; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); - - -// Sorted ASC by size. That's important. -// It can't be configured as it's used statically for propTypes. -const keys = ['xs', 'sm', 'md', 'lg', 'xl']; -/* unused harmony export keys */ - - -// Keep in mind that @media is inclusive by the CSS specification. -function createBreakpoints(breakpoints) { - const { - // The breakpoint **start** at this value. - // For instance with the first breakpoint xs: [xs, sm[. - values = { - xs: 0, - sm: 600, - md: 960, - lg: 1280, - xl: 1920 - }, - unit = 'px', - step = 5 - } = breakpoints, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(breakpoints, ['values', 'unit', 'step']); - - function up(key) { - const value = typeof values[key] === 'number' ? values[key] : key; - return `@media (min-width:${value}${unit})`; - } - - function down(key) { - const endIndex = keys.indexOf(key) + 1; - const upperbound = values[keys[endIndex]]; - - if (endIndex === keys.length) { - // xl down applies to all sizes - return up('xs'); - } - - const value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key; - return `@media (max-width:${value - step / 100}${unit})`; - } - - function between(start, end) { - const endIndex = keys.indexOf(end) + 1; - - if (endIndex === keys.length) { - return up(start); - } - - return `@media (min-width:${values[start]}${unit}) and ` + `(max-width:${values[keys[endIndex]] - step / 100}${unit})`; - } - - function only(key) { - return between(key, key); - } - - function width(key) { - return values[key]; - } - - return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - keys, - values, - up, - down, - between, - only, - width - }, other); -} - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/createGenerateClassName.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = createGenerateClassName; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__); - - -let generatorCounter = 0; - -// Returns a function which generates unique class names based on counters. -// When new generator function is created, rule counter is reset. -// We need to reset the rule counter for SSR for each request. -// -// It's inspired by -// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js -function createGenerateClassName(options = {}) { - const { dangerouslyUseGlobalCSS = false, productionPrefix = 'jss' } = options; - const escapeRegex = /([[\].#*$><+~=|^:(),"'`\s])/g; - let ruleCounter = 0; - - // - HMR can lead to many class name generators being instantiated, - // so the warning is only triggered in production. - // - We expect a class name generator to be instantiated per new request on the server, - // so the warning is only triggered client side. - // - You can get away with having multiple class name generators - // by modifying the `productionPrefix`. - if (process.env.NODE_ENV === 'production' && typeof window !== 'undefined' && productionPrefix === 'jss') { - generatorCounter += 1; - - if (generatorCounter > 2) { - // eslint-disable-next-line no-console - console.error(['Material-UI: we have detected more than needed creation of the class name generator.', 'You should only use one class name generator on the client side.', 'If you do otherwise, you take the risk to have conflicting class names in production.'].join('\n')); - } - } - - return (rule, styleSheet) => { - ruleCounter += 1; - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_0_warning___default()(ruleCounter < 1e10, ['Material-UI: you might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join('')) : void 0; - - // Code branch the whole block at the expense of more code. - if (dangerouslyUseGlobalCSS) { - if (styleSheet && styleSheet.options.classNamePrefix) { - let prefix = styleSheet.options.classNamePrefix; - // Sanitize the string as will be used to prefix the generated class name. - prefix = prefix.replace(escapeRegex, '-'); - - if (prefix.match(/^Mui/)) { - return `${prefix}-${rule.key}`; - } - - if (process.env.NODE_ENV !== 'production') { - return `${prefix}-${rule.key}-${ruleCounter}`; - } - } - - if (process.env.NODE_ENV === 'production') { - return `${productionPrefix}${ruleCounter}`; - } - - return `${rule.key}-${ruleCounter}`; - } - - if (process.env.NODE_ENV === 'production') { - return `${productionPrefix}${ruleCounter}`; - } - - if (styleSheet && styleSheet.options.classNamePrefix) { - let prefix = styleSheet.options.classNamePrefix; - // Sanitize the string as will be used to prefix the generated class name. - prefix = prefix.replace(escapeRegex, '-'); - - return `${prefix}-${rule.key}-${ruleCounter}`; - } - - return `${rule.key}-${ruleCounter}`; - }; -} -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/createMixins.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (immutable) */ __webpack_exports__["a"] = createMixins; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); - -function createMixins(breakpoints, spacing, mixins) { - return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - gutters: styles => { - return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - paddingLeft: spacing.unit * 2, - paddingRight: spacing.unit * 2 - }, styles, { - [breakpoints.up('sm')]: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - paddingLeft: spacing.unit * 3, - paddingRight: spacing.unit * 3 - }, styles[breakpoints.up('sm')]) - }); - }, - toolbar: { - minHeight: 56, - [`${breakpoints.up('xs')} and (orientation: landscape)`]: { - minHeight: 48 - }, - [breakpoints.up('sm')]: { - minHeight: 64 - } - } - }, mixins); -} - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/createMuiTheme.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTypography__ = __webpack_require__("./node_modules/material-ui/es/styles/createTypography.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__createBreakpoints__ = __webpack_require__("./node_modules/material-ui/es/styles/createBreakpoints.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__createPalette__ = __webpack_require__("./node_modules/material-ui/es/styles/createPalette.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__createMixins__ = __webpack_require__("./node_modules/material-ui/es/styles/createMixins.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__shadows__ = __webpack_require__("./node_modules/material-ui/es/styles/shadows.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__transitions__ = __webpack_require__("./node_modules/material-ui/es/styles/transitions.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__zIndex__ = __webpack_require__("./node_modules/material-ui/es/styles/zIndex.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__spacing__ = __webpack_require__("./node_modules/material-ui/es/styles/spacing.js"); - - - // < 1kb payload overhead when lodash/merge is > 3kb. - - - - - - - - - - -function createMuiTheme(options = {}) { - const { - palette: paletteInput = {}, - breakpoints: breakpointsInput = {}, - mixins: mixinsInput = {}, - typography: typographyInput = {}, - shadows: shadowsInput - } = options, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(options, ['palette', 'breakpoints', 'mixins', 'typography', 'shadows']); - - const palette = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__createPalette__["a" /* default */])(paletteInput); - const breakpoints = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__createBreakpoints__["a" /* default */])(breakpointsInput); - - const muiTheme = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - direction: 'ltr', - palette, - typography: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__createTypography__["a" /* default */])(palette, typographyInput), - mixins: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__createMixins__["a" /* default */])(breakpoints, __WEBPACK_IMPORTED_MODULE_11__spacing__["a" /* default */], mixinsInput), - breakpoints, - shadows: shadowsInput || __WEBPACK_IMPORTED_MODULE_8__shadows__["a" /* default */] - }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_deepmerge__["default"])({ - transitions: __WEBPACK_IMPORTED_MODULE_9__transitions__["a" /* default */], - spacing: __WEBPACK_IMPORTED_MODULE_11__spacing__["a" /* default */], - zIndex: __WEBPACK_IMPORTED_MODULE_10__zIndex__["a" /* default */] - }, other)); - - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(muiTheme.shadows.length === 25, 'Material-UI: the shadows array provided to createMuiTheme should support 25 elevations.') : void 0; - - return muiTheme; -} - -/* harmony default export */ __webpack_exports__["a"] = (createMuiTheme); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/createPalette.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = createPalette; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__colors_indigo__ = __webpack_require__("./node_modules/material-ui/es/colors/indigo.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__colors_pink__ = __webpack_require__("./node_modules/material-ui/es/colors/pink.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__colors_grey__ = __webpack_require__("./node_modules/material-ui/es/colors/grey.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__colors_red__ = __webpack_require__("./node_modules/material-ui/es/colors/red.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__colors_common__ = __webpack_require__("./node_modules/material-ui/es/colors/common.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__colorManipulator__ = __webpack_require__("./node_modules/material-ui/es/styles/colorManipulator.js"); - - - - // < 1kb payload overhead when lodash/merge is > 3kb. - - - - - - - -const light = { - // The colors used to style the text. - text: { - // The most important text. - primary: 'rgba(0, 0, 0, 0.87)', - // Secondary text. - secondary: 'rgba(0, 0, 0, 0.54)', - // Disabled text have even lower visual prominence. - disabled: 'rgba(0, 0, 0, 0.38)', - // Text hints. - hint: 'rgba(0, 0, 0, 0.38)' - }, - // The color used to divide different elements. - divider: 'rgba(0, 0, 0, 0.12)', - // The background colors used to style the surfaces. - // Consistency between these values is important. - background: { - paper: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */].white, - default: __WEBPACK_IMPORTED_MODULE_6__colors_grey__["a" /* default */][50] - }, - // The colors used to style the action elements. - action: { - // The color of an active action like an icon button. - active: 'rgba(0, 0, 0, 0.54)', - // The color of an hovered action. - hover: 'rgba(0, 0, 0, 0.08)', - // The color of a selected action. - selected: 'rgba(0, 0, 0, 0.14)', - // The color of a disabled action. - disabled: 'rgba(0, 0, 0, 0.26)', - // The background color of a disabled action. - disabledBackground: 'rgba(0, 0, 0, 0.12)' - } -}; -/* unused harmony export light */ - - -const dark = { - text: { - primary: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */].white, - secondary: 'rgba(255, 255, 255, 0.7)', - disabled: 'rgba(255, 255, 255, 0.5)', - hint: 'rgba(255, 255, 255, 0.5)', - icon: 'rgba(255, 255, 255, 0.5)' - }, - divider: 'rgba(255, 255, 255, 0.12)', - background: { - paper: __WEBPACK_IMPORTED_MODULE_6__colors_grey__["a" /* default */][800], - default: '#303030' - }, - action: { - active: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */].white, - hover: 'rgba(255, 255, 255, 0.1)', - selected: 'rgba(255, 255, 255, 0.2)', - disabled: 'rgba(255, 255, 255, 0.3)', - disabledBackground: 'rgba(255, 255, 255, 0.12)' - } -}; -/* unused harmony export dark */ - - -function addLightOrDark(intent, direction, shade, tonalOffset) { - if (!intent[direction]) { - if (intent.hasOwnProperty(shade)) { - intent[direction] = intent[shade]; - } else if (direction === 'light') { - intent.light = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["b" /* lighten */])(intent.main, tonalOffset); - } else if (direction === 'dark') { - intent.dark = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["c" /* darken */])(intent.main, tonalOffset * 1.5); - } - } -} - -function createPalette(palette) { - const { - primary = { - light: __WEBPACK_IMPORTED_MODULE_4__colors_indigo__["a" /* default */][300], - main: __WEBPACK_IMPORTED_MODULE_4__colors_indigo__["a" /* default */][500], - dark: __WEBPACK_IMPORTED_MODULE_4__colors_indigo__["a" /* default */][700] - }, - secondary = { - light: __WEBPACK_IMPORTED_MODULE_5__colors_pink__["a" /* default */].A200, - main: __WEBPACK_IMPORTED_MODULE_5__colors_pink__["a" /* default */].A400, - dark: __WEBPACK_IMPORTED_MODULE_5__colors_pink__["a" /* default */].A700 - }, - error = { - light: __WEBPACK_IMPORTED_MODULE_7__colors_red__["a" /* default */][300], - main: __WEBPACK_IMPORTED_MODULE_7__colors_red__["a" /* default */][500], - dark: __WEBPACK_IMPORTED_MODULE_7__colors_red__["a" /* default */][700] - }, - type = 'light', - contrastThreshold = 3, - tonalOffset = 0.2 - } = palette, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(palette, ['primary', 'secondary', 'error', 'type', 'contrastThreshold', 'tonalOffset']); - - function getContrastText(background) { - // Use the same logic as - // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59 - // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54 - const contrastText = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["d" /* getContrastRatio */])(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary; - - if (process.env.NODE_ENV !== 'production') { - const contrast = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__colorManipulator__["d" /* getContrastRatio */])(background, contrastText); - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_2_warning___default()(contrast >= 3, [`Material-UI: the contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WACG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\n')) : void 0; - } - - return contrastText; - } - - function augmentColor(color, mainShade, lightShade, darkShade) { - if (!color.main && color[mainShade]) { - color.main = color[mainShade]; - } - addLightOrDark(color, 'light', lightShade, tonalOffset); - addLightOrDark(color, 'dark', darkShade, tonalOffset); - if (!color.contrastText) { - color.contrastText = getContrastText(color.main); - } - } - - augmentColor(primary, 500, 300, 700); - augmentColor(secondary, 'A400', 'A200', 'A700'); - augmentColor(error, 500, 300, 700); - - const types = { dark, light }; - - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_2_warning___default()(types[type], `Material-UI: the palette type \`${type}\` is not supported.`) : void 0; - - const paletteOutput = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_deepmerge__["default"])(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - // A collection of common colors. - common: __WEBPACK_IMPORTED_MODULE_8__colors_common__["a" /* default */], - // The palette type, can be light or dark. - type, - // The colors used to represent primary interface elements for a user. - primary, - // The colors used to represent secondary interface elements for a user. - secondary, - // The colors used to represent interface elements that the user should be made aware of. - error, - // The grey colors. - grey: __WEBPACK_IMPORTED_MODULE_6__colors_grey__["a" /* default */], - // Used by `getContrastText()` to maximize the contrast between the background and - // the text. - contrastThreshold, - // Take a background color and return the color of the text to maximize the contrast. - getContrastText, - // Used by the functions below to shift a color's luminance by approximately - // two indexes within its tonal palette. - // E.g., shift from Red 500 to Red 300 or Red 700. - tonalOffset - }, types[type]), other, { - clone: false // No need to clone deep - }); - - return paletteOutput; -} -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/createTypography.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (immutable) */ __webpack_exports__["a"] = createTypography; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); - - // < 1kb payload overhead when lodash/merge is > 3kb. - -function round(value) { - return Math.round(value * 1e5) / 1e5; -} - -function createTypography(palette, typography) { - const _ref = typeof typography === 'function' ? typography(palette) : typography, - { - fontFamily = '"Roboto", "Helvetica", "Arial", sans-serif', - fontSize = 14, // px - fontWeightLight = 300, - fontWeightRegular = 400, - fontWeightMedium = 500, - htmlFontSize = 16 } = _ref, - other = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default()(_ref, ['fontFamily', 'fontSize', 'fontWeightLight', 'fontWeightRegular', 'fontWeightMedium', 'htmlFontSize']); - - function pxToRem(value) { - return `${value / htmlFontSize}rem`; - } - - return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_deepmerge__["default"])({ - pxToRem, - round, - fontFamily, - fontSize, - fontWeightLight, - fontWeightRegular, - fontWeightMedium, - display4: { - fontSize: pxToRem(112), - fontWeight: fontWeightLight, - fontFamily, - letterSpacing: '-.04em', - lineHeight: `${round(128 / 112)}em`, - marginLeft: '-.06em', - color: palette.text.secondary - }, - display3: { - fontSize: pxToRem(56), - fontWeight: fontWeightRegular, - fontFamily, - letterSpacing: '-.02em', - lineHeight: `${round(73 / 56)}em`, - marginLeft: '-.04em', - color: palette.text.secondary - }, - display2: { - fontSize: pxToRem(45), - fontWeight: fontWeightRegular, - fontFamily, - lineHeight: `${round(48 / 45)}em`, - marginLeft: '-.04em', - color: palette.text.secondary - }, - display1: { - fontSize: pxToRem(34), - fontWeight: fontWeightRegular, - fontFamily, - lineHeight: `${round(41 / 34)}em`, - marginLeft: '-.04em', - color: palette.text.secondary - }, - headline: { - fontSize: pxToRem(24), - fontWeight: fontWeightRegular, - fontFamily, - lineHeight: `${round(32.5 / 24)}em`, - color: palette.text.primary - }, - title: { - fontSize: pxToRem(21), - fontWeight: fontWeightMedium, - fontFamily, - lineHeight: `${round(24.5 / 21)}em`, - color: palette.text.primary - }, - subheading: { - fontSize: pxToRem(16), - fontWeight: fontWeightRegular, - fontFamily, - lineHeight: `${round(24 / 16)}em`, - color: palette.text.primary - }, - body2: { - fontSize: pxToRem(14), - fontWeight: fontWeightMedium, - fontFamily, - lineHeight: `${round(24 / 14)}em`, - color: palette.text.primary - }, - body1: { - fontSize: pxToRem(14), - fontWeight: fontWeightRegular, - fontFamily, - lineHeight: `${round(20.5 / 14)}em`, - color: palette.text.primary - }, - caption: { - fontSize: pxToRem(12), - fontWeight: fontWeightRegular, - fontFamily, - lineHeight: `${round(16.5 / 12)}em`, - color: palette.text.secondary - }, - button: { - fontSize: pxToRem(fontSize), - textTransform: 'uppercase', - fontWeight: fontWeightMedium, - fontFamily - } - }, other, { - clone: false // No need to clone deep - }); -} - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/getStylesCreator.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_deepmerge__ = __webpack_require__("./node_modules/deepmerge/dist/es.js"); - - - - // < 1kb payload overhead when lodash/merge is > 3kb. - -function getStylesCreator(stylesOrCreator) { - const themingEnabled = typeof stylesOrCreator === 'function'; - - function create(theme, name) { - const styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator; - - if (!theme.overrides || !name || !theme.overrides[name]) { - return styles; - } - - const overrides = theme.overrides[name]; - const stylesWithOverrides = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, styles); - - __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(overrides).forEach(key => { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_2_warning___default()(stylesWithOverrides[key], ['Material-UI: you are trying to override a style that does not exist.', `Fix the \`${key}\` key of \`theme.overrides.${name}\`.`].join('\n')) : void 0; - stylesWithOverrides[key] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_deepmerge__["default"])(stylesWithOverrides[key], overrides[key]); - }); - - return stylesWithOverrides; - } - - return { - create, - options: {}, - themingEnabled - }; -} - -/* harmony default export */ __webpack_exports__["a"] = (getStylesCreator); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/jssPreset.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jss_global__ = __webpack_require__("./node_modules/jss-global/lib/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jss_global___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jss_global__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_jss_nested__ = __webpack_require__("./node_modules/jss-nested/lib/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_jss_nested___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_jss_nested__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_jss_camel_case__ = __webpack_require__("./node_modules/jss-camel-case/lib/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_jss_camel_case___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_jss_camel_case__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_jss_default_unit__ = __webpack_require__("./node_modules/jss-default-unit/lib/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_jss_default_unit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_jss_default_unit__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer__ = __webpack_require__("./node_modules/jss-vendor-prefixer/lib/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_jss_props_sort__ = __webpack_require__("./node_modules/jss-props-sort/lib/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_jss_props_sort___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_jss_props_sort__); - - - - - - - -// Subset of jss-preset-default with only the plugins the Material-UI -// components are using. -function jssPreset() { - return { - plugins: [__WEBPACK_IMPORTED_MODULE_0_jss_global___default()(), __WEBPACK_IMPORTED_MODULE_1_jss_nested___default()(), __WEBPACK_IMPORTED_MODULE_2_jss_camel_case___default()(), __WEBPACK_IMPORTED_MODULE_3_jss_default_unit___default()(), __WEBPACK_IMPORTED_MODULE_4_jss_vendor_prefixer___default()(), __WEBPACK_IMPORTED_MODULE_5_jss_props_sort___default()()] - }; -} - -/* harmony default export */ __webpack_exports__["a"] = (jssPreset); - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/shadows.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -const shadowKeyUmbraOpacity = 0.2; -const shadowKeyPenumbraOpacity = 0.14; -const shadowAmbientShadowOpacity = 0.12; - -function createShadow(...px) { - return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0, 0, 0, ${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0, 0, 0, ${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0, 0, 0, ${shadowAmbientShadowOpacity})`].join(','); -} - -const shadows = ['none', createShadow(0, 1, 3, 0, 0, 1, 1, 0, 0, 2, 1, -1), createShadow(0, 1, 5, 0, 0, 2, 2, 0, 0, 3, 1, -2), createShadow(0, 1, 8, 0, 0, 3, 4, 0, 0, 3, 3, -2), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)]; - -/* harmony default export */ __webpack_exports__["a"] = (shadows); - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/spacing.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony default export */ __webpack_exports__["a"] = ({ - // All components align to an 8dp square baseline grid for mobile, tablet, and desktop. - // https://material.io/guidelines/layout/metrics-keylines.html#metrics-keylines-baseline-grids - unit: 8 -}); - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/themeListener.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__); - - -// Same value used by react-jss -const CHANNEL = '__THEMING__'; -/* unused harmony export CHANNEL */ - - -const themeListener = { - contextTypes: { - [CHANNEL]: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.object - }, - initial: context => { - if (!context[CHANNEL]) { - return null; - } - - return context[CHANNEL].getState(); - }, - subscribe: (context, cb) => { - if (!context[CHANNEL]) { - return null; - } - - return context[CHANNEL].subscribe(cb); - }, - unsubscribe(context, subscriptionId) { - if (context[CHANNEL]) { - context[CHANNEL].unsubscribe(subscriptionId); - } - } -}; - -/* harmony default export */ __webpack_exports__["a"] = (themeListener); - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/transitions.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan__ = __webpack_require__("./node_modules/babel-runtime/core-js/number/is-nan.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_warning__); - - - - -/* eslint-disable no-param-reassign */ - - - -// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves -// to learn the context in which each easing should be used. -const easing = { - // This is the most common easing curve. - easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)', - // Objects enter the screen at full velocity from off-screen and - // slowly decelerate to a resting point. - easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)', - // Objects leave the screen at full velocity. They do not decelerate when off-screen. - easeIn: 'cubic-bezier(0.4, 0, 1, 1)', - // The sharp curve is used by objects that may return to the screen at any time. - sharp: 'cubic-bezier(0.4, 0, 0.6, 1)' -}; -/* unused harmony export easing */ - - -// Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations -// to learn when use what timing -const duration = { - shortest: 150, - shorter: 200, - short: 250, - // most basic recommended timing - standard: 300, - // this is to be used in complex animations - complex: 375, - // recommended when something is entering screen - enteringScreen: 225, - // recommended when something is leaving screen - leavingScreen: 195 -}; -/* unused harmony export duration */ - - -const formatMs = milliseconds => `${Math.round(milliseconds)}ms`; -/* unused harmony export formatMs */ - -const isString = value => typeof value === 'string'; -/* unused harmony export isString */ - -const isNumber = value => !__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_number_is_nan___default()(parseFloat(value)); -/* unused harmony export isNumber */ - - -/** - * @param {string|Array} props - * @param {object} param - * @param {string} param.prop - * @param {number} param.duration - * @param {string} param.easing - * @param {number} param.delay - */ -/* harmony default export */ __webpack_exports__["a"] = ({ - easing, - duration, - create(props = ['all'], options = {}) { - const { - duration: durationOption = duration.standard, - easing: easingOption = easing.easeInOut, - delay = 0 - } = options, - other = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(options, ['duration', 'easing', 'delay']); - - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isString(props) || Array.isArray(props), 'Material-UI: argument "props" must be a string or Array.') : void 0; - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isNumber(durationOption) || isString(durationOption), `Material-UI: argument "duration" must be a number or a string but found ${durationOption}.`) : void 0; - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isString(easingOption), 'Material-UI: argument "easing" must be a string.') : void 0; - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(isNumber(delay) || isString(delay), 'Material-UI: argument "delay" must be a number or a string.') : void 0; - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_3_warning___default()(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(other).length === 0, `Material-UI: unrecognized argument(s) [${__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(other).join(',')}]`) : void 0; - - return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(','); - }, - getAutoHeightDuration(height) { - if (!height) { - return 0; - } - - const constant = height / 36; - - // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10 - return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10); - } -}); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/withStyles.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map__ = __webpack_require__("./node_modules/babel-runtime/core-js/map.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer__ = __webpack_require__("./node_modules/babel-runtime/core-js/number/min-safe-integer.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__("./node_modules/react/react.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__("./node_modules/prop-types/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics__ = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName__ = __webpack_require__("./node_modules/recompose/getDisplayName.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName__ = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes__ = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_jss__ = __webpack_require__("./node_modules/jss/lib/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_jss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_jss__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__ = __webpack_require__("./node_modules/react-jss/lib/ns.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__jssPreset__ = __webpack_require__("./node_modules/material-ui/es/styles/jssPreset.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__createMuiTheme__ = __webpack_require__("./node_modules/material-ui/es/styles/createMuiTheme.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__themeListener__ = __webpack_require__("./node_modules/material-ui/es/styles/themeListener.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__createGenerateClassName__ = __webpack_require__("./node_modules/material-ui/es/styles/createGenerateClassName.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__getStylesCreator__ = __webpack_require__("./node_modules/material-ui/es/styles/getStylesCreator.js"); - - - - - - - - - - - - - - - - - - - - -// New JSS instance. -const jss = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12_jss__["create"])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__jssPreset__["a" /* default */])()); - -// Use a singleton or the provided one by the context. -const generateClassName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__createGenerateClassName__["a" /* default */])(); - -// Global index counter to preserve source order. -// As we create the style sheet during componentWillMount lifecycle, -// children are handled after the parents, so the order of style elements would -// be parent->child. It is a problem though when a parent passes a className -// which needs to override any childs styles. StyleSheet of the child has a higher -// specificity, because of the source order. -// So our solution is to render sheets them in the reverse order child->sheet, so -// that parent has a higher specificity. -let indexCounter = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_core_js_number_min_safe_integer___default.a; - -const sheetsManager = new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map___default.a(); -/* unused harmony export sheetsManager */ - - -// We use the same empty object to ref count the styles that don't need a theme object. -const noopTheme = {}; - -// In order to have self-supporting components, we rely on default theme when not provided. -let defaultTheme; - -function getDefaultTheme() { - if (defaultTheme) { - return defaultTheme; - } - - defaultTheme = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__createMuiTheme__["a" /* default */])(); - return defaultTheme; -} - -// Link a style sheet with a component. -// It does not modify the component passed to it; -// instead, it returns a new component, with a `classes` property. -const withStyles = (stylesOrCreator, options = {}) => Component => { - const { withTheme = false, flip = null, name } = options, - styleSheetOptions = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties___default()(options, ['withTheme', 'flip', 'name']); - const stylesCreator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__getStylesCreator__["a" /* default */])(stylesOrCreator); - const listenToTheme = stylesCreator.themingEnabled || withTheme || typeof name === 'string'; - - indexCounter += 1; - stylesCreator.options.index = indexCounter; - - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_7_warning___default()(indexCounter < 0, ['Material-UI: you might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join(' ')) : void 0; - - class WithStyles extends __WEBPACK_IMPORTED_MODULE_5_react___default.a.Component { - constructor(props, context) { - super(props, context); - - this.state = {}; - this.disableStylesGeneration = false; - this.jss = null; - this.sheetOptions = null; - this.sheetsManager = sheetsManager; - this.stylesCreatorSaved = null; - this.theme = null; - this.unsubscribeId = null; - this.jss = this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["jss"]] || jss; - - const { muiThemeProviderOptions } = this.context; - if (muiThemeProviderOptions) { - if (muiThemeProviderOptions.sheetsManager) { - this.sheetsManager = muiThemeProviderOptions.sheetsManager; - } - - this.disableStylesGeneration = muiThemeProviderOptions.disableStylesGeneration; - } - - // Attach the stylesCreator to the instance of the component as in the context - // of react-hot-loader the hooks can be executed in a different closure context: - // https://github.com/gaearon/react-hot-loader/blob/master/src/patch.dev.js#L107 - this.stylesCreatorSaved = stylesCreator; - this.sheetOptions = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ - generateClassName - }, this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["sheetOptions"]]); - // We use || as the function call is lazy evaluated. - this.theme = listenToTheme ? __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].initial(context) || getDefaultTheme() : noopTheme; - } - - componentWillMount() { - this.attach(this.theme); - } - - componentDidMount() { - if (!listenToTheme) { - return; - } - - this.unsubscribeId = __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].subscribe(this.context, theme => { - const oldTheme = this.theme; - this.theme = theme; - this.attach(this.theme); - - // Rerender the component so the underlying component gets the theme update. - // By theme update we mean receiving and applying the new class names. - this.setState({}, () => { - this.detach(oldTheme); - }); - }); - } - - componentWillReceiveProps() { - // react-hot-loader specific logic - if (this.stylesCreatorSaved === stylesCreator || process.env.NODE_ENV === 'production') { - return; - } - - this.detach(this.theme); - this.stylesCreatorSaved = stylesCreator; - this.attach(this.theme); - } - - componentWillUnmount() { - this.detach(this.theme); - - if (this.unsubscribeId !== null) { - __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].unsubscribe(this.context, this.unsubscribeId); - } - } - - attach(theme) { - if (this.disableStylesGeneration) { - return; - } - - const stylesCreatorSaved = this.stylesCreatorSaved; - let sheetManager = this.sheetsManager.get(stylesCreatorSaved); - - if (!sheetManager) { - sheetManager = new __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_map___default.a(); - this.sheetsManager.set(stylesCreatorSaved, sheetManager); - } - - let sheetManagerTheme = sheetManager.get(theme); - - if (!sheetManagerTheme) { - sheetManagerTheme = { - refs: 0, - sheet: null - }; - sheetManager.set(theme, sheetManagerTheme); - } - - if (sheetManagerTheme.refs === 0) { - const styles = stylesCreatorSaved.create(theme, name); - let meta = name; - - if (process.env.NODE_ENV !== 'production' && !meta) { - meta = __WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default()(Component); - } - - const sheet = this.jss.createStyleSheet(styles, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ - meta, - classNamePrefix: meta, - flip: typeof flip === 'boolean' ? flip : theme.direction === 'rtl', - link: false - }, this.sheetOptions, stylesCreatorSaved.options, { - name - }, styleSheetOptions)); - - sheetManagerTheme.sheet = sheet; - sheet.attach(); - - const sheetsRegistry = this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["sheetsRegistry"]]; - if (sheetsRegistry) { - sheetsRegistry.add(sheet); - } - } - - sheetManagerTheme.refs += 1; - } - - detach(theme) { - if (this.disableStylesGeneration) { - return; - } - - const stylesCreatorSaved = this.stylesCreatorSaved; - const sheetManager = this.sheetsManager.get(stylesCreatorSaved); - const sheetManagerTheme = sheetManager.get(theme); - - sheetManagerTheme.refs -= 1; - - if (sheetManagerTheme.refs === 0) { - sheetManager.delete(theme); - this.jss.removeStyleSheet(sheetManagerTheme.sheet); - const sheetsRegistry = this.context[__WEBPACK_IMPORTED_MODULE_13_react_jss_lib_ns__["sheetsRegistry"]]; - if (sheetsRegistry) { - sheetsRegistry.remove(sheetManagerTheme.sheet); - } - } - } - - render() { - const _props = this.props, - { classes: classesProp, innerRef } = _props, - other = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['classes', 'innerRef']); - - let classes; - let renderedClasses = {}; - - if (!this.disableStylesGeneration) { - const sheetManager = this.sheetsManager.get(this.stylesCreatorSaved); - const sheetsManagerTheme = sheetManager.get(this.theme); - renderedClasses = sheetsManagerTheme.sheet.classes; - } - - if (classesProp) { - classes = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, renderedClasses, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(classesProp).reduce((accumulator, key) => { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_7_warning___default()(renderedClasses[key] || this.disableStylesGeneration, [`Material-UI: the key \`${key}\` ` + `provided to the classes property is not implemented in ${__WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default()(Component)}.`, `You can only override one of the following: ${__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(renderedClasses).join(',')}`].join('\n')) : void 0; - - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_7_warning___default()(!classesProp[key] || typeof classesProp[key] === 'string', [`Material-UI: the key \`${key}\` ` + `provided to the classes property is not valid for ${__WEBPACK_IMPORTED_MODULE_9_recompose_getDisplayName___default()(Component)}.`, `You need to provide a non empty string instead of: ${classesProp[key]}.`].join('\n')) : void 0; - - if (classesProp[key]) { - accumulator[key] = `${renderedClasses[key]} ${classesProp[key]}`; - } - - return accumulator; - }, {})); - } else { - classes = renderedClasses; - } - - const more = {}; - - // Provide the theme to the wrapped component. - // So we don't have to use the `withTheme()` Higher-order Component. - if (withTheme) { - more.theme = this.theme; - } - - return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(Component, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ classes: classes }, more, other, { ref: innerRef })); - } - } - - WithStyles.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, - /** - * Use that property to pass a ref callback to the decorated component. - */ - innerRef: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func - } : {}; - - WithStyles.contextTypes = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ - muiThemeProviderOptions: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object - }, __WEBPACK_IMPORTED_MODULE_11_react_jss_lib_contextTypes___default.a, listenToTheme ? __WEBPACK_IMPORTED_MODULE_16__themeListener__["a" /* default */].contextTypes : {}); - - if (process.env.NODE_ENV !== 'production') { - WithStyles.displayName = __WEBPACK_IMPORTED_MODULE_10_recompose_wrapDisplayName___default()(Component, 'WithStyles'); - } - - __WEBPACK_IMPORTED_MODULE_8_hoist_non_react_statics___default()(WithStyles, Component); - - if (process.env.NODE_ENV !== 'production') { - // Exposed for test purposes. - WithStyles.Naked = Component; - WithStyles.options = options; - } - - return WithStyles; -}; - -/* harmony default export */ __webpack_exports__["a"] = (withStyles); -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/styles/zIndex.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -// We need to centralize the zIndex definitions as they work -// like global values in the browser. -const zIndex = { - mobileStepper: 1000, - appBar: 1100, - drawer: 1200, - modal: 1300, - snackbar: 1400, - tooltip: 1500 -}; - -/* harmony default export */ __webpack_exports__["a"] = (zIndex); - -/***/ }), - -/***/ "./node_modules/material-ui/es/utils/helpers.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = capitalize; -/* unused harmony export contains */ -/* unused harmony export findIndex */ -/* unused harmony export find */ -/* unused harmony export createChainedFunction */ -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_warning__); - -// weak - - - -function capitalize(string) { - if (process.env.NODE_ENV !== 'production' && typeof string !== 'string') { - throw new Error('Material-UI: capitalize(string) expects a string argument.'); - } - - return string.charAt(0).toUpperCase() + string.slice(1); -} - -function contains(obj, pred) { - return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(pred).every(key => { - return obj.hasOwnProperty(key) && obj[key] === pred[key]; - }); -} - -function findIndex(arr, pred) { - const predType = typeof pred; - for (let i = 0; i < arr.length; i += 1) { - if (predType === 'function' && !!pred(arr[i], i, arr) === true) { - return i; - } - if (predType === 'object' && contains(arr[i], pred)) { - return i; - } - if (['string', 'number', 'boolean'].indexOf(predType) !== -1) { - return arr.indexOf(pred); - } - } - return -1; -} - -function find(arr, pred) { - const index = findIndex(arr, pred); - return index > -1 ? arr[index] : undefined; -} - -/** - * Safe chained function - * - * Will only create a new function if needed, - * otherwise will pass back existing functions or null. - * - * @param {function} functions to chain - * @returns {function|null} - */ -function createChainedFunction(...funcs) { - return funcs.filter(func => func != null).reduce((acc, func) => { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_1_warning___default()(typeof func === 'function', 'Material-UI: invalid Argument Type, must only provide functions, undefined, or null.') : void 0; - - return function chainedFunction(...args) { - acc.apply(this, args); - func.apply(this, args); - }; - }, () => {}); -} -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/utils/keyboardFocus.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["a"] = focusKeyPressed; -/* harmony export (immutable) */ __webpack_exports__["b"] = detectKeyboardFocus; -/* harmony export (immutable) */ __webpack_exports__["c"] = listenForFocusKeys; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_keycode__ = __webpack_require__("./node_modules/keycode/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_keycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_keycode__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning__ = __webpack_require__("./node_modules/warning/browser.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains__ = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument__ = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument__); -// weak - - - - - - -const internal = { - focusKeyPressed: false -}; - -function focusKeyPressed(pressed) { - if (typeof pressed !== 'undefined') { - internal.focusKeyPressed = Boolean(pressed); - } - - return internal.focusKeyPressed; -} - -function detectKeyboardFocus(instance, element, callback, attempt = 1) { - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_1_warning___default()(instance.keyboardFocusCheckTime, 'Material-UI: missing instance.keyboardFocusCheckTime') : void 0; - process.env.NODE_ENV !== "production" ? __WEBPACK_IMPORTED_MODULE_1_warning___default()(instance.keyboardFocusMaxCheckTimes, 'Material-UI: missing instance.keyboardFocusMaxCheckTimes') : void 0; - - instance.keyboardFocusTimeout = setTimeout(() => { - const doc = __WEBPACK_IMPORTED_MODULE_3_dom_helpers_ownerDocument___default()(element); - - if (focusKeyPressed() && (doc.activeElement === element || __WEBPACK_IMPORTED_MODULE_2_dom_helpers_query_contains___default()(element, doc.activeElement))) { - callback(); - } else if (attempt < instance.keyboardFocusMaxCheckTimes) { - detectKeyboardFocus(instance, element, callback, attempt + 1); - } - }, instance.keyboardFocusCheckTime); -} - -const FOCUS_KEYS = ['tab', 'enter', 'space', 'esc', 'up', 'down', 'left', 'right']; - -function isFocusKey(event) { - return FOCUS_KEYS.indexOf(__WEBPACK_IMPORTED_MODULE_0_keycode___default()(event)) !== -1; -} - -const handleKeyUpEvent = event => { - if (isFocusKey(event)) { - internal.focusKeyPressed = true; - } -}; - -function listenForFocusKeys(win) { - // The event listener will only be added once per window. - // Duplicate event listeners will be ignored by addEventListener. - // Also, this logic is client side only, we don't need a teardown. - win.addEventListener('keyup', handleKeyUpEvent); -} -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/es/utils/reactHelpers.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* unused harmony export cloneChildrenWithClassName */ -/* harmony export (immutable) */ __webpack_exports__["a"] = isMuiElement; -/* unused harmony export isMuiComponent */ -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__("./node_modules/react/react.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames__ = __webpack_require__("./node_modules/classnames/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_classnames__); - -/* eslint-disable import/prefer-default-export */ - - - - - -function cloneChildrenWithClassName(children, className) { - return __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.map(children, child => { - return __WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child) && __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(child, { - className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()(child.props.className, className) - }); - }); -} - -function isMuiElement(element, muiNames) { - return __WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1; -} - -function isMuiComponent(element, muiNames) { - return muiNames.indexOf(element.muiName) !== -1; -} - -/***/ }), - -/***/ "./node_modules/material-ui/index.es.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AppBar__ = __webpack_require__("./node_modules/material-ui/AppBar/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AppBar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__AppBar__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "AppBar", function() { return __WEBPACK_IMPORTED_MODULE_0__AppBar___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Avatar__ = __webpack_require__("./node_modules/material-ui/Avatar/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Avatar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__Avatar__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Avatar", function() { return __WEBPACK_IMPORTED_MODULE_1__Avatar___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Badge__ = __webpack_require__("./node_modules/material-ui/Badge/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Badge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__Badge__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Badge", function() { return __WEBPACK_IMPORTED_MODULE_2__Badge___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__BottomNavigation__ = __webpack_require__("./node_modules/material-ui/BottomNavigation/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__BottomNavigation___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__BottomNavigation__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BottomNavigation", function() { return __WEBPACK_IMPORTED_MODULE_3__BottomNavigation___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_3__BottomNavigation__, "BottomNavigationAction")) __webpack_require__.d(__webpack_exports__, "BottomNavigationAction", function() { return __WEBPACK_IMPORTED_MODULE_3__BottomNavigation__["BottomNavigationAction"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Button__ = __webpack_require__("./node_modules/material-ui/Button/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Button___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Button__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return __WEBPACK_IMPORTED_MODULE_4__Button___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ButtonBase__ = __webpack_require__("./node_modules/material-ui/ButtonBase/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ButtonBase___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__ButtonBase__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "ButtonBase", function() { return __WEBPACK_IMPORTED_MODULE_5__ButtonBase___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Card__ = __webpack_require__("./node_modules/material-ui/Card/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Card___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__Card__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Card", function() { return __WEBPACK_IMPORTED_MODULE_6__Card___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardActions")) __webpack_require__.d(__webpack_exports__, "CardActions", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardActions"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardContent")) __webpack_require__.d(__webpack_exports__, "CardContent", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardContent"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardHeader")) __webpack_require__.d(__webpack_exports__, "CardHeader", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardHeader"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_6__Card__, "CardMedia")) __webpack_require__.d(__webpack_exports__, "CardMedia", function() { return __WEBPACK_IMPORTED_MODULE_6__Card__["CardMedia"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Checkbox__ = __webpack_require__("./node_modules/material-ui/Checkbox/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Checkbox___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__Checkbox__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return __WEBPACK_IMPORTED_MODULE_7__Checkbox___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Chip__ = __webpack_require__("./node_modules/material-ui/Chip/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Chip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__Chip__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Chip", function() { return __WEBPACK_IMPORTED_MODULE_8__Chip___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener__ = __webpack_require__("./node_modules/material-ui/utils/ClickAwayListener.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "ClickAwayListener", function() { return __WEBPACK_IMPORTED_MODULE_9__utils_ClickAwayListener___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Dialog__ = __webpack_require__("./node_modules/material-ui/Dialog/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Dialog___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__Dialog__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogActions")) __webpack_require__.d(__webpack_exports__, "DialogActions", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogActions"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogContent")) __webpack_require__.d(__webpack_exports__, "DialogContent", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogContent"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogContentText")) __webpack_require__.d(__webpack_exports__, "DialogContentText", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogContentText"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "DialogTitle")) __webpack_require__.d(__webpack_exports__, "DialogTitle", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["DialogTitle"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_10__Dialog__, "withMobileDialog")) __webpack_require__.d(__webpack_exports__, "withMobileDialog", function() { return __WEBPACK_IMPORTED_MODULE_10__Dialog__["withMobileDialog"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Divider__ = __webpack_require__("./node_modules/material-ui/Divider/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Divider___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__Divider__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Divider", function() { return __WEBPACK_IMPORTED_MODULE_11__Divider___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Drawer__ = __webpack_require__("./node_modules/material-ui/Drawer/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Drawer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12__Drawer__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Drawer", function() { return __WEBPACK_IMPORTED_MODULE_12__Drawer___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__ = __webpack_require__("./node_modules/material-ui/ExpansionPanel/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "ExpansionPanel", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__, "ExpansionPanelActions")) __webpack_require__.d(__webpack_exports__, "ExpansionPanelActions", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__["ExpansionPanelActions"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__, "ExpansionPanelDetails")) __webpack_require__.d(__webpack_exports__, "ExpansionPanelDetails", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__["ExpansionPanelDetails"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__, "ExpansionPanelSummary")) __webpack_require__.d(__webpack_exports__, "ExpansionPanelSummary", function() { return __WEBPACK_IMPORTED_MODULE_13__ExpansionPanel__["ExpansionPanelSummary"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Form__ = __webpack_require__("./node_modules/material-ui/Form/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Form___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__Form__); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormControl")) __webpack_require__.d(__webpack_exports__, "FormControl", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormControl"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormGroup")) __webpack_require__.d(__webpack_exports__, "FormGroup", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormGroup"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormLabel")) __webpack_require__.d(__webpack_exports__, "FormLabel", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormLabel"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormHelperText")) __webpack_require__.d(__webpack_exports__, "FormHelperText", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormHelperText"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_14__Form__, "FormControlLabel")) __webpack_require__.d(__webpack_exports__, "FormControlLabel", function() { return __WEBPACK_IMPORTED_MODULE_14__Form__["FormControlLabel"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Hidden__ = __webpack_require__("./node_modules/material-ui/Hidden/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Hidden___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15__Hidden__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Hidden", function() { return __WEBPACK_IMPORTED_MODULE_15__Hidden___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__Icon__ = __webpack_require__("./node_modules/material-ui/Icon/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__Icon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_16__Icon__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Icon", function() { return __WEBPACK_IMPORTED_MODULE_16__Icon___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__IconButton__ = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__IconButton___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_17__IconButton__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "IconButton", function() { return __WEBPACK_IMPORTED_MODULE_17__IconButton___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Input__ = __webpack_require__("./node_modules/material-ui/Input/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Input___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_18__Input__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return __WEBPACK_IMPORTED_MODULE_18__Input___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_18__Input__, "InputLabel")) __webpack_require__.d(__webpack_exports__, "InputLabel", function() { return __WEBPACK_IMPORTED_MODULE_18__Input__["InputLabel"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_18__Input__, "InputAdornment")) __webpack_require__.d(__webpack_exports__, "InputAdornment", function() { return __WEBPACK_IMPORTED_MODULE_18__Input__["InputAdornment"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__Grid__ = __webpack_require__("./node_modules/material-ui/Grid/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__Grid___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_19__Grid__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return __WEBPACK_IMPORTED_MODULE_19__Grid___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__GridList__ = __webpack_require__("./node_modules/material-ui/GridList/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__GridList___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_20__GridList__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "GridList", function() { return __WEBPACK_IMPORTED_MODULE_20__GridList___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_20__GridList__, "GridListTile")) __webpack_require__.d(__webpack_exports__, "GridListTile", function() { return __WEBPACK_IMPORTED_MODULE_20__GridList__["GridListTile"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_20__GridList__, "GridListTileBar")) __webpack_require__.d(__webpack_exports__, "GridListTileBar", function() { return __WEBPACK_IMPORTED_MODULE_20__GridList__["GridListTileBar"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__List__ = __webpack_require__("./node_modules/material-ui/List/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__List___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_21__List__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "List", function() { return __WEBPACK_IMPORTED_MODULE_21__List___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItem")) __webpack_require__.d(__webpack_exports__, "ListItem", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItem"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemAvatar")) __webpack_require__.d(__webpack_exports__, "ListItemAvatar", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemAvatar"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemIcon")) __webpack_require__.d(__webpack_exports__, "ListItemIcon", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemIcon"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemSecondaryAction")) __webpack_require__.d(__webpack_exports__, "ListItemSecondaryAction", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemSecondaryAction"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListItemText")) __webpack_require__.d(__webpack_exports__, "ListItemText", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListItemText"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_21__List__, "ListSubheader")) __webpack_require__.d(__webpack_exports__, "ListSubheader", function() { return __WEBPACK_IMPORTED_MODULE_21__List__["ListSubheader"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__Menu__ = __webpack_require__("./node_modules/material-ui/Menu/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__Menu___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_22__Menu__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Menu", function() { return __WEBPACK_IMPORTED_MODULE_22__Menu___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_22__Menu__, "MenuItem")) __webpack_require__.d(__webpack_exports__, "MenuItem", function() { return __WEBPACK_IMPORTED_MODULE_22__Menu__["MenuItem"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_22__Menu__, "MenuList")) __webpack_require__.d(__webpack_exports__, "MenuList", function() { return __WEBPACK_IMPORTED_MODULE_22__Menu__["MenuList"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__MobileStepper__ = __webpack_require__("./node_modules/material-ui/MobileStepper/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__MobileStepper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_23__MobileStepper__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "MobileStepper", function() { return __WEBPACK_IMPORTED_MODULE_23__MobileStepper___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__Modal__ = __webpack_require__("./node_modules/material-ui/Modal/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__Modal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_24__Modal__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return __WEBPACK_IMPORTED_MODULE_24__Modal___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_24__Modal__, "Backdrop")) __webpack_require__.d(__webpack_exports__, "Backdrop", function() { return __WEBPACK_IMPORTED_MODULE_24__Modal__["Backdrop"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_24__Modal__, "ModalManager")) __webpack_require__.d(__webpack_exports__, "ModalManager", function() { return __WEBPACK_IMPORTED_MODULE_24__Modal__["ModalManager"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__Paper__ = __webpack_require__("./node_modules/material-ui/Paper/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__Paper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_25__Paper__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Paper", function() { return __WEBPACK_IMPORTED_MODULE_25__Paper___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__Popover__ = __webpack_require__("./node_modules/material-ui/Popover/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__Popover___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_26__Popover__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return __WEBPACK_IMPORTED_MODULE_26__Popover___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__Portal__ = __webpack_require__("./node_modules/material-ui/Portal/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__Portal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_27__Portal__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Portal", function() { return __WEBPACK_IMPORTED_MODULE_27__Portal___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__Progress__ = __webpack_require__("./node_modules/material-ui/Progress/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__Progress___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_28__Progress__); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_28__Progress__, "CircularProgress")) __webpack_require__.d(__webpack_exports__, "CircularProgress", function() { return __WEBPACK_IMPORTED_MODULE_28__Progress__["CircularProgress"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_28__Progress__, "LinearProgress")) __webpack_require__.d(__webpack_exports__, "LinearProgress", function() { return __WEBPACK_IMPORTED_MODULE_28__Progress__["LinearProgress"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__Radio__ = __webpack_require__("./node_modules/material-ui/Radio/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__Radio___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_29__Radio__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Radio", function() { return __WEBPACK_IMPORTED_MODULE_29__Radio___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_29__Radio__, "RadioGroup")) __webpack_require__.d(__webpack_exports__, "RadioGroup", function() { return __WEBPACK_IMPORTED_MODULE_29__Radio__["RadioGroup"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__Reboot__ = __webpack_require__("./node_modules/material-ui/Reboot/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__Reboot___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_30__Reboot__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Reboot", function() { return __WEBPACK_IMPORTED_MODULE_30__Reboot___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__Select__ = __webpack_require__("./node_modules/material-ui/Select/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__Select___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_31__Select__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Select", function() { return __WEBPACK_IMPORTED_MODULE_31__Select___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__Snackbar__ = __webpack_require__("./node_modules/material-ui/Snackbar/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__Snackbar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_32__Snackbar__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Snackbar", function() { return __WEBPACK_IMPORTED_MODULE_32__Snackbar___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_32__Snackbar__, "SnackbarContent")) __webpack_require__.d(__webpack_exports__, "SnackbarContent", function() { return __WEBPACK_IMPORTED_MODULE_32__Snackbar__["SnackbarContent"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__Stepper__ = __webpack_require__("./node_modules/material-ui/Stepper/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__Stepper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_33__Stepper__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Stepper", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "Step")) __webpack_require__.d(__webpack_exports__, "Step", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["Step"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepButton")) __webpack_require__.d(__webpack_exports__, "StepButton", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepButton"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepIcon")) __webpack_require__.d(__webpack_exports__, "StepIcon", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepIcon"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepContent")) __webpack_require__.d(__webpack_exports__, "StepContent", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepContent"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_33__Stepper__, "StepLabel")) __webpack_require__.d(__webpack_exports__, "StepLabel", function() { return __WEBPACK_IMPORTED_MODULE_33__Stepper__["StepLabel"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__styles__ = __webpack_require__("./node_modules/material-ui/styles/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__styles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_34__styles__); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "MuiThemeProvider")) __webpack_require__.d(__webpack_exports__, "MuiThemeProvider", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["MuiThemeProvider"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "withStyles")) __webpack_require__.d(__webpack_exports__, "withStyles", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["withStyles"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "withTheme")) __webpack_require__.d(__webpack_exports__, "withTheme", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["withTheme"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "createMuiTheme")) __webpack_require__.d(__webpack_exports__, "createMuiTheme", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["createMuiTheme"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_34__styles__, "jssPreset")) __webpack_require__.d(__webpack_exports__, "jssPreset", function() { return __WEBPACK_IMPORTED_MODULE_34__styles__["jssPreset"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__colors__ = __webpack_require__("./node_modules/material-ui/colors/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__colors___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_35__colors__); -/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "colors", function() { return __WEBPACK_IMPORTED_MODULE_35__colors__; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__SvgIcon__ = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__SvgIcon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_36__SvgIcon__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "SvgIcon", function() { return __WEBPACK_IMPORTED_MODULE_36__SvgIcon___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__Switch__ = __webpack_require__("./node_modules/material-ui/Switch/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__Switch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_37__Switch__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return __WEBPACK_IMPORTED_MODULE_37__Switch___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__Table__ = __webpack_require__("./node_modules/material-ui/Table/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__Table___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_38__Table__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Table", function() { return __WEBPACK_IMPORTED_MODULE_38__Table___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableBody")) __webpack_require__.d(__webpack_exports__, "TableBody", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableBody"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableCell")) __webpack_require__.d(__webpack_exports__, "TableCell", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableCell"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableFooter")) __webpack_require__.d(__webpack_exports__, "TableFooter", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableFooter"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableHead")) __webpack_require__.d(__webpack_exports__, "TableHead", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableHead"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TablePagination")) __webpack_require__.d(__webpack_exports__, "TablePagination", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TablePagination"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableRow")) __webpack_require__.d(__webpack_exports__, "TableRow", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableRow"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_38__Table__, "TableSortLabel")) __webpack_require__.d(__webpack_exports__, "TableSortLabel", function() { return __WEBPACK_IMPORTED_MODULE_38__Table__["TableSortLabel"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__Tabs__ = __webpack_require__("./node_modules/material-ui/Tabs/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__Tabs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_39__Tabs__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Tabs", function() { return __WEBPACK_IMPORTED_MODULE_39__Tabs___default.a; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_39__Tabs__, "Tab")) __webpack_require__.d(__webpack_exports__, "Tab", function() { return __WEBPACK_IMPORTED_MODULE_39__Tabs__["Tab"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__Typography__ = __webpack_require__("./node_modules/material-ui/Typography/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__Typography___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_40__Typography__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Typography", function() { return __WEBPACK_IMPORTED_MODULE_40__Typography___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__TextField__ = __webpack_require__("./node_modules/material-ui/TextField/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__TextField___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_41__TextField__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "TextField", function() { return __WEBPACK_IMPORTED_MODULE_41__TextField___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__Toolbar__ = __webpack_require__("./node_modules/material-ui/Toolbar/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__Toolbar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_42__Toolbar__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Toolbar", function() { return __WEBPACK_IMPORTED_MODULE_42__Toolbar___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__Tooltip__ = __webpack_require__("./node_modules/material-ui/Tooltip/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__Tooltip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_43__Tooltip__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return __WEBPACK_IMPORTED_MODULE_43__Tooltip___default.a; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__transitions__ = __webpack_require__("./node_modules/material-ui/transitions/index.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__transitions___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_44__transitions__); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Slide")) __webpack_require__.d(__webpack_exports__, "Slide", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Slide"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Grow")) __webpack_require__.d(__webpack_exports__, "Grow", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Grow"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Fade")) __webpack_require__.d(__webpack_exports__, "Fade", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Fade"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Collapse")) __webpack_require__.d(__webpack_exports__, "Collapse", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Collapse"]; }); -/* harmony reexport (binding) */ if(__webpack_require__.o(__WEBPACK_IMPORTED_MODULE_44__transitions__, "Zoom")) __webpack_require__.d(__webpack_exports__, "Zoom", function() { return __WEBPACK_IMPORTED_MODULE_44__transitions__["Zoom"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__utils_withWidth__ = __webpack_require__("./node_modules/material-ui/utils/withWidth.js"); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__utils_withWidth___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_45__utils_withWidth__); -/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "withWidth", function() { return __WEBPACK_IMPORTED_MODULE_45__utils_withWidth___default.a; }); -/** @license Material-UI v1.0.0-beta.34 - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// eslint-disable-next-line import/first - - - - - - - - - - - - - - - - - -/***/ }), - -/***/ "./node_modules/material-ui/internal/RefHolder.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - * - * Internal helper component to allow attaching a ref to a - * child element that may not accept refs (functional component). - */ -var RefHolder = function (_React$Component) { - (0, _inherits3.default)(RefHolder, _React$Component); - - function RefHolder() { - (0, _classCallCheck3.default)(this, RefHolder); - return (0, _possibleConstructorReturn3.default)(this, (RefHolder.__proto__ || (0, _getPrototypeOf2.default)(RefHolder)).apply(this, arguments)); - } - - (0, _createClass3.default)(RefHolder, [{ - key: 'render', - value: function render() { - return this.props.children; - } - }]); - return RefHolder; -}(_react2.default.Component); - -RefHolder.propTypes = process.env.NODE_ENV !== "production" ? { - children: _propTypes2.default.node -} : {}; - -exports.default = RefHolder; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/internal/SwitchBase.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _CheckBoxOutlineBlank = __webpack_require__("./node_modules/material-ui/internal/svg-icons/CheckBoxOutlineBlank.js"); - -var _CheckBoxOutlineBlank2 = _interopRequireDefault(_CheckBoxOutlineBlank); - -var _CheckBox = __webpack_require__("./node_modules/material-ui/internal/svg-icons/CheckBox.js"); - -var _CheckBox2 = _interopRequireDefault(_CheckBox); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _IconButton = __webpack_require__("./node_modules/material-ui/IconButton/index.js"); - -var _IconButton2 = _interopRequireDefault(_IconButton); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = { - root: { - display: 'inline-flex', - alignItems: 'center', - transition: 'none' - }, - input: { - cursor: 'inherit', - position: 'absolute', - opacity: 0, - width: '100%', - height: '100%', - top: 0, - left: 0, - margin: 0, - padding: 0 - }, - default: {}, - checked: {}, - disabled: {} -}; - -/** - * @ignore - internal component. - */ - -var SwitchBase = function (_React$Component) { - (0, _inherits3.default)(SwitchBase, _React$Component); - - function SwitchBase() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, SwitchBase); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = SwitchBase.__proto__ || (0, _getPrototypeOf2.default)(SwitchBase)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this.input = null, _this.isControlled = null, _this.handleInputChange = function (event) { - var checked = event.target.checked; - - if (!_this.isControlled) { - _this.setState({ checked: checked }); - } - - if (_this.props.onChange) { - _this.props.onChange(event, checked); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(SwitchBase, [{ - key: 'componentWillMount', - value: function componentWillMount() { - var props = this.props; - - - this.isControlled = props.checked != null; - - if (!this.isControlled) { - // not controlled, use internal state - this.setState({ - checked: props.defaultChecked !== undefined ? props.defaultChecked : false - }); - } - } - }, { - key: 'render', - value: function render() { - var _classNames; - - var _props = this.props, - checkedProp = _props.checked, - checkedIcon = _props.checkedIcon, - classes = _props.classes, - classNameProp = _props.className, - disabledProp = _props.disabled, - iconProp = _props.icon, - id = _props.id, - inputProps = _props.inputProps, - inputRef = _props.inputRef, - name = _props.name, - onChange = _props.onChange, - tabIndex = _props.tabIndex, - type = _props.type, - value = _props.value, - other = (0, _objectWithoutProperties3.default)(_props, ['checked', 'checkedIcon', 'classes', 'className', 'disabled', 'icon', 'id', 'inputProps', 'inputRef', 'name', 'onChange', 'tabIndex', 'type', 'value']); - var muiFormControl = this.context.muiFormControl; - - var disabled = disabledProp; - - if (muiFormControl) { - if (typeof disabled === 'undefined') { - disabled = muiFormControl.disabled; - } - } - - var checked = this.isControlled ? checkedProp : this.state.checked; - var className = (0, _classnames2.default)(classes.root, classes.default, classNameProp, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.checked, checked), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), _classNames)); - - var icon = checked ? checkedIcon : iconProp; - - var hasLabelFor = type === 'checkbox' || type === 'radio'; - - return _react2.default.createElement( - _IconButton2.default, - (0, _extends3.default)({ - component: 'span', - className: className, - disabled: disabled, - tabIndex: null, - role: undefined - }, other), - icon, - _react2.default.createElement('input', (0, _extends3.default)({ - id: hasLabelFor && id, - type: type, - name: name, - checked: checkedProp, - onChange: this.handleInputChange, - className: classes.input, - disabled: disabled, - tabIndex: tabIndex, - value: value, - ref: inputRef - }, inputProps)) - ); - } - }]); - return SwitchBase; -}(_react2.default.Component); - -// NB: If changed, please update Checkbox, Switch and Radio -// so that the API documentation is updated. - - -SwitchBase.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * If `true`, the component is checked. - */ - checked: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), - /** - * The icon to display when the component is checked. - */ - checkedIcon: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * @ignore - */ - defaultChecked: _propTypes2.default.bool, - /** - * If `true`, the switch will be disabled. - */ - disabled: _propTypes2.default.bool, - /** - * If `true`, the ripple effect will be disabled. - */ - disableRipple: _propTypes2.default.bool, - /** - * The icon to display when the component is unchecked. - */ - icon: _propTypes2.default.node, - /** - * The id of the `input` element. - */ - id: _propTypes2.default.string, - /** - * If `true`, the component appears indeterminate. - */ - indeterminate: _propTypes2.default.bool, - /** - * The icon to display when the component is indeterminate. - */ - indeterminateIcon: _propTypes2.default.node, - /** - * Properties applied to the `input` element. - */ - inputProps: _propTypes2.default.object, - /** - * Use that property to pass a ref callback to the native input component. - */ - inputRef: _propTypes2.default.func, - /* - * @ignore - */ - name: _propTypes2.default.string, - /** - * Callback fired when the state is changed. - * - * @param {object} event The event source of the callback - * @param {boolean} checked The `checked` value of the switch - */ - onChange: _propTypes2.default.func, - /** - * @ignore - */ - tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]), - /** - * The input component property `type`. - */ - type: _propTypes2.default.string, - /** - * The value of the component. - */ - value: _propTypes2.default.string -} : {}; - -SwitchBase.defaultProps = { - checkedIcon: _react2.default.createElement(_CheckBox2.default, null), - disableRipple: false, - icon: _react2.default.createElement(_CheckBoxOutlineBlank2.default, null), - type: 'checkbox' -}; - -SwitchBase.contextTypes = { - muiFormControl: _propTypes2.default.object -}; - -exports.default = (0, _withStyles2.default)(styles, { name: 'MuiSwitchBase' })(SwitchBase); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/ArrowDownward.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z' }); - -var ArrowDownward = function ArrowDownward(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; - -ArrowDownward = (0, _pure2.default)(ArrowDownward); -ArrowDownward.muiName = 'SvgIcon'; - -exports.default = ArrowDownward; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/ArrowDropDown.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M7 10l5 5 5-5z' }); - -var ArrowDropDown = function ArrowDropDown(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; - -ArrowDropDown = (0, _pure2.default)(ArrowDropDown); -ArrowDropDown.muiName = 'SvgIcon'; - -exports.default = ArrowDropDown; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/Cancel.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z' }); - -var Cancel = function Cancel(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -Cancel = (0, _pure2.default)(Cancel); -Cancel.muiName = 'SvgIcon'; - -exports.default = Cancel; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/CheckBox.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z' }); - -var CheckBox = function CheckBox(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -CheckBox = (0, _pure2.default)(CheckBox); -CheckBox.muiName = 'SvgIcon'; - -exports.default = CheckBox; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/CheckBoxOutlineBlank.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z' }); - -var CheckBoxOutlineBlank = function CheckBoxOutlineBlank(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -CheckBoxOutlineBlank = (0, _pure2.default)(CheckBoxOutlineBlank); -CheckBoxOutlineBlank.muiName = 'SvgIcon'; - -exports.default = CheckBoxOutlineBlank; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/CheckCircle.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z' }); - -var CheckCircle = function CheckCircle(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -CheckCircle = (0, _pure2.default)(CheckCircle); -CheckCircle.muiName = 'SvgIcon'; - -exports.default = CheckCircle; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/IndeterminateCheckBox.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z' }); - -var IndeterminateCheckBox = function IndeterminateCheckBox(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -IndeterminateCheckBox = (0, _pure2.default)(IndeterminateCheckBox); -IndeterminateCheckBox.muiName = 'SvgIcon'; - -exports.default = IndeterminateCheckBox; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/KeyboardArrowLeft.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z' }); - -var KeyboardArrowLeft = function KeyboardArrowLeft(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -KeyboardArrowLeft = (0, _pure2.default)(KeyboardArrowLeft); -KeyboardArrowLeft.muiName = 'SvgIcon'; - -exports.default = KeyboardArrowLeft; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/KeyboardArrowRight.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z' }); - -var KeyboardArrowRight = function KeyboardArrowRight(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -KeyboardArrowRight = (0, _pure2.default)(KeyboardArrowRight); -KeyboardArrowRight.muiName = 'SvgIcon'; - -exports.default = KeyboardArrowRight; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/RadioButtonChecked.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z' }); - -var RadioButtonChecked = function RadioButtonChecked(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -RadioButtonChecked = (0, _pure2.default)(RadioButtonChecked); -RadioButtonChecked.muiName = 'SvgIcon'; - -exports.default = RadioButtonChecked; - -/***/ }), - -/***/ "./node_modules/material-ui/internal/svg-icons/RadioButtonUnchecked.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _pure = __webpack_require__("./node_modules/recompose/pure.js"); - -var _pure2 = _interopRequireDefault(_pure); - -var _SvgIcon = __webpack_require__("./node_modules/material-ui/SvgIcon/index.js"); - -var _SvgIcon2 = _interopRequireDefault(_SvgIcon); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * @ignore - internal component. - */ -var _ref = _react2.default.createElement('path', { d: 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z' }); - -var RadioButtonUnchecked = function RadioButtonUnchecked(props) { - return _react2.default.createElement( - _SvgIcon2.default, - props, - _ref - ); -}; -RadioButtonUnchecked = (0, _pure2.default)(RadioButtonUnchecked); -RadioButtonUnchecked.muiName = 'SvgIcon'; - -exports.default = RadioButtonUnchecked; - -/***/ }), - -/***/ "./node_modules/material-ui/styles/MuiThemeProvider.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _brcast = __webpack_require__("./node_modules/brcast/dist/brcast.es.js"); - -var _brcast2 = _interopRequireDefault(_brcast); - -var _themeListener = __webpack_require__("./node_modules/material-ui/styles/themeListener.js"); - -var _themeListener2 = _interopRequireDefault(_themeListener); - -var _exactProp = __webpack_require__("./node_modules/material-ui/utils/exactProp.js"); - -var _exactProp2 = _interopRequireDefault(_exactProp); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * This component takes a `theme` property. - * It makes the `theme` available down the React tree thanks to React context. - * This component should preferably be used at **the root of your component tree**. - */ -var MuiThemeProvider = function (_React$Component) { - (0, _inherits3.default)(MuiThemeProvider, _React$Component); - - function MuiThemeProvider(props, context) { - (0, _classCallCheck3.default)(this, MuiThemeProvider); - - // Get the outer theme from the context, can be null - var _this = (0, _possibleConstructorReturn3.default)(this, (MuiThemeProvider.__proto__ || (0, _getPrototypeOf2.default)(MuiThemeProvider)).call(this, props, context)); - - _this.broadcast = (0, _brcast2.default)(); - _this.unsubscribeId = null; - _this.outerTheme = null; - _this.outerTheme = _themeListener2.default.initial(context); - // Propagate the theme so it can be accessed by the children - _this.broadcast.setState(_this.mergeOuterLocalTheme(_this.props.theme)); - return _this; - } - - (0, _createClass3.default)(MuiThemeProvider, [{ - key: 'getChildContext', - value: function getChildContext() { - var _ref; - - var _props = this.props, - sheetsManager = _props.sheetsManager, - disableStylesGeneration = _props.disableStylesGeneration; - - var muiThemeProviderOptions = this.context.muiThemeProviderOptions || {}; - - if (sheetsManager !== undefined) { - muiThemeProviderOptions.sheetsManager = sheetsManager; - } - - if (disableStylesGeneration !== undefined) { - muiThemeProviderOptions.disableStylesGeneration = disableStylesGeneration; - } - - return _ref = {}, (0, _defineProperty3.default)(_ref, _themeListener.CHANNEL, this.broadcast), (0, _defineProperty3.default)(_ref, 'muiThemeProviderOptions', muiThemeProviderOptions), _ref; - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - var _this2 = this; - - // Subscribe on the outer theme, if present - this.unsubscribeId = _themeListener2.default.subscribe(this.context, function (outerTheme) { - _this2.outerTheme = outerTheme; - // Forward the parent theme update to the children - _this2.broadcast.setState(_this2.mergeOuterLocalTheme(_this2.props.theme)); - }); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - // Propagate a local theme update - if (this.props.theme !== nextProps.theme) { - this.broadcast.setState(this.mergeOuterLocalTheme(nextProps.theme)); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - if (this.unsubscribeId !== null) { - _themeListener2.default.unsubscribe(this.context, this.unsubscribeId); - } - } - // We are not using the React state in order to avoid unnecessary rerender. - - }, { - key: 'mergeOuterLocalTheme', - - - // Simple merge between the outer theme and the local theme - value: function mergeOuterLocalTheme(localTheme) { - // To support composition of theme. - if (typeof localTheme === 'function') { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(this.outerTheme, ['Material-UI: you are providing a theme function property ' + 'to the MuiThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\n')) : void 0; - return localTheme(this.outerTheme); - } - - if (!this.outerTheme) { - return localTheme; - } - - return (0, _extends3.default)({}, this.outerTheme, localTheme); - } - }, { - key: 'render', - value: function render() { - return this.props.children; - } - }]); - return MuiThemeProvider; -}(_react2.default.Component); - -MuiThemeProvider.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * You can only provide a single element with react@15, a node with react@16. - */ - children: _propTypes2.default.node.isRequired, - /** - * You can disable the generation of the styles with this option. - * It can be useful when traversing the React tree outside of the HTML - * rendering step on the server. - * Let's say you are using react-apollo to extract all - * the queries made by the interface server side. - * You can significantly speed up the traversal with this property. - */ - disableStylesGeneration: _propTypes2.default.bool, - /** - * The sheetsManager is used to deduplicate style sheet injection in the page. - * It's deduplicating using the (theme, styles) couple. - * On the server, you should provide a new instance for each request. - */ - sheetsManager: _propTypes2.default.object, - /** - * A theme object. - */ - theme: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]).isRequired -} : {}; - -MuiThemeProvider.propTypes = process.env.NODE_ENV !== "production" ? (0, _exactProp2.default)(MuiThemeProvider.propTypes, 'MuiThemeProvider') : {}; - -MuiThemeProvider.childContextTypes = (0, _extends3.default)({}, _themeListener2.default.contextTypes, { - muiThemeProviderOptions: _propTypes2.default.object -}); - -MuiThemeProvider.contextTypes = (0, _extends3.default)({}, _themeListener2.default.contextTypes, { - muiThemeProviderOptions: _propTypes2.default.object -}); - -exports.default = MuiThemeProvider; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/colorManipulator.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.convertHexToRGB = convertHexToRGB; -exports.decomposeColor = decomposeColor; -exports.recomposeColor = recomposeColor; -exports.getContrastRatio = getContrastRatio; -exports.getLuminance = getLuminance; -exports.emphasize = emphasize; -exports.fade = fade; -exports.darken = darken; -exports.lighten = lighten; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Returns a number whose value is limited to the given range. - * - * @param {number} value The value to be clamped - * @param {number} min The lower boundary of the output range - * @param {number} max The upper boundary of the output range - * @returns {number} A number in the range [min, max] - */ -function clamp(value) { - var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(value >= min && value <= max, 'Material-UI: the value provided ' + value + ' is out of range [' + min + ', ' + max + '].') : void 0; - - if (value < min) { - return min; - } - if (value > max) { - return max; - } - return value; -} - -/** - * Converts a color from CSS hex format to CSS rgb format. - * - * @param {string} color - Hex color, i.e. #nnn or #nnnnnn - * @returns {string} A CSS rgb color string - */ -// weak -/* eslint-disable no-use-before-define */ - -function convertHexToRGB(color) { - color = color.substr(1); - - var re = new RegExp('.{1,' + color.length / 3 + '}', 'g'); - var colors = color.match(re); - - if (colors && colors[0].length === 1) { - colors = colors.map(function (n) { - return n + n; - }); - } - - return colors ? 'rgb(' + colors.map(function (n) { - return parseInt(n, 16); - }).join(', ') + ')' : ''; -} - -/** - * Returns an object with the type and values of a color. - * - * Note: Does not support rgb % values. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @returns {object} - A MUI color object: {type: string, values: number[]} - */ -function decomposeColor(color) { - if (color.charAt(0) === '#') { - return decomposeColor(convertHexToRGB(color)); - } - - var marker = color.indexOf('('); - var type = color.substring(0, marker); - var values = color.substring(marker + 1, color.length - 1).split(','); - values = values.map(function (value) { - return parseFloat(value); - }); - - return { type: type, values: values }; -} - -/** - * Converts a color object with type and values to a string. - * - * @param {object} color - Decomposed color - * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla' - * @param {array} color.values - [n,n,n] or [n,n,n,n] - * @returns {string} A CSS color string - */ -function recomposeColor(color) { - var type = color.type; - var values = color.values; - - - if (type.indexOf('rgb') > -1) { - // Only convert the first 3 values to int (i.e. not alpha) - values = values.map(function (n, i) { - return i < 3 ? parseInt(n, 10) : n; - }); - } - - if (type.indexOf('hsl') > -1) { - values[1] = values[1] + '%'; - values[2] = values[2] + '%'; - } - - return color.type + '(' + values.join(', ') + ')'; -} - -/** - * Calculates the contrast ratio between two colors. - * - * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests - * - * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @returns {number} A contrast ratio value in the range 0 - 21. - */ -function getContrastRatio(foreground, background) { - var lumA = getLuminance(foreground); - var lumB = getLuminance(background); - return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05); -} - -/** - * The relative brightness of any point in a color space, - * normalized to 0 for darkest black and 1 for lightest white. - * - * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @returns {number} The relative brightness of the color in the range 0 - 1 - */ -function getLuminance(color) { - var decomposedColor = decomposeColor(color); - - if (decomposedColor.type.indexOf('rgb') > -1) { - var rgb = decomposedColor.values.map(function (val) { - val /= 255; // normalized - return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4); - }); - // Truncate at 3 digits - return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3)); - } else if (decomposedColor.type.indexOf('hsl') > -1) { - return decomposedColor.values[2] / 100; - } - - throw new Error('Material-UI: unsupported `' + color + '` color.'); -} - -/** - * Darken or lighten a colour, depending on its luminance. - * Light colors are darkened, dark colors are lightened. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} coefficient=0.15 - multiplier in the range 0 - 1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function emphasize(color) { - var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15; - - return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient); -} - -/** - * Set the absolute transparency of a color. - * Any existing alpha values are overwritten. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} value - value to set the alpha channel to in the range 0 -1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function fade(color, value) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(color, 'Material-UI: missing color argument in fade(' + color + ', ' + value + ').') : void 0; - - if (!color) return color; - - color = decomposeColor(color); - value = clamp(value); - - if (color.type === 'rgb' || color.type === 'hsl') { - color.type += 'a'; - } - color.values[3] = value; - - return recomposeColor(color); -} - -/** - * Darkens a color. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} coefficient - multiplier in the range 0 - 1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function darken(color, coefficient) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(color, 'Material-UI: missing color argument in darken(' + color + ', ' + coefficient + ').') : void 0; - - if (!color) return color; - - color = decomposeColor(color); - coefficient = clamp(coefficient); - - if (color.type.indexOf('hsl') > -1) { - color.values[2] *= 1 - coefficient; - } else if (color.type.indexOf('rgb') > -1) { - for (var i = 0; i < 3; i += 1) { - color.values[i] *= 1 - coefficient; - } - } - return recomposeColor(color); -} - -/** - * Lightens a color. - * - * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() - * @param {number} coefficient - multiplier in the range 0 - 1 - * @returns {string} A CSS color string. Hex input values are returned as rgb - */ -function lighten(color, coefficient) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(color, 'Material-UI: missing color argument in lighten(' + color + ', ' + coefficient + ').') : void 0; - - if (!color) return color; - - color = decomposeColor(color); - coefficient = clamp(coefficient); - - if (color.type.indexOf('hsl') > -1) { - color.values[2] += (100 - color.values[2]) * coefficient; - } else if (color.type.indexOf('rgb') > -1) { - for (var i = 0; i < 3; i += 1) { - color.values[i] += (255 - color.values[i]) * coefficient; - } - } - - return recomposeColor(color); -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/createBreakpoints.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.keys = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -exports.default = createBreakpoints; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Sorted ASC by size. That's important. -// It can't be configured as it's used statically for propTypes. -var keys = exports.keys = ['xs', 'sm', 'md', 'lg', 'xl']; - -// Keep in mind that @media is inclusive by the CSS specification. -function createBreakpoints(breakpoints) { - var _breakpoints$values = breakpoints.values, - values = _breakpoints$values === undefined ? { - xs: 0, - sm: 600, - md: 960, - lg: 1280, - xl: 1920 - } : _breakpoints$values, - _breakpoints$unit = breakpoints.unit, - unit = _breakpoints$unit === undefined ? 'px' : _breakpoints$unit, - _breakpoints$step = breakpoints.step, - step = _breakpoints$step === undefined ? 5 : _breakpoints$step, - other = (0, _objectWithoutProperties3.default)(breakpoints, ['values', 'unit', 'step']); - - - function up(key) { - var value = typeof values[key] === 'number' ? values[key] : key; - return '@media (min-width:' + value + unit + ')'; - } - - function down(key) { - var endIndex = keys.indexOf(key) + 1; - var upperbound = values[keys[endIndex]]; - - if (endIndex === keys.length) { - // xl down applies to all sizes - return up('xs'); - } - - var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key; - return '@media (max-width:' + (value - step / 100) + unit + ')'; - } - - function between(start, end) { - var endIndex = keys.indexOf(end) + 1; - - if (endIndex === keys.length) { - return up(start); - } - - return '@media (min-width:' + values[start] + unit + ') and ' + ('(max-width:' + (values[keys[endIndex]] - step / 100) + unit + ')'); - } - - function only(key) { - return between(key, key); - } - - function width(key) { - return values[key]; - } - - return (0, _extends3.default)({ - keys: keys, - values: values, - up: up, - down: down, - between: between, - only: only, - width: width - }, other); -} - -/***/ }), - -/***/ "./node_modules/material-ui/styles/createGenerateClassName.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = createGenerateClassName; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var generatorCounter = 0; - -// Returns a function which generates unique class names based on counters. -// When new generator function is created, rule counter is reset. -// We need to reset the rule counter for SSR for each request. -// -// It's inspired by -// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js -function createGenerateClassName() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _options$dangerouslyU = options.dangerouslyUseGlobalCSS, - dangerouslyUseGlobalCSS = _options$dangerouslyU === undefined ? false : _options$dangerouslyU, - _options$productionPr = options.productionPrefix, - productionPrefix = _options$productionPr === undefined ? 'jss' : _options$productionPr; - - var escapeRegex = /([[\].#*$><+~=|^:(),"'`\s])/g; - var ruleCounter = 0; - - // - HMR can lead to many class name generators being instantiated, - // so the warning is only triggered in production. - // - We expect a class name generator to be instantiated per new request on the server, - // so the warning is only triggered client side. - // - You can get away with having multiple class name generators - // by modifying the `productionPrefix`. - if (process.env.NODE_ENV === 'production' && typeof window !== 'undefined' && productionPrefix === 'jss') { - generatorCounter += 1; - - if (generatorCounter > 2) { - // eslint-disable-next-line no-console - console.error(['Material-UI: we have detected more than needed creation of the class name generator.', 'You should only use one class name generator on the client side.', 'If you do otherwise, you take the risk to have conflicting class names in production.'].join('\n')); - } - } - - return function (rule, styleSheet) { - ruleCounter += 1; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(ruleCounter < 1e10, ['Material-UI: you might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join('')) : void 0; - - // Code branch the whole block at the expense of more code. - if (dangerouslyUseGlobalCSS) { - if (styleSheet && styleSheet.options.classNamePrefix) { - var prefix = styleSheet.options.classNamePrefix; - // Sanitize the string as will be used to prefix the generated class name. - prefix = prefix.replace(escapeRegex, '-'); - - if (prefix.match(/^Mui/)) { - return prefix + '-' + rule.key; - } - - if (process.env.NODE_ENV !== 'production') { - return prefix + '-' + rule.key + '-' + ruleCounter; - } - } - - if (process.env.NODE_ENV === 'production') { - return '' + productionPrefix + ruleCounter; - } - - return rule.key + '-' + ruleCounter; - } - - if (process.env.NODE_ENV === 'production') { - return '' + productionPrefix + ruleCounter; - } - - if (styleSheet && styleSheet.options.classNamePrefix) { - var _prefix = styleSheet.options.classNamePrefix; - // Sanitize the string as will be used to prefix the generated class name. - _prefix = _prefix.replace(escapeRegex, '-'); - - return _prefix + '-' + rule.key + '-' + ruleCounter; - } - - return rule.key + '-' + ruleCounter; - }; -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/createMixins.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _extends3 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends4 = _interopRequireDefault(_extends3); - -exports.default = createMixins; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function createMixins(breakpoints, spacing, mixins) { - var _toolbar; - - return (0, _extends4.default)({ - gutters: function gutters(styles) { - return (0, _extends4.default)({ - paddingLeft: spacing.unit * 2, - paddingRight: spacing.unit * 2 - }, styles, (0, _defineProperty3.default)({}, breakpoints.up('sm'), (0, _extends4.default)({ - paddingLeft: spacing.unit * 3, - paddingRight: spacing.unit * 3 - }, styles[breakpoints.up('sm')]))); - }, - toolbar: (_toolbar = { - minHeight: 56 - }, (0, _defineProperty3.default)(_toolbar, breakpoints.up('xs') + ' and (orientation: landscape)', { - minHeight: 48 - }), (0, _defineProperty3.default)(_toolbar, breakpoints.up('sm'), { - minHeight: 64 - }), _toolbar) - }, mixins); -} - -/***/ }), - -/***/ "./node_modules/material-ui/styles/createMuiTheme.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); - -var _deepmerge2 = _interopRequireDefault(_deepmerge); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _createTypography = __webpack_require__("./node_modules/material-ui/styles/createTypography.js"); - -var _createTypography2 = _interopRequireDefault(_createTypography); - -var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); - -var _createBreakpoints2 = _interopRequireDefault(_createBreakpoints); - -var _createPalette = __webpack_require__("./node_modules/material-ui/styles/createPalette.js"); - -var _createPalette2 = _interopRequireDefault(_createPalette); - -var _createMixins = __webpack_require__("./node_modules/material-ui/styles/createMixins.js"); - -var _createMixins2 = _interopRequireDefault(_createMixins); - -var _shadows = __webpack_require__("./node_modules/material-ui/styles/shadows.js"); - -var _shadows2 = _interopRequireDefault(_shadows); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -var _transitions2 = _interopRequireDefault(_transitions); - -var _zIndex = __webpack_require__("./node_modules/material-ui/styles/zIndex.js"); - -var _zIndex2 = _interopRequireDefault(_zIndex); - -var _spacing = __webpack_require__("./node_modules/material-ui/styles/spacing.js"); - -var _spacing2 = _interopRequireDefault(_spacing); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function createMuiTheme() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _options$palette = options.palette, - paletteInput = _options$palette === undefined ? {} : _options$palette, - _options$breakpoints = options.breakpoints, - breakpointsInput = _options$breakpoints === undefined ? {} : _options$breakpoints, - _options$mixins = options.mixins, - mixinsInput = _options$mixins === undefined ? {} : _options$mixins, - _options$typography = options.typography, - typographyInput = _options$typography === undefined ? {} : _options$typography, - shadowsInput = options.shadows, - other = (0, _objectWithoutProperties3.default)(options, ['palette', 'breakpoints', 'mixins', 'typography', 'shadows']); - - - var palette = (0, _createPalette2.default)(paletteInput); - var breakpoints = (0, _createBreakpoints2.default)(breakpointsInput); - - var muiTheme = (0, _extends3.default)({ - direction: 'ltr', - palette: palette, - typography: (0, _createTypography2.default)(palette, typographyInput), - mixins: (0, _createMixins2.default)(breakpoints, _spacing2.default, mixinsInput), - breakpoints: breakpoints, - shadows: shadowsInput || _shadows2.default - }, (0, _deepmerge2.default)({ - transitions: _transitions2.default, - spacing: _spacing2.default, - zIndex: _zIndex2.default - }, other)); - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(muiTheme.shadows.length === 25, 'Material-UI: the shadows array provided to createMuiTheme should support 25 elevations.') : void 0; - - return muiTheme; -} // < 1kb payload overhead when lodash/merge is > 3kb. -exports.default = createMuiTheme; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/createPalette.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.dark = exports.light = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -exports.default = createPalette; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); - -var _deepmerge2 = _interopRequireDefault(_deepmerge); - -var _indigo = __webpack_require__("./node_modules/material-ui/colors/indigo.js"); - -var _indigo2 = _interopRequireDefault(_indigo); - -var _pink = __webpack_require__("./node_modules/material-ui/colors/pink.js"); - -var _pink2 = _interopRequireDefault(_pink); - -var _grey = __webpack_require__("./node_modules/material-ui/colors/grey.js"); - -var _grey2 = _interopRequireDefault(_grey); - -var _red = __webpack_require__("./node_modules/material-ui/colors/red.js"); - -var _red2 = _interopRequireDefault(_red); - -var _common = __webpack_require__("./node_modules/material-ui/colors/common.js"); - -var _common2 = _interopRequireDefault(_common); - -var _colorManipulator = __webpack_require__("./node_modules/material-ui/styles/colorManipulator.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// < 1kb payload overhead when lodash/merge is > 3kb. -var light = exports.light = { - // The colors used to style the text. - text: { - // The most important text. - primary: 'rgba(0, 0, 0, 0.87)', - // Secondary text. - secondary: 'rgba(0, 0, 0, 0.54)', - // Disabled text have even lower visual prominence. - disabled: 'rgba(0, 0, 0, 0.38)', - // Text hints. - hint: 'rgba(0, 0, 0, 0.38)' - }, - // The color used to divide different elements. - divider: 'rgba(0, 0, 0, 0.12)', - // The background colors used to style the surfaces. - // Consistency between these values is important. - background: { - paper: _common2.default.white, - default: _grey2.default[50] - }, - // The colors used to style the action elements. - action: { - // The color of an active action like an icon button. - active: 'rgba(0, 0, 0, 0.54)', - // The color of an hovered action. - hover: 'rgba(0, 0, 0, 0.08)', - // The color of a selected action. - selected: 'rgba(0, 0, 0, 0.14)', - // The color of a disabled action. - disabled: 'rgba(0, 0, 0, 0.26)', - // The background color of a disabled action. - disabledBackground: 'rgba(0, 0, 0, 0.12)' - } -}; - -var dark = exports.dark = { - text: { - primary: _common2.default.white, - secondary: 'rgba(255, 255, 255, 0.7)', - disabled: 'rgba(255, 255, 255, 0.5)', - hint: 'rgba(255, 255, 255, 0.5)', - icon: 'rgba(255, 255, 255, 0.5)' - }, - divider: 'rgba(255, 255, 255, 0.12)', - background: { - paper: _grey2.default[800], - default: '#303030' - }, - action: { - active: _common2.default.white, - hover: 'rgba(255, 255, 255, 0.1)', - selected: 'rgba(255, 255, 255, 0.2)', - disabled: 'rgba(255, 255, 255, 0.3)', - disabledBackground: 'rgba(255, 255, 255, 0.12)' - } -}; - -function addLightOrDark(intent, direction, shade, tonalOffset) { - if (!intent[direction]) { - if (intent.hasOwnProperty(shade)) { - intent[direction] = intent[shade]; - } else if (direction === 'light') { - intent.light = (0, _colorManipulator.lighten)(intent.main, tonalOffset); - } else if (direction === 'dark') { - intent.dark = (0, _colorManipulator.darken)(intent.main, tonalOffset * 1.5); - } - } -} - -function createPalette(palette) { - var _palette$primary = palette.primary, - primary = _palette$primary === undefined ? { - light: _indigo2.default[300], - main: _indigo2.default[500], - dark: _indigo2.default[700] - } : _palette$primary, - _palette$secondary = palette.secondary, - secondary = _palette$secondary === undefined ? { - light: _pink2.default.A200, - main: _pink2.default.A400, - dark: _pink2.default.A700 - } : _palette$secondary, - _palette$error = palette.error, - error = _palette$error === undefined ? { - light: _red2.default[300], - main: _red2.default[500], - dark: _red2.default[700] - } : _palette$error, - _palette$type = palette.type, - type = _palette$type === undefined ? 'light' : _palette$type, - _palette$contrastThre = palette.contrastThreshold, - contrastThreshold = _palette$contrastThre === undefined ? 3 : _palette$contrastThre, - _palette$tonalOffset = palette.tonalOffset, - tonalOffset = _palette$tonalOffset === undefined ? 0.2 : _palette$tonalOffset, - other = (0, _objectWithoutProperties3.default)(palette, ['primary', 'secondary', 'error', 'type', 'contrastThreshold', 'tonalOffset']); - - - function getContrastText(background) { - // Use the same logic as - // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59 - // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54 - var contrastText = (0, _colorManipulator.getContrastRatio)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary; - - if (process.env.NODE_ENV !== 'production') { - var contrast = (0, _colorManipulator.getContrastRatio)(background, contrastText); - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(contrast >= 3, ['Material-UI: the contrast ratio of ' + contrast + ':1 for ' + contrastText + ' on ' + background, 'falls below the WACG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\n')) : void 0; - } - - return contrastText; - } - - function augmentColor(color, mainShade, lightShade, darkShade) { - if (!color.main && color[mainShade]) { - color.main = color[mainShade]; - } - addLightOrDark(color, 'light', lightShade, tonalOffset); - addLightOrDark(color, 'dark', darkShade, tonalOffset); - if (!color.contrastText) { - color.contrastText = getContrastText(color.main); - } - } - - augmentColor(primary, 500, 300, 700); - augmentColor(secondary, 'A400', 'A200', 'A700'); - augmentColor(error, 500, 300, 700); - - var types = { dark: dark, light: light }; - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(types[type], 'Material-UI: the palette type `' + type + '` is not supported.') : void 0; - - var paletteOutput = (0, _deepmerge2.default)((0, _extends3.default)({ - // A collection of common colors. - common: _common2.default, - // The palette type, can be light or dark. - type: type, - // The colors used to represent primary interface elements for a user. - primary: primary, - // The colors used to represent secondary interface elements for a user. - secondary: secondary, - // The colors used to represent interface elements that the user should be made aware of. - error: error, - // The grey colors. - grey: _grey2.default, - // Used by `getContrastText()` to maximize the contrast between the background and - // the text. - contrastThreshold: contrastThreshold, - // Take a background color and return the color of the text to maximize the contrast. - getContrastText: getContrastText, - // Used by the functions below to shift a color's luminance by approximately - // two indexes within its tonal palette. - // E.g., shift from Red 500 to Red 300 or Red 700. - tonalOffset: tonalOffset - }, types[type]), other, { - clone: false // No need to clone deep - }); - - return paletteOutput; -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/createTypography.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -exports.default = createTypography; - -var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); - -var _deepmerge2 = _interopRequireDefault(_deepmerge); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// < 1kb payload overhead when lodash/merge is > 3kb. - -function round(value) { - return Math.round(value * 1e5) / 1e5; -} - -function createTypography(palette, typography) { - var _ref = typeof typography === 'function' ? typography(palette) : typography, - _ref$fontFamily = _ref.fontFamily, - fontFamily = _ref$fontFamily === undefined ? '"Roboto", "Helvetica", "Arial", sans-serif' : _ref$fontFamily, - _ref$fontSize = _ref.fontSize, - fontSize = _ref$fontSize === undefined ? 14 : _ref$fontSize, - _ref$fontWeightLight = _ref.fontWeightLight, - fontWeightLight = _ref$fontWeightLight === undefined ? 300 : _ref$fontWeightLight, - _ref$fontWeightRegula = _ref.fontWeightRegular, - fontWeightRegular = _ref$fontWeightRegula === undefined ? 400 : _ref$fontWeightRegula, - _ref$fontWeightMedium = _ref.fontWeightMedium, - fontWeightMedium = _ref$fontWeightMedium === undefined ? 500 : _ref$fontWeightMedium, - _ref$htmlFontSize = _ref.htmlFontSize, - htmlFontSize = _ref$htmlFontSize === undefined ? 16 : _ref$htmlFontSize, - other = (0, _objectWithoutProperties3.default)(_ref, ['fontFamily', 'fontSize', 'fontWeightLight', 'fontWeightRegular', 'fontWeightMedium', 'htmlFontSize']); - - function pxToRem(value) { - return value / htmlFontSize + 'rem'; - } - - return (0, _deepmerge2.default)({ - pxToRem: pxToRem, - round: round, - fontFamily: fontFamily, - fontSize: fontSize, - fontWeightLight: fontWeightLight, - fontWeightRegular: fontWeightRegular, - fontWeightMedium: fontWeightMedium, - display4: { - fontSize: pxToRem(112), - fontWeight: fontWeightLight, - fontFamily: fontFamily, - letterSpacing: '-.04em', - lineHeight: round(128 / 112) + 'em', - marginLeft: '-.06em', - color: palette.text.secondary - }, - display3: { - fontSize: pxToRem(56), - fontWeight: fontWeightRegular, - fontFamily: fontFamily, - letterSpacing: '-.02em', - lineHeight: round(73 / 56) + 'em', - marginLeft: '-.04em', - color: palette.text.secondary - }, - display2: { - fontSize: pxToRem(45), - fontWeight: fontWeightRegular, - fontFamily: fontFamily, - lineHeight: round(48 / 45) + 'em', - marginLeft: '-.04em', - color: palette.text.secondary - }, - display1: { - fontSize: pxToRem(34), - fontWeight: fontWeightRegular, - fontFamily: fontFamily, - lineHeight: round(41 / 34) + 'em', - marginLeft: '-.04em', - color: palette.text.secondary - }, - headline: { - fontSize: pxToRem(24), - fontWeight: fontWeightRegular, - fontFamily: fontFamily, - lineHeight: round(32.5 / 24) + 'em', - color: palette.text.primary - }, - title: { - fontSize: pxToRem(21), - fontWeight: fontWeightMedium, - fontFamily: fontFamily, - lineHeight: round(24.5 / 21) + 'em', - color: palette.text.primary - }, - subheading: { - fontSize: pxToRem(16), - fontWeight: fontWeightRegular, - fontFamily: fontFamily, - lineHeight: round(24 / 16) + 'em', - color: palette.text.primary - }, - body2: { - fontSize: pxToRem(14), - fontWeight: fontWeightMedium, - fontFamily: fontFamily, - lineHeight: round(24 / 14) + 'em', - color: palette.text.primary - }, - body1: { - fontSize: pxToRem(14), - fontWeight: fontWeightRegular, - fontFamily: fontFamily, - lineHeight: round(20.5 / 14) + 'em', - color: palette.text.primary - }, - caption: { - fontSize: pxToRem(12), - fontWeight: fontWeightRegular, - fontFamily: fontFamily, - lineHeight: round(16.5 / 12) + 'em', - color: palette.text.secondary - }, - button: { - fontSize: pxToRem(fontSize), - textTransform: 'uppercase', - fontWeight: fontWeightMedium, - fontFamily: fontFamily - } - }, other, { - clone: false // No need to clone deep - }); -} - -/***/ }), - -/***/ "./node_modules/material-ui/styles/getStylesCreator.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _deepmerge = __webpack_require__("./node_modules/deepmerge/dist/es.js"); - -var _deepmerge2 = _interopRequireDefault(_deepmerge); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// < 1kb payload overhead when lodash/merge is > 3kb. - -function getStylesCreator(stylesOrCreator) { - var themingEnabled = typeof stylesOrCreator === 'function'; - - function create(theme, name) { - var styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator; - - if (!theme.overrides || !name || !theme.overrides[name]) { - return styles; - } - - var overrides = theme.overrides[name]; - var stylesWithOverrides = (0, _extends3.default)({}, styles); - - (0, _keys2.default)(overrides).forEach(function (key) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(stylesWithOverrides[key], ['Material-UI: you are trying to override a style that does not exist.', 'Fix the `' + key + '` key of `theme.overrides.' + name + '`.'].join('\n')) : void 0; - stylesWithOverrides[key] = (0, _deepmerge2.default)(stylesWithOverrides[key], overrides[key]); - }); - - return stylesWithOverrides; - } - - return { - create: create, - options: {}, - themingEnabled: themingEnabled - }; -} - -exports.default = getStylesCreator; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createGenerateClassName = __webpack_require__("./node_modules/material-ui/styles/createGenerateClassName.js"); - -Object.defineProperty(exports, 'createGenerateClassName', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_createGenerateClassName).default; - } -}); - -var _createMuiTheme = __webpack_require__("./node_modules/material-ui/styles/createMuiTheme.js"); - -Object.defineProperty(exports, 'createMuiTheme', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_createMuiTheme).default; - } -}); - -var _jssPreset = __webpack_require__("./node_modules/material-ui/styles/jssPreset.js"); - -Object.defineProperty(exports, 'jssPreset', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_jssPreset).default; - } -}); - -var _MuiThemeProvider = __webpack_require__("./node_modules/material-ui/styles/MuiThemeProvider.js"); - -Object.defineProperty(exports, 'MuiThemeProvider', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_MuiThemeProvider).default; - } -}); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -Object.defineProperty(exports, 'withStyles', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_withStyles).default; - } -}); - -var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); - -Object.defineProperty(exports, 'withTheme', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_withTheme).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/styles/jssPreset.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jssGlobal = __webpack_require__("./node_modules/jss-global/lib/index.js"); - -var _jssGlobal2 = _interopRequireDefault(_jssGlobal); - -var _jssNested = __webpack_require__("./node_modules/jss-nested/lib/index.js"); - -var _jssNested2 = _interopRequireDefault(_jssNested); - -var _jssCamelCase = __webpack_require__("./node_modules/jss-camel-case/lib/index.js"); - -var _jssCamelCase2 = _interopRequireDefault(_jssCamelCase); - -var _jssDefaultUnit = __webpack_require__("./node_modules/jss-default-unit/lib/index.js"); - -var _jssDefaultUnit2 = _interopRequireDefault(_jssDefaultUnit); - -var _jssVendorPrefixer = __webpack_require__("./node_modules/jss-vendor-prefixer/lib/index.js"); - -var _jssVendorPrefixer2 = _interopRequireDefault(_jssVendorPrefixer); - -var _jssPropsSort = __webpack_require__("./node_modules/jss-props-sort/lib/index.js"); - -var _jssPropsSort2 = _interopRequireDefault(_jssPropsSort); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Subset of jss-preset-default with only the plugins the Material-UI -// components are using. -function jssPreset() { - return { - plugins: [(0, _jssGlobal2.default)(), (0, _jssNested2.default)(), (0, _jssCamelCase2.default)(), (0, _jssDefaultUnit2.default)(), (0, _jssVendorPrefixer2.default)(), (0, _jssPropsSort2.default)()] - }; -} - -exports.default = jssPreset; - -/***/ }), - -/***/ "./node_modules/material-ui/styles/shadows.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var shadowKeyUmbraOpacity = 0.2; -var shadowKeyPenumbraOpacity = 0.14; -var shadowAmbientShadowOpacity = 0.12; - -function createShadow() { - return [(arguments.length <= 0 ? undefined : arguments[0]) + 'px ' + (arguments.length <= 1 ? undefined : arguments[1]) + 'px ' + (arguments.length <= 2 ? undefined : arguments[2]) + 'px ' + (arguments.length <= 3 ? undefined : arguments[3]) + 'px rgba(0, 0, 0, ' + shadowKeyUmbraOpacity + ')', (arguments.length <= 4 ? undefined : arguments[4]) + 'px ' + (arguments.length <= 5 ? undefined : arguments[5]) + 'px ' + (arguments.length <= 6 ? undefined : arguments[6]) + 'px ' + (arguments.length <= 7 ? undefined : arguments[7]) + 'px rgba(0, 0, 0, ' + shadowKeyPenumbraOpacity + ')', (arguments.length <= 8 ? undefined : arguments[8]) + 'px ' + (arguments.length <= 9 ? undefined : arguments[9]) + 'px ' + (arguments.length <= 10 ? undefined : arguments[10]) + 'px ' + (arguments.length <= 11 ? undefined : arguments[11]) + 'px rgba(0, 0, 0, ' + shadowAmbientShadowOpacity + ')'].join(','); -} - -var shadows = ['none', createShadow(0, 1, 3, 0, 0, 1, 1, 0, 0, 2, 1, -1), createShadow(0, 1, 5, 0, 0, 2, 2, 0, 0, 3, 1, -2), createShadow(0, 1, 8, 0, 0, 3, 4, 0, 0, 3, 3, -2), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)]; - -exports.default = shadows; - -/***/ }), - -/***/ "./node_modules/material-ui/styles/spacing.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = { - // All components align to an 8dp square baseline grid for mobile, tablet, and desktop. - // https://material.io/guidelines/layout/metrics-keylines.html#metrics-keylines-baseline-grids - unit: 8 -}; - -/***/ }), - -/***/ "./node_modules/material-ui/styles/themeListener.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.CHANNEL = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Same value used by react-jss -var CHANNEL = exports.CHANNEL = '__THEMING__'; - -var themeListener = { - contextTypes: (0, _defineProperty3.default)({}, CHANNEL, _propTypes2.default.object), - initial: function initial(context) { - if (!context[CHANNEL]) { - return null; - } - - return context[CHANNEL].getState(); - }, - subscribe: function subscribe(context, cb) { - if (!context[CHANNEL]) { - return null; - } - - return context[CHANNEL].subscribe(cb); - }, - unsubscribe: function unsubscribe(context, subscriptionId) { - if (context[CHANNEL]) { - context[CHANNEL].unsubscribe(subscriptionId); - } - } -}; - -exports.default = themeListener; - -/***/ }), - -/***/ "./node_modules/material-ui/styles/transitions.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isNumber = exports.isString = exports.formatMs = exports.duration = exports.easing = undefined; - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _isNan = __webpack_require__("./node_modules/babel-runtime/core-js/number/is-nan.js"); - -var _isNan2 = _interopRequireDefault(_isNan); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves -// to learn the context in which each easing should be used. -var easing = exports.easing = { - // This is the most common easing curve. - easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)', - // Objects enter the screen at full velocity from off-screen and - // slowly decelerate to a resting point. - easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)', - // Objects leave the screen at full velocity. They do not decelerate when off-screen. - easeIn: 'cubic-bezier(0.4, 0, 1, 1)', - // The sharp curve is used by objects that may return to the screen at any time. - sharp: 'cubic-bezier(0.4, 0, 0.6, 1)' -}; - -// Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations -// to learn when use what timing - -/* eslint-disable no-param-reassign */ - -var duration = exports.duration = { - shortest: 150, - shorter: 200, - short: 250, - // most basic recommended timing - standard: 300, - // this is to be used in complex animations - complex: 375, - // recommended when something is entering screen - enteringScreen: 225, - // recommended when something is leaving screen - leavingScreen: 195 -}; - -var formatMs = exports.formatMs = function formatMs(milliseconds) { - return Math.round(milliseconds) + 'ms'; -}; -var isString = exports.isString = function isString(value) { - return typeof value === 'string'; -}; -var isNumber = exports.isNumber = function isNumber(value) { - return !(0, _isNan2.default)(parseFloat(value)); -}; - -/** - * @param {string|Array} props - * @param {object} param - * @param {string} param.prop - * @param {number} param.duration - * @param {string} param.easing - * @param {number} param.delay - */ -exports.default = { - easing: easing, - duration: duration, - create: function create() { - var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all']; - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var _options$duration = options.duration, - durationOption = _options$duration === undefined ? duration.standard : _options$duration, - _options$easing = options.easing, - easingOption = _options$easing === undefined ? easing.easeInOut : _options$easing, - _options$delay = options.delay, - delay = _options$delay === undefined ? 0 : _options$delay, - other = (0, _objectWithoutProperties3.default)(options, ['duration', 'easing', 'delay']); - - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isString(props) || Array.isArray(props), 'Material-UI: argument "props" must be a string or Array.') : void 0; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isNumber(durationOption) || isString(durationOption), 'Material-UI: argument "duration" must be a number or a string but found ' + durationOption + '.') : void 0; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isString(easingOption), 'Material-UI: argument "easing" must be a string.') : void 0; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(isNumber(delay) || isString(delay), 'Material-UI: argument "delay" must be a number or a string.') : void 0; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)((0, _keys2.default)(other).length === 0, 'Material-UI: unrecognized argument(s) [' + (0, _keys2.default)(other).join(',') + ']') : void 0; - - return (Array.isArray(props) ? props : [props]).map(function (animatedProp) { - return animatedProp + ' ' + (typeof durationOption === 'string' ? durationOption : formatMs(durationOption)) + ' ' + easingOption + ' ' + (typeof delay === 'string' ? delay : formatMs(delay)); - }).join(','); - }, - getAutoHeightDuration: function getAutoHeightDuration(height) { - if (!height) { - return 0; - } - - var constant = height / 36; - - // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10 - return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10); - } -}; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/withStyles.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.sheetsManager = undefined; - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _map = __webpack_require__("./node_modules/babel-runtime/core-js/map.js"); - -var _map2 = _interopRequireDefault(_map); - -var _minSafeInteger = __webpack_require__("./node_modules/babel-runtime/core-js/number/min-safe-integer.js"); - -var _minSafeInteger2 = _interopRequireDefault(_minSafeInteger); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); - -var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); - -var _getDisplayName = __webpack_require__("./node_modules/recompose/getDisplayName.js"); - -var _getDisplayName2 = _interopRequireDefault(_getDisplayName); - -var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); - -var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); - -var _contextTypes = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); - -var _contextTypes2 = _interopRequireDefault(_contextTypes); - -var _jss = __webpack_require__("./node_modules/jss/lib/index.js"); - -var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); - -var ns = _interopRequireWildcard(_ns); - -var _jssPreset = __webpack_require__("./node_modules/material-ui/styles/jssPreset.js"); - -var _jssPreset2 = _interopRequireDefault(_jssPreset); - -var _createMuiTheme = __webpack_require__("./node_modules/material-ui/styles/createMuiTheme.js"); - -var _createMuiTheme2 = _interopRequireDefault(_createMuiTheme); - -var _themeListener = __webpack_require__("./node_modules/material-ui/styles/themeListener.js"); - -var _themeListener2 = _interopRequireDefault(_themeListener); - -var _createGenerateClassName = __webpack_require__("./node_modules/material-ui/styles/createGenerateClassName.js"); - -var _createGenerateClassName2 = _interopRequireDefault(_createGenerateClassName); - -var _getStylesCreator = __webpack_require__("./node_modules/material-ui/styles/getStylesCreator.js"); - -var _getStylesCreator2 = _interopRequireDefault(_getStylesCreator); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// New JSS instance. -var jss = (0, _jss.create)((0, _jssPreset2.default)()); - -// Use a singleton or the provided one by the context. -var generateClassName = (0, _createGenerateClassName2.default)(); - -// Global index counter to preserve source order. -// As we create the style sheet during componentWillMount lifecycle, -// children are handled after the parents, so the order of style elements would -// be parent->child. It is a problem though when a parent passes a className -// which needs to override any childs styles. StyleSheet of the child has a higher -// specificity, because of the source order. -// So our solution is to render sheets them in the reverse order child->sheet, so -// that parent has a higher specificity. -var indexCounter = _minSafeInteger2.default; - -var sheetsManager = exports.sheetsManager = new _map2.default(); - -// We use the same empty object to ref count the styles that don't need a theme object. -var noopTheme = {}; - -// In order to have self-supporting components, we rely on default theme when not provided. -var defaultTheme = void 0; - -function getDefaultTheme() { - if (defaultTheme) { - return defaultTheme; - } - - defaultTheme = (0, _createMuiTheme2.default)(); - return defaultTheme; -} - -// Link a style sheet with a component. -// It does not modify the component passed to it; -// instead, it returns a new component, with a `classes` property. -var withStyles = function withStyles(stylesOrCreator) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return function (Component) { - var _options$withTheme = options.withTheme, - withTheme = _options$withTheme === undefined ? false : _options$withTheme, - _options$flip = options.flip, - flip = _options$flip === undefined ? null : _options$flip, - name = options.name, - styleSheetOptions = (0, _objectWithoutProperties3.default)(options, ['withTheme', 'flip', 'name']); - - var stylesCreator = (0, _getStylesCreator2.default)(stylesOrCreator); - var listenToTheme = stylesCreator.themingEnabled || withTheme || typeof name === 'string'; - - indexCounter += 1; - stylesCreator.options.index = indexCounter; - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(indexCounter < 0, ['Material-UI: you might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join(' ')) : void 0; - - var WithStyles = function (_React$Component) { - (0, _inherits3.default)(WithStyles, _React$Component); - - function WithStyles(props, context) { - (0, _classCallCheck3.default)(this, WithStyles); - - var _this = (0, _possibleConstructorReturn3.default)(this, (WithStyles.__proto__ || (0, _getPrototypeOf2.default)(WithStyles)).call(this, props, context)); - - _this.state = {}; - _this.disableStylesGeneration = false; - _this.jss = null; - _this.sheetOptions = null; - _this.sheetsManager = sheetsManager; - _this.stylesCreatorSaved = null; - _this.theme = null; - _this.unsubscribeId = null; - - - _this.jss = _this.context[ns.jss] || jss; - - var muiThemeProviderOptions = _this.context.muiThemeProviderOptions; - - if (muiThemeProviderOptions) { - if (muiThemeProviderOptions.sheetsManager) { - _this.sheetsManager = muiThemeProviderOptions.sheetsManager; - } - - _this.disableStylesGeneration = muiThemeProviderOptions.disableStylesGeneration; - } - - // Attach the stylesCreator to the instance of the component as in the context - // of react-hot-loader the hooks can be executed in a different closure context: - // https://github.com/gaearon/react-hot-loader/blob/master/src/patch.dev.js#L107 - _this.stylesCreatorSaved = stylesCreator; - _this.sheetOptions = (0, _extends3.default)({ - generateClassName: generateClassName - }, _this.context[ns.sheetOptions]); - // We use || as the function call is lazy evaluated. - _this.theme = listenToTheme ? _themeListener2.default.initial(context) || getDefaultTheme() : noopTheme; - return _this; - } - - (0, _createClass3.default)(WithStyles, [{ - key: 'componentWillMount', - value: function componentWillMount() { - this.attach(this.theme); - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - var _this2 = this; - - if (!listenToTheme) { - return; - } - - this.unsubscribeId = _themeListener2.default.subscribe(this.context, function (theme) { - var oldTheme = _this2.theme; - _this2.theme = theme; - _this2.attach(_this2.theme); - - // Rerender the component so the underlying component gets the theme update. - // By theme update we mean receiving and applying the new class names. - _this2.setState({}, function () { - _this2.detach(oldTheme); - }); - }); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps() { - // react-hot-loader specific logic - if (this.stylesCreatorSaved === stylesCreator || process.env.NODE_ENV === 'production') { - return; - } - - this.detach(this.theme); - this.stylesCreatorSaved = stylesCreator; - this.attach(this.theme); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.detach(this.theme); - - if (this.unsubscribeId !== null) { - _themeListener2.default.unsubscribe(this.context, this.unsubscribeId); - } - } - }, { - key: 'attach', - value: function attach(theme) { - if (this.disableStylesGeneration) { - return; - } - - var stylesCreatorSaved = this.stylesCreatorSaved; - var sheetManager = this.sheetsManager.get(stylesCreatorSaved); - - if (!sheetManager) { - sheetManager = new _map2.default(); - this.sheetsManager.set(stylesCreatorSaved, sheetManager); - } - - var sheetManagerTheme = sheetManager.get(theme); - - if (!sheetManagerTheme) { - sheetManagerTheme = { - refs: 0, - sheet: null - }; - sheetManager.set(theme, sheetManagerTheme); - } - - if (sheetManagerTheme.refs === 0) { - var styles = stylesCreatorSaved.create(theme, name); - var meta = name; - - if (process.env.NODE_ENV !== 'production' && !meta) { - meta = (0, _getDisplayName2.default)(Component); - } - - var sheet = this.jss.createStyleSheet(styles, (0, _extends3.default)({ - meta: meta, - classNamePrefix: meta, - flip: typeof flip === 'boolean' ? flip : theme.direction === 'rtl', - link: false - }, this.sheetOptions, stylesCreatorSaved.options, { - name: name - }, styleSheetOptions)); - - sheetManagerTheme.sheet = sheet; - sheet.attach(); - - var sheetsRegistry = this.context[ns.sheetsRegistry]; - if (sheetsRegistry) { - sheetsRegistry.add(sheet); - } - } - - sheetManagerTheme.refs += 1; - } - }, { - key: 'detach', - value: function detach(theme) { - if (this.disableStylesGeneration) { - return; - } - - var stylesCreatorSaved = this.stylesCreatorSaved; - var sheetManager = this.sheetsManager.get(stylesCreatorSaved); - var sheetManagerTheme = sheetManager.get(theme); - - sheetManagerTheme.refs -= 1; - - if (sheetManagerTheme.refs === 0) { - sheetManager.delete(theme); - this.jss.removeStyleSheet(sheetManagerTheme.sheet); - var sheetsRegistry = this.context[ns.sheetsRegistry]; - if (sheetsRegistry) { - sheetsRegistry.remove(sheetManagerTheme.sheet); - } - } - } - }, { - key: 'render', - value: function render() { - var _this3 = this; - - var _props = this.props, - classesProp = _props.classes, - innerRef = _props.innerRef, - other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'innerRef']); - - - var classes = void 0; - var renderedClasses = {}; - - if (!this.disableStylesGeneration) { - var sheetManager = this.sheetsManager.get(this.stylesCreatorSaved); - var sheetsManagerTheme = sheetManager.get(this.theme); - renderedClasses = sheetsManagerTheme.sheet.classes; - } - - if (classesProp) { - classes = (0, _extends3.default)({}, renderedClasses, (0, _keys2.default)(classesProp).reduce(function (accumulator, key) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(renderedClasses[key] || _this3.disableStylesGeneration, ['Material-UI: the key `' + key + '` ' + ('provided to the classes property is not implemented in ' + (0, _getDisplayName2.default)(Component) + '.'), 'You can only override one of the following: ' + (0, _keys2.default)(renderedClasses).join(',')].join('\n')) : void 0; - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!classesProp[key] || typeof classesProp[key] === 'string', ['Material-UI: the key `' + key + '` ' + ('provided to the classes property is not valid for ' + (0, _getDisplayName2.default)(Component) + '.'), 'You need to provide a non empty string instead of: ' + classesProp[key] + '.'].join('\n')) : void 0; - - if (classesProp[key]) { - accumulator[key] = renderedClasses[key] + ' ' + classesProp[key]; - } - - return accumulator; - }, {})); - } else { - classes = renderedClasses; - } - - var more = {}; - - // Provide the theme to the wrapped component. - // So we don't have to use the `withTheme()` Higher-order Component. - if (withTheme) { - more.theme = this.theme; - } - - return _react2.default.createElement(Component, (0, _extends3.default)({ classes: classes }, more, other, { ref: innerRef })); - } - }]); - return WithStyles; - }(_react2.default.Component); - - WithStyles.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object, - /** - * Use that property to pass a ref callback to the decorated component. - */ - innerRef: _propTypes2.default.func - } : {}; - - WithStyles.contextTypes = (0, _extends3.default)({ - muiThemeProviderOptions: _propTypes2.default.object - }, _contextTypes2.default, listenToTheme ? _themeListener2.default.contextTypes : {}); - - if (process.env.NODE_ENV !== 'production') { - WithStyles.displayName = (0, _wrapDisplayName2.default)(Component, 'WithStyles'); - } - - (0, _hoistNonReactStatics2.default)(WithStyles, Component); - - if (process.env.NODE_ENV !== 'production') { - // Exposed for test purposes. - WithStyles.Naked = Component; - WithStyles.options = options; - } - - return WithStyles; - }; -}; - -exports.default = withStyles; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/withTheme.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); - -var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); - -var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); - -var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); - -var _createMuiTheme = __webpack_require__("./node_modules/material-ui/styles/createMuiTheme.js"); - -var _createMuiTheme2 = _interopRequireDefault(_createMuiTheme); - -var _themeListener = __webpack_require__("./node_modules/material-ui/styles/themeListener.js"); - -var _themeListener2 = _interopRequireDefault(_themeListener); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var defaultTheme = void 0; - -function getDefaultTheme() { - if (defaultTheme) { - return defaultTheme; - } - - defaultTheme = (0, _createMuiTheme2.default)(); - return defaultTheme; -} - -// Provide the theme object as a property to the input component. -var withTheme = function withTheme() { - return function (Component) { - var WithTheme = function (_React$Component) { - (0, _inherits3.default)(WithTheme, _React$Component); - - function WithTheme(props, context) { - (0, _classCallCheck3.default)(this, WithTheme); - - var _this = (0, _possibleConstructorReturn3.default)(this, (WithTheme.__proto__ || (0, _getPrototypeOf2.default)(WithTheme)).call(this, props, context)); - - _this.state = {}; - _this.unsubscribeId = null; - - _this.state = { - // We use || as the function call is lazy evaluated. - theme: _themeListener2.default.initial(context) || getDefaultTheme() - }; - return _this; - } - - (0, _createClass3.default)(WithTheme, [{ - key: 'componentDidMount', - value: function componentDidMount() { - var _this2 = this; - - this.unsubscribeId = _themeListener2.default.subscribe(this.context, function (theme) { - _this2.setState({ theme: theme }); - }); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - if (this.unsubscribeId !== null) { - _themeListener2.default.unsubscribe(this.context, this.unsubscribeId); - } - } - }, { - key: 'render', - value: function render() { - return _react2.default.createElement(Component, (0, _extends3.default)({ theme: this.state.theme }, this.props)); - } - }]); - return WithTheme; - }(_react2.default.Component); - - WithTheme.contextTypes = _themeListener2.default.contextTypes; - - if (process.env.NODE_ENV !== 'production') { - WithTheme.displayName = (0, _wrapDisplayName2.default)(Component, 'WithTheme'); - } - - (0, _hoistNonReactStatics2.default)(WithTheme, Component); - - if (process.env.NODE_ENV !== 'production') { - // Exposed for test purposes. - WithTheme.Naked = Component; - } - - return WithTheme; - }; -}; - -exports.default = withTheme; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/styles/zIndex.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// We need to centralize the zIndex definitions as they work -// like global values in the browser. -var zIndex = { - mobileStepper: 1000, - appBar: 1100, - drawer: 1200, - modal: 1300, - snackbar: 1400, - tooltip: 1500 -}; - -exports.default = zIndex; - -/***/ }), - -/***/ "./node_modules/material-ui/transitions/Collapse.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.styles = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); - -var _Transition2 = _interopRequireDefault(_Transition); - -var _withStyles = __webpack_require__("./node_modules/material-ui/styles/withStyles.js"); - -var _withStyles2 = _interopRequireDefault(_withStyles); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = exports.styles = function styles(theme) { - return { - container: { - height: 0, - overflow: 'hidden', - transition: theme.transitions.create('height') - }, - entered: { - height: 'auto' - }, - wrapper: { - // Hack to get children with a negative margin to not falsify the height computation. - display: 'flex' - }, - wrapperInner: { - width: '100%' - } - }; -}; - -/** - * The Collapes transition is used by the - * [Vetical Stepper](/demos/steppers#vertical-stepper) StepContent component. - * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. - */ -// @inheritedComponent Transition - -var Collapse = function (_React$Component) { - (0, _inherits3.default)(Collapse, _React$Component); - - function Collapse() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Collapse); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Collapse.__proto__ || (0, _getPrototypeOf2.default)(Collapse)).call.apply(_ref, [this].concat(args))), _this), _this.wrapper = null, _this.autoTransitionDuration = undefined, _this.timer = null, _this.handleEnter = function (node) { - node.style.height = _this.props.collapsedHeight; - - if (_this.props.onEnter) { - _this.props.onEnter(node); - } - }, _this.handleEntering = function (node) { - var _this$props = _this.props, - timeout = _this$props.timeout, - theme = _this$props.theme; - - var wrapperHeight = _this.wrapper ? _this.wrapper.clientHeight : 0; - - var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { - mode: 'enter' - }), - transitionDuration = _getTransitionProps.duration; - - if (timeout === 'auto') { - var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight); - node.style.transitionDuration = duration2 + 'ms'; - _this.autoTransitionDuration = duration2; - } else { - node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : transitionDuration + 'ms'; - } - - node.style.height = wrapperHeight + 'px'; - - if (_this.props.onEntering) { - _this.props.onEntering(node); - } - }, _this.handleEntered = function (node) { - node.style.height = 'auto'; - - if (_this.props.onEntered) { - _this.props.onEntered(node); - } - }, _this.handleExit = function (node) { - var wrapperHeight = _this.wrapper ? _this.wrapper.clientHeight : 0; - node.style.height = wrapperHeight + 'px'; - - if (_this.props.onExit) { - _this.props.onExit(node); - } - }, _this.handleExiting = function (node) { - var _this$props2 = _this.props, - timeout = _this$props2.timeout, - theme = _this$props2.theme; - - var wrapperHeight = _this.wrapper ? _this.wrapper.clientHeight : 0; - - var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { - mode: 'exit' - }), - transitionDuration = _getTransitionProps2.duration; - - if (timeout === 'auto') { - var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight); - node.style.transitionDuration = duration2 + 'ms'; - _this.autoTransitionDuration = duration2; - } else { - node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : transitionDuration + 'ms'; - } - - node.style.height = _this.props.collapsedHeight; - - if (_this.props.onExiting) { - _this.props.onExiting(node); - } - }, _this.addEndListener = function (_, next) { - if (_this.props.timeout === 'auto') { - _this.timer = setTimeout(next, _this.autoTransitionDuration || 0); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Collapse, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearTimeout(this.timer); - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - children = _props.children, - classes = _props.classes, - className = _props.className, - collapsedHeight = _props.collapsedHeight, - Component = _props.component, - onEnter = _props.onEnter, - onEntered = _props.onEntered, - onEntering = _props.onEntering, - onExit = _props.onExit, - onExiting = _props.onExiting, - style = _props.style, - theme = _props.theme, - timeout = _props.timeout, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'classes', 'className', 'collapsedHeight', 'component', 'onEnter', 'onEntered', 'onEntering', 'onExit', 'onExiting', 'style', 'theme', 'timeout']); - - - return _react2.default.createElement( - _Transition2.default, - (0, _extends3.default)({ - onEntering: this.handleEntering, - onEnter: this.handleEnter, - onEntered: this.handleEntered, - onExiting: this.handleExiting, - onExit: this.handleExit, - addEndListener: this.addEndListener, - timeout: timeout === 'auto' ? null : timeout - }, other), - function (state, childProps) { - return _react2.default.createElement( - Component, - (0, _extends3.default)({ - className: (0, _classnames2.default)(classes.container, (0, _defineProperty3.default)({}, classes.entered, state === 'entered'), className), - style: (0, _extends3.default)({}, style, { - minHeight: collapsedHeight - }) - }, childProps), - _react2.default.createElement( - 'div', - { - className: classes.wrapper, - ref: function ref(node) { - _this2.wrapper = node; - } - }, - _react2.default.createElement( - 'div', - { className: classes.wrapperInner }, - children - ) - ) - ); - } - ); - } - }]); - return Collapse; -}(_react2.default.Component); - -Collapse.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * The content node to be collapsed. - */ - children: _propTypes2.default.node, - /** - * Useful to extend the style applied to components. - */ - classes: _propTypes2.default.object.isRequired, - /** - * @ignore - */ - className: _propTypes2.default.string, - /** - * The height of the container when collapsed. - */ - collapsedHeight: _propTypes2.default.string, - /** - * The component used for the root node. - * Either a string to use a DOM element or a component. - */ - component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]), - /** - * If `true`, the component will transition in. - */ - in: _propTypes2.default.bool, - /** - * @ignore - */ - onEnter: _propTypes2.default.func, - /** - * @ignore - */ - onEntered: _propTypes2.default.func, - /** - * @ignore - */ - onEntering: _propTypes2.default.func, - /** - * @ignore - */ - onExit: _propTypes2.default.func, - /** - * @ignore - */ - onExiting: _propTypes2.default.func, - /** - * @ignore - */ - style: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - * - * Set to 'auto' to automatically calculate transition time based on height. - */ - timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) -} : {}; - -Collapse.defaultProps = { - collapsedHeight: '0px', - component: 'div', - timeout: _transitions.duration.standard -}; - -exports.default = (0, _withStyles2.default)(styles, { - withTheme: true, - name: 'MuiCollapse' -})(Collapse); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/transitions/Fade.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); - -var _Transition2 = _interopRequireDefault(_Transition); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); - -var _withTheme2 = _interopRequireDefault(_withTheme); - -var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent Transition - -var styles = { - entering: { - opacity: 1 - }, - entered: { - opacity: 1 - } -}; - -/** - * The Fade transition is used by the [Modal](/demos/modals) component. - * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. - */ - -var Fade = function (_React$Component) { - (0, _inherits3.default)(Fade, _React$Component); - - function Fade() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Fade); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Fade.__proto__ || (0, _getPrototypeOf2.default)(Fade)).call.apply(_ref, [this].concat(args))), _this), _this.handleEnter = function (node) { - var theme = _this.props.theme; - - (0, _utils.reflow)(node); // So the animation always start from the start. - - var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { - mode: 'enter' - }), - transitionDuration = _getTransitionProps.duration, - delay = _getTransitionProps.delay; - - node.style.transition = theme.transitions.create('opacity', { - duration: transitionDuration, - delay: delay - }); - node.style.webkitTransition = theme.transitions.create('opacity', { - duration: transitionDuration, - delay: delay - }); - - if (_this.props.onEnter) { - _this.props.onEnter(node); - } - }, _this.handleExit = function (node) { - var theme = _this.props.theme; - - var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { - mode: 'exit' - }), - transitionDuration = _getTransitionProps2.duration, - delay = _getTransitionProps2.delay; - - node.style.transition = theme.transitions.create('opacity', { - duration: transitionDuration, - delay: delay - }); - node.style.webkitTransition = theme.transitions.create('opacity', { - duration: transitionDuration, - delay: delay - }); - - if (_this.props.onExit) { - _this.props.onExit(node); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Fade, [{ - key: 'render', - value: function render() { - var _props = this.props, - children = _props.children, - onEnter = _props.onEnter, - onExit = _props.onExit, - styleProp = _props.style, - theme = _props.theme, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onExit', 'style', 'theme']); - - - var style = (0, _extends3.default)({}, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); - - return _react2.default.createElement( - _Transition2.default, - (0, _extends3.default)({ appear: true, onEnter: this.handleEnter, onExit: this.handleExit }, other), - function (state, childProps) { - return _react2.default.cloneElement(children, (0, _extends3.default)({ - style: (0, _extends3.default)({ - opacity: 0 - }, styles[state], style) - }, childProps)); - } - ); - } - }]); - return Fade; -}(_react2.default.Component); - -Fade.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * A single child content element. - */ - children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), - /** - * If `true`, the component will transition in. - */ - in: _propTypes2.default.bool, - /** - * @ignore - */ - onEnter: _propTypes2.default.func, - /** - * @ignore - */ - onEntering: _propTypes2.default.func, - /** - * @ignore - */ - onExit: _propTypes2.default.func, - /** - * @ignore - */ - style: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - */ - timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) -} : {}; - -Fade.defaultProps = { - timeout: { - enter: _transitions.duration.enteringScreen, - exit: _transitions.duration.leavingScreen - } -}; - -exports.default = (0, _withTheme2.default)()(Fade); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/transitions/Grow.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); - -var _Transition2 = _interopRequireDefault(_Transition); - -var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); - -var _withTheme2 = _interopRequireDefault(_withTheme); - -var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getScale(value) { - return 'scale(' + value + ', ' + Math.pow(value, 2) + ')'; -} // @inheritedComponent Transition - -var styles = { - entering: { - opacity: 1, - transform: getScale(1) - }, - entered: { - opacity: 1, - transform: getScale(1) - } -}; - -/** - * The Grow transition is used by the [Popover](/demos/popovers) component. - * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. - */ - -var Grow = function (_React$Component) { - (0, _inherits3.default)(Grow, _React$Component); - - function Grow() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Grow); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Grow.__proto__ || (0, _getPrototypeOf2.default)(Grow)).call.apply(_ref, [this].concat(args))), _this), _this.autoTimeout = undefined, _this.timer = null, _this.handleEnter = function (node) { - var _this$props = _this.props, - theme = _this$props.theme, - timeout = _this$props.timeout; - - (0, _utils.reflow)(node); // So the animation always start from the start. - - var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { - mode: 'enter' - }), - transitionDuration = _getTransitionProps.duration, - delay = _getTransitionProps.delay; - - var duration = 0; - if (timeout === 'auto') { - duration = theme.transitions.getAutoHeightDuration(node.clientHeight); - _this.autoTimeout = duration; - } else { - duration = transitionDuration; - } - - node.style.transition = [theme.transitions.create('opacity', { - duration: duration, - delay: delay - }), theme.transitions.create('transform', { - duration: duration * 0.666, - delay: delay - })].join(','); - - if (_this.props.onEnter) { - _this.props.onEnter(node); - } - }, _this.handleExit = function (node) { - var _this$props2 = _this.props, - theme = _this$props2.theme, - timeout = _this$props2.timeout; - - var duration = 0; - - var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { - mode: 'exit' - }), - transitionDuration = _getTransitionProps2.duration, - delay = _getTransitionProps2.delay; - - if (timeout === 'auto') { - duration = theme.transitions.getAutoHeightDuration(node.clientHeight); - _this.autoTimeout = duration; - } else { - duration = transitionDuration; - } - - node.style.transition = [theme.transitions.create('opacity', { - duration: duration, - delay: delay - }), theme.transitions.create('transform', { - duration: duration * 0.666, - delay: delay || duration * 0.333 - })].join(','); - - node.style.opacity = '0'; - node.style.transform = getScale(0.75); - - if (_this.props.onExit) { - _this.props.onExit(node); - } - }, _this.addEndListener = function (_, next) { - if (_this.props.timeout === 'auto') { - _this.timer = setTimeout(next, _this.autoTimeout || 0); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Grow, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearTimeout(this.timer); - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - children = _props.children, - onEnter = _props.onEnter, - onExit = _props.onExit, - styleProp = _props.style, - theme = _props.theme, - timeout = _props.timeout, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onExit', 'style', 'theme', 'timeout']); - - - var style = (0, _extends3.default)({}, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); - - return _react2.default.createElement( - _Transition2.default, - (0, _extends3.default)({ - appear: true, - onEnter: this.handleEnter, - onExit: this.handleExit, - addEndListener: this.addEndListener, - timeout: timeout === 'auto' ? null : timeout - }, other), - function (state, childProps) { - return _react2.default.cloneElement(children, (0, _extends3.default)({ - style: (0, _extends3.default)({ - opacity: 0, - transform: getScale(0.75) - }, styles[state], style) - }, childProps)); - } - ); - } - }]); - return Grow; -}(_react2.default.Component); - -Grow.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * A single child content element. - */ - children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), - /** - * If `true`, show the component; triggers the enter or exit animation. - */ - in: _propTypes2.default.bool, - /** - * @ignore - */ - onEnter: _propTypes2.default.func, - /** - * @ignore - */ - onEntered: _propTypes2.default.func, - /** - * @ignore - */ - onEntering: _propTypes2.default.func, - /** - * @ignore - */ - onExit: _propTypes2.default.func, - /** - * @ignore - */ - style: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - * - * Set to 'auto' to automatically calculate transition time based on height. - */ - timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number }), _propTypes2.default.oneOf(['auto'])]) -} : {}; - -Grow.defaultProps = { - timeout: 'auto' -}; - -exports.default = (0, _withTheme2.default)()(Grow); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/transitions/Slide.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -exports.setTranslateValue = setTranslateValue; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); - -var _Transition2 = _interopRequireDefault(_Transition); - -var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); - -var _withTheme2 = _interopRequireDefault(_withTheme); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var GUTTER = 24; - -// Translate the node so he can't be seen on the screen. -// Later, we gonna translate back the node to his original location -// with `translate3d(0, 0, 0)`.` -// @inheritedComponent Transition - -function getTranslateValue(props, node) { - var direction = props.direction; - - var rect = node.getBoundingClientRect(); - - var transform = void 0; - - if (node.fakeTransform) { - transform = node.fakeTransform; - } else { - var computedStyle = window.getComputedStyle(node); - transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform'); - } - - var offsetX = 0; - var offsetY = 0; - - if (transform && transform !== 'none' && typeof transform === 'string') { - var transformValues = transform.split('(')[1].split(')')[0].split(','); - offsetX = parseInt(transformValues[4], 10); - offsetY = parseInt(transformValues[5], 10); - } - - if (direction === 'left') { - return 'translateX(100vw) translateX(-' + (rect.left - offsetX) + 'px)'; - } else if (direction === 'right') { - return 'translateX(-' + (rect.left + rect.width + GUTTER - offsetX) + 'px)'; - } else if (direction === 'up') { - return 'translateY(100vh) translateY(-' + (rect.top - offsetY) + 'px)'; - } - - // direction === 'down' - return 'translate3d(0, ' + (0 - (rect.top + rect.height)) + 'px, 0)'; -} - -function setTranslateValue(props, node) { - var transform = getTranslateValue(props, node); - - if (transform) { - node.style.transform = transform; - node.style.webkitTransform = transform; - } -} - -/** - * The Slide transition is used by the [Snackbar](/demos/snackbars) component. - * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. - */ - -var Slide = function (_React$Component) { - (0, _inherits3.default)(Slide, _React$Component); - - function Slide() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Slide); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Slide.__proto__ || (0, _getPrototypeOf2.default)(Slide)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - mounted: false - }, _this.transition = null, _this.handleResize = (0, _debounce2.default)(function () { - // Skip configuration where the position is screen size invariant. - if (_this.props.in || _this.props.direction === 'down' || _this.props.direction === 'right') { - return; - } - - var node = (0, _reactDom.findDOMNode)(_this.transition); - if (node) { - setTranslateValue(_this.props, node); - } - }, 166), _this.handleEnter = function (node) { - setTranslateValue(_this.props, node); - (0, _utils.reflow)(node); - - if (_this.props.onEnter) { - _this.props.onEnter(node); - } - }, _this.handleEntering = function (node) { - var theme = _this.props.theme; - - var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { - mode: 'enter' - }), - transitionDuration = _getTransitionProps.duration, - delay = _getTransitionProps.delay; - - node.style.transition = theme.transitions.create('transform', { - duration: transitionDuration, - easing: theme.transitions.easing.easeOut, - delay: delay - }); - node.style.webkitTransition = theme.transitions.create('-webkit-transform', { - duration: transitionDuration, - easing: theme.transitions.easing.easeOut, - delay: delay - }); - node.style.transform = 'translate3d(0, 0, 0)'; - node.style.webkitTransform = 'translate3d(0, 0, 0)'; - if (_this.props.onEntering) { - _this.props.onEntering(node); - } - }, _this.handleExit = function (node) { - var theme = _this.props.theme; - - var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { - mode: 'exit' - }), - transitionDuration = _getTransitionProps2.duration, - delay = _getTransitionProps2.delay; - - node.style.transition = theme.transitions.create('transform', { - duration: transitionDuration, - easing: theme.transitions.easing.sharp, - delay: delay - }); - node.style.webkitTransition = theme.transitions.create('-webkit-transform', { - duration: transitionDuration, - easing: theme.transitions.easing.sharp, - delay: delay - }); - setTranslateValue(_this.props, node); - - if (_this.props.onExit) { - _this.props.onExit(node); - } - }, _this.handleExited = function (node) { - // No need for transitions when the component is hidden - node.style.transition = ''; - node.style.webkitTransition = ''; - - if (_this.props.onExited) { - _this.props.onExited(node); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Slide, [{ - key: 'componentDidMount', - value: function componentDidMount() { - // state.mounted handle SSR, once the component is mounted, we need - // to properly hide it. - if (!this.props.in) { - // We need to set initial translate values of transition element - // otherwise component will be shown when in=false. - this.updatePosition(); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps() { - this.setState({ - mounted: true - }); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(prevProps) { - if (prevProps.direction !== this.props.direction && !this.props.in) { - // We need to update the position of the drawer when the direction change and - // when it's hidden. - this.updatePosition(); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.handleResize.cancel(); - } - }, { - key: 'updatePosition', - value: function updatePosition() { - var node = (0, _reactDom.findDOMNode)(this.transition); - if (node) { - node.style.visibility = 'inherit'; - setTranslateValue(this.props, node); - } - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - children = _props.children, - onEnter = _props.onEnter, - onEntering = _props.onEntering, - onExit = _props.onExit, - onExited = _props.onExited, - styleProp = _props.style, - theme = _props.theme, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onEntering', 'onExit', 'onExited', 'style', 'theme']); - - - var style = {}; - - // We use this state to handle the server-side rendering. - // We don't know the width of the children ahead of time. - // We need to render it. - if (!this.props.in && !this.state.mounted) { - style.visibility = 'hidden'; - } - - style = (0, _extends3.default)({}, style, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); - - return _react2.default.createElement( - _reactEventListener2.default, - { target: 'window', onResize: this.handleResize }, - _react2.default.createElement( - _Transition2.default, - (0, _extends3.default)({ - onEnter: this.handleEnter, - onEntering: this.handleEntering, - onExit: this.handleExit, - onExited: this.handleExited, - appear: true, - style: style, - ref: function ref(node) { - _this2.transition = node; - } - }, other), - children - ) - ); - } - }]); - return Slide; -}(_react2.default.Component); - -Slide.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * A single child content element. - */ - children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), - /** - * Direction the child node will enter from. - */ - direction: _propTypes2.default.oneOf(['left', 'right', 'up', 'down']), - /** - * If `true`, show the component; triggers the enter or exit animation. - */ - in: _propTypes2.default.bool, - /** - * @ignore - */ - onEnter: _propTypes2.default.func, - /** - * @ignore - */ - onEntered: _propTypes2.default.func, - /** - * @ignore - */ - onEntering: _propTypes2.default.func, - /** - * @ignore - */ - onExit: _propTypes2.default.func, - /** - * @ignore - */ - onExited: _propTypes2.default.func, - /** - * @ignore - */ - onExiting: _propTypes2.default.func, - /** - * @ignore - */ - style: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - */ - timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) -} : {}; - -Slide.defaultProps = { - direction: 'down', - timeout: { - enter: _transitions.duration.enteringScreen, - exit: _transitions.duration.leavingScreen - } -}; - -exports.default = (0, _withTheme2.default)()(Slide); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/transitions/Zoom.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); - -var _Transition2 = _interopRequireDefault(_Transition); - -var _transitions = __webpack_require__("./node_modules/material-ui/styles/transitions.js"); - -var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); - -var _withTheme2 = _interopRequireDefault(_withTheme); - -var _utils = __webpack_require__("./node_modules/material-ui/transitions/utils.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// @inheritedComponent Transition - -var styles = { - entering: { - transform: 'scale(1)' - }, - entered: { - transform: 'scale(1)' - } -}; - -/** - * The Zoom transition can be used for the floating variant of the - * [Button](https://material-ui-next.com/demos/buttons/#floating-action-buttons) component. - * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. - */ - -var Zoom = function (_React$Component) { - (0, _inherits3.default)(Zoom, _React$Component); - - function Zoom() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, Zoom); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Zoom.__proto__ || (0, _getPrototypeOf2.default)(Zoom)).call.apply(_ref, [this].concat(args))), _this), _this.handleEnter = function (node) { - var theme = _this.props.theme; - - (0, _utils.reflow)(node); // So the animation always start from the start. - - var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, { - mode: 'enter' - }), - transitionDuration = _getTransitionProps.duration, - delay = _getTransitionProps.delay; - - node.style.transition = theme.transitions.create('transform', { - duration: transitionDuration, - delay: delay - }); - node.style.webkitTransition = theme.transitions.create('transform', { - duration: transitionDuration, - delay: delay - }); - - if (_this.props.onEnter) { - _this.props.onEnter(node); - } - }, _this.handleExit = function (node) { - var theme = _this.props.theme; - - var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, { - mode: 'exit' - }), - transitionDuration = _getTransitionProps2.duration, - delay = _getTransitionProps2.delay; - - node.style.transition = theme.transitions.create('transform', { - duration: transitionDuration, - delay: delay - }); - node.style.webkitTransition = theme.transitions.create('transform', { - duration: transitionDuration, - delay: delay - }); - - if (_this.props.onExit) { - _this.props.onExit(node); - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(Zoom, [{ - key: 'render', - value: function render() { - var _props = this.props, - children = _props.children, - onEnter = _props.onEnter, - onExit = _props.onExit, - styleProp = _props.style, - theme = _props.theme, - other = (0, _objectWithoutProperties3.default)(_props, ['children', 'onEnter', 'onExit', 'style', 'theme']); - - - var style = (0, _extends3.default)({}, styleProp, _react2.default.isValidElement(children) ? children.props.style : {}); - - return _react2.default.createElement( - _Transition2.default, - (0, _extends3.default)({ appear: true, onEnter: this.handleEnter, onExit: this.handleExit }, other), - function (state, childProps) { - return _react2.default.cloneElement(children, (0, _extends3.default)({ - style: (0, _extends3.default)({ - transform: 'scale(0)' - }, styles[state], style) - }, childProps)); - } - ); - } - }]); - return Zoom; -}(_react2.default.Component); - -Zoom.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * A single child content element. - */ - children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]), - /** - * If `true`, the component will transition in. - */ - in: _propTypes2.default.bool, - /** - * @ignore - */ - onEnter: _propTypes2.default.func, - /** - * @ignore - */ - onExit: _propTypes2.default.func, - /** - * @ignore - */ - style: _propTypes2.default.object, - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * The duration for the transition, in milliseconds. - * You may specify a single timeout for all transitions, or individually with an object. - */ - timeout: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ enter: _propTypes2.default.number, exit: _propTypes2.default.number })]) -} : {}; - -Zoom.defaultProps = { - timeout: { - enter: _transitions.duration.enteringScreen, - exit: _transitions.duration.leavingScreen - } -}; - -exports.default = (0, _withTheme2.default)()(Zoom); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/transitions/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Slide = __webpack_require__("./node_modules/material-ui/transitions/Slide.js"); - -Object.defineProperty(exports, 'Slide', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Slide).default; - } -}); - -var _Grow = __webpack_require__("./node_modules/material-ui/transitions/Grow.js"); - -Object.defineProperty(exports, 'Grow', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Grow).default; - } -}); - -var _Fade = __webpack_require__("./node_modules/material-ui/transitions/Fade.js"); - -Object.defineProperty(exports, 'Fade', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Fade).default; - } -}); - -var _Collapse = __webpack_require__("./node_modules/material-ui/transitions/Collapse.js"); - -Object.defineProperty(exports, 'Collapse', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Collapse).default; - } -}); - -var _Zoom = __webpack_require__("./node_modules/material-ui/transitions/Zoom.js"); - -Object.defineProperty(exports, 'Zoom', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Zoom).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/material-ui/transitions/utils.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getTransitionProps = getTransitionProps; -var reflow = exports.reflow = function reflow(node) { - return node.scrollTop; -}; - -function getTransitionProps(props, options) { - var timeout = props.timeout, - _props$style = props.style, - style = _props$style === undefined ? {} : _props$style; - - - return { - duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode], - delay: style.transitionDelay - }; -} - -/***/ }), - -/***/ "./node_modules/material-ui/utils/ClickAwayListener.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var isDescendant = function isDescendant(el, target) { - if (target !== null && target.parentNode) { - return el === target || isDescendant(el, target.parentNode); - } - return false; -}; - -/** - * Listen for click events that are triggered outside of the component children. - */ - -var ClickAwayListener = function (_React$Component) { - (0, _inherits3.default)(ClickAwayListener, _React$Component); - - function ClickAwayListener() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, ClickAwayListener); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ClickAwayListener.__proto__ || (0, _getPrototypeOf2.default)(ClickAwayListener)).call.apply(_ref, [this].concat(args))), _this), _this.mounted = false, _this.handleClickAway = function (event) { - // Ignore events that have been `event.preventDefault()` marked. - if (event.defaultPrevented) { - return; - } - - // IE11 support, which trigger the handleClickAway even after the unbind - if (_this.mounted) { - var el = (0, _reactDom.findDOMNode)(_this); - - if (document.documentElement && document.documentElement.contains(event.target) && !isDescendant(el, event.target)) { - _this.props.onClickAway(event); - } - } - }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(ClickAwayListener, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.mounted = true; - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.mounted = false; - } - }, { - key: 'render', - value: function render() { - return _react2.default.createElement( - _reactEventListener2.default, - { - target: 'document', - onMouseup: this.handleClickAway, - onTouchend: this.handleClickAway - }, - this.props.children - ); - } - }]); - return ClickAwayListener; -}(_react2.default.Component); - -ClickAwayListener.propTypes = process.env.NODE_ENV !== "production" ? { - children: _propTypes2.default.node.isRequired, - onClickAway: _propTypes2.default.func.isRequired -} : {}; - -exports.default = ClickAwayListener; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/utils/addEventListener.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (node, event, handler, capture) { - node.addEventListener(event, handler, capture); - return { - remove: function remove() { - node.removeEventListener(event, handler, capture); - } - }; -}; - -/***/ }), - -/***/ "./node_modules/material-ui/utils/exactProp.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.specialProperty = undefined; - -var _defineProperty2 = __webpack_require__("./node_modules/babel-runtime/helpers/defineProperty.js"); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _extends3 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends4 = _interopRequireDefault(_extends3); - -exports.default = exactProp; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// This module is based on https://github.com/airbnb/prop-types-exact repository. -// However, in order to reduce the number of dependencies and to remove some extra safe checks -// the module was forked. - -var specialProperty = exports.specialProperty = 'exact-prop: \u200B'; - -function exactProp(propTypes, componentNameInError) { - return (0, _extends4.default)({}, propTypes, (0, _defineProperty3.default)({}, specialProperty, function (props) { - var unknownProps = (0, _keys2.default)(props).filter(function (prop) { - return !propTypes.hasOwnProperty(prop); - }); - if (unknownProps.length > 0) { - return new TypeError(componentNameInError + ': unknown props found: ' + unknownProps.join(', ') + '. Please remove the unknown properties.'); - } - return null; - })); -} - -/***/ }), - -/***/ "./node_modules/material-ui/utils/helpers.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -exports.capitalize = capitalize; -exports.contains = contains; -exports.findIndex = findIndex; -exports.find = find; -exports.createChainedFunction = createChainedFunction; - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function capitalize(string) { - if (process.env.NODE_ENV !== 'production' && typeof string !== 'string') { - throw new Error('Material-UI: capitalize(string) expects a string argument.'); - } - - return string.charAt(0).toUpperCase() + string.slice(1); -} // weak - -function contains(obj, pred) { - return (0, _keys2.default)(pred).every(function (key) { - return obj.hasOwnProperty(key) && obj[key] === pred[key]; - }); -} - -function findIndex(arr, pred) { - var predType = typeof pred === 'undefined' ? 'undefined' : (0, _typeof3.default)(pred); - for (var i = 0; i < arr.length; i += 1) { - if (predType === 'function' && !!pred(arr[i], i, arr) === true) { - return i; - } - if (predType === 'object' && contains(arr[i], pred)) { - return i; - } - if (['string', 'number', 'boolean'].indexOf(predType) !== -1) { - return arr.indexOf(pred); - } - } - return -1; -} - -function find(arr, pred) { - var index = findIndex(arr, pred); - return index > -1 ? arr[index] : undefined; -} - -/** - * Safe chained function - * - * Will only create a new function if needed, - * otherwise will pass back existing functions or null. - * - * @param {function} functions to chain - * @returns {function|null} - */ -function createChainedFunction() { - for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { - funcs[_key] = arguments[_key]; - } - - return funcs.filter(function (func) { - return func != null; - }).reduce(function (acc, func) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(typeof func === 'function', 'Material-UI: invalid Argument Type, must only provide functions, undefined, or null.') : void 0; - - return function chainedFunction() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - acc.apply(this, args); - func.apply(this, args); - }; - }, function () {}); -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/utils/keyboardFocus.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.focusKeyPressed = focusKeyPressed; -exports.detectKeyboardFocus = detectKeyboardFocus; -exports.listenForFocusKeys = listenForFocusKeys; - -var _keycode = __webpack_require__("./node_modules/keycode/index.js"); - -var _keycode2 = _interopRequireDefault(_keycode); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _contains = __webpack_require__("./node_modules/dom-helpers/query/contains.js"); - -var _contains2 = _interopRequireDefault(_contains); - -var _ownerDocument = __webpack_require__("./node_modules/dom-helpers/ownerDocument.js"); - -var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// weak - -var internal = { - focusKeyPressed: false -}; - -function focusKeyPressed(pressed) { - if (typeof pressed !== 'undefined') { - internal.focusKeyPressed = Boolean(pressed); - } - - return internal.focusKeyPressed; -} - -function detectKeyboardFocus(instance, element, callback) { - var attempt = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; - - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(instance.keyboardFocusCheckTime, 'Material-UI: missing instance.keyboardFocusCheckTime') : void 0; - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(instance.keyboardFocusMaxCheckTimes, 'Material-UI: missing instance.keyboardFocusMaxCheckTimes') : void 0; - - instance.keyboardFocusTimeout = setTimeout(function () { - var doc = (0, _ownerDocument2.default)(element); - - if (focusKeyPressed() && (doc.activeElement === element || (0, _contains2.default)(element, doc.activeElement))) { - callback(); - } else if (attempt < instance.keyboardFocusMaxCheckTimes) { - detectKeyboardFocus(instance, element, callback, attempt + 1); - } - }, instance.keyboardFocusCheckTime); -} - -var FOCUS_KEYS = ['tab', 'enter', 'space', 'esc', 'up', 'down', 'left', 'right']; - -function isFocusKey(event) { - return FOCUS_KEYS.indexOf((0, _keycode2.default)(event)) !== -1; -} - -var handleKeyUpEvent = function handleKeyUpEvent(event) { - if (isFocusKey(event)) { - internal.focusKeyPressed = true; - } -}; - -function listenForFocusKeys(win) { - // The event listener will only be added once per window. - // Duplicate event listeners will be ignored by addEventListener. - // Also, this logic is client side only, we don't need a teardown. - win.addEventListener('keyup', handleKeyUpEvent); -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/material-ui/utils/reactHelpers.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.cloneChildrenWithClassName = cloneChildrenWithClassName; -exports.isMuiElement = isMuiElement; -exports.isMuiComponent = isMuiComponent; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* eslint-disable import/prefer-default-export */ - -function cloneChildrenWithClassName(children, className) { - return _react2.default.Children.map(children, function (child) { - return _react2.default.isValidElement(child) && _react2.default.cloneElement(child, { - className: (0, _classnames2.default)(child.props.className, className) - }); - }); -} - -function isMuiElement(element, muiNames) { - return _react2.default.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1; -} - -function isMuiComponent(element, muiNames) { - return muiNames.indexOf(element.muiName) !== -1; -} - -/***/ }), - -/***/ "./node_modules/material-ui/utils/requirePropFactory.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// weak - -var requirePropFactory = function requirePropFactory(componentNameInError) { - var requireProp = function requireProp(requiredProp) { - return function (props, propName, componentName, location, propFullName) { - var propFullNameSafe = propFullName || propName; - - if (typeof props[propName] !== 'undefined' && !props[requiredProp]) { - return new Error('The property `' + propFullNameSafe + '` of ' + ('`' + componentNameInError + '` must be used on `' + requiredProp + '`.')); - } - - return null; - }; - }; - return requireProp; -}; - -exports.default = requirePropFactory; - -/***/ }), - -/***/ "./node_modules/material-ui/utils/withWidth.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isWidthDown = exports.isWidthUp = undefined; - -var _extends2 = __webpack_require__("./node_modules/babel-runtime/helpers/extends.js"); - -var _extends3 = _interopRequireDefault(_extends2); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _debounce = __webpack_require__("./node_modules/lodash/debounce.js"); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); - -var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); - -var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); - -var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); - -var _withTheme = __webpack_require__("./node_modules/material-ui/styles/withTheme.js"); - -var _withTheme2 = _interopRequireDefault(_withTheme); - -var _createBreakpoints = __webpack_require__("./node_modules/material-ui/styles/createBreakpoints.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// By default, returns true if screen width is the same or greater than the given breakpoint. -var isWidthUp = exports.isWidthUp = function isWidthUp(breakpoint, width) { - var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - - if (inclusive) { - return _createBreakpoints.keys.indexOf(breakpoint) <= _createBreakpoints.keys.indexOf(width); - } - return _createBreakpoints.keys.indexOf(breakpoint) < _createBreakpoints.keys.indexOf(width); -}; - -// By default, returns true if screen width is the same or less than the given breakpoint. -var isWidthDown = exports.isWidthDown = function isWidthDown(breakpoint, width) { - var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - - if (inclusive) { - return _createBreakpoints.keys.indexOf(width) <= _createBreakpoints.keys.indexOf(breakpoint); - } - return _createBreakpoints.keys.indexOf(width) < _createBreakpoints.keys.indexOf(breakpoint); -}; - -var withWidth = function withWidth() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return function (Component) { - var _options$resizeInterv = options.resizeInterval, - resizeInterval = _options$resizeInterv === undefined ? 166 : _options$resizeInterv, - _options$withTheme = options.withTheme, - withThemeOption = _options$withTheme === undefined ? false : _options$withTheme; - - var WithWidth = function (_React$Component) { - (0, _inherits3.default)(WithWidth, _React$Component); - - function WithWidth() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, WithWidth); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = WithWidth.__proto__ || (0, _getPrototypeOf2.default)(WithWidth)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - width: undefined - }, _this.handleResize = (0, _debounce2.default)(function () { - _this.updateWidth(window.innerWidth); - }, resizeInterval), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(WithWidth, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.updateWidth(window.innerWidth); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.handleResize.cancel(); - } - }, { - key: 'updateWidth', - value: function updateWidth(innerWidth) { - var breakpoints = this.props.theme.breakpoints; - var width = null; - - /** - * Start with the slowest value as low end devices often have a small screen. - * - * innerWidth |xs sm md lg xl - * |-------|-------|-------|-------|------> - * width | xs | sm | md | lg | xl - */ - var index = 1; - while (width === null && index < _createBreakpoints.keys.length) { - var currentWidth = _createBreakpoints.keys[index]; - - // @media are inclusive, so reproduce the behavior here. - if (innerWidth < breakpoints.values[currentWidth]) { - width = _createBreakpoints.keys[index - 1]; - break; - } - - index += 1; - } - - width = width || 'xl'; - - if (width !== this.state.width) { - this.setState({ - width: width - }); - } - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - initialWidth = _props.initialWidth, - theme = _props.theme, - width = _props.width, - other = (0, _objectWithoutProperties3.default)(_props, ['initialWidth', 'theme', 'width']); - - var props = (0, _extends3.default)({ - width: width || this.state.width || initialWidth - }, other); - var more = {}; - - if (withThemeOption) { - more.theme = theme; - } - - // When rendering the component on the server, - // we have no idea about the client browser screen width. - // In order to prevent blinks and help the reconciliation of the React tree - // we are not rendering the child component. - // - // An alternative is to use the `initialWidth` property. - if (props.width === undefined) { - return null; - } - - return _react2.default.createElement( - _reactEventListener2.default, - { target: 'window', onResize: this.handleResize }, - _react2.default.createElement(Component, (0, _extends3.default)({}, more, props)) - ); - } - }]); - return WithWidth; - }(_react2.default.Component); - - WithWidth.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * As `window.innerWidth` is unavailable on the server, - * we default to rendering an empty componenent during the first mount. - * In some situation you might want to use an heristic to approximate - * the screen width of the client browser screen width. - * - * For instance, you could be using the user-agent or the client-hints. - * http://caniuse.com/#search=client%20hint - */ - initialWidth: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), - /** - * @ignore - */ - theme: _propTypes2.default.object.isRequired, - /** - * Bypass the width calculation logic. - */ - width: _propTypes2.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']) - } : {}; - - if (process.env.NODE_ENV !== 'production') { - WithWidth.displayName = (0, _wrapDisplayName2.default)(Component, 'WithWidth'); - } - - (0, _hoistNonReactStatics2.default)(WithWidth, Component); - - return (0, _withTheme2.default)()(WithWidth); - }; -}; - -exports.default = withWidth; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/mqtt-packet/constants.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer - -/* Protocol - protocol constants */ -var protocol = module.exports - -/* Command code => mnemonic */ -protocol.types = { - 0: 'reserved', - 1: 'connect', - 2: 'connack', - 3: 'publish', - 4: 'puback', - 5: 'pubrec', - 6: 'pubrel', - 7: 'pubcomp', - 8: 'subscribe', - 9: 'suback', - 10: 'unsubscribe', - 11: 'unsuback', - 12: 'pingreq', - 13: 'pingresp', - 14: 'disconnect', - 15: 'reserved' -} - -/* Mnemonic => Command code */ -protocol.codes = {} -for (var k in protocol.types) { - var v = protocol.types[k] - protocol.codes[v] = k -} - -/* Header */ -protocol.CMD_SHIFT = 4 -protocol.CMD_MASK = 0xF0 -protocol.DUP_MASK = 0x08 -protocol.QOS_MASK = 0x03 -protocol.QOS_SHIFT = 1 -protocol.RETAIN_MASK = 0x01 - -/* Length */ -protocol.LENGTH_MASK = 0x7F -protocol.LENGTH_FIN_MASK = 0x80 - -/* Connack */ -protocol.SESSIONPRESENT_MASK = 0x01 -protocol.SESSIONPRESENT_HEADER = Buffer.from([protocol.SESSIONPRESENT_MASK]) -protocol.CONNACK_HEADER = Buffer.from([protocol.codes['connack'] << protocol.CMD_SHIFT]) - -/* Connect */ -protocol.USERNAME_MASK = 0x80 -protocol.PASSWORD_MASK = 0x40 -protocol.WILL_RETAIN_MASK = 0x20 -protocol.WILL_QOS_MASK = 0x18 -protocol.WILL_QOS_SHIFT = 3 -protocol.WILL_FLAG_MASK = 0x04 -protocol.CLEAN_SESSION_MASK = 0x02 -protocol.CONNECT_HEADER = Buffer.from([protocol.codes['connect'] << protocol.CMD_SHIFT]) - -function genHeader (type) { - return [0, 1, 2].map(function (qos) { - return [0, 1].map(function (dup) { - return [0, 1].map(function (retain) { - var buf = new Buffer(1) - buf.writeUInt8( - protocol.codes[type] << protocol.CMD_SHIFT | - (dup ? protocol.DUP_MASK : 0) | - qos << protocol.QOS_SHIFT | retain, 0, true) - return buf - }) - }) - }) -} - -/* Publish */ -protocol.PUBLISH_HEADER = genHeader('publish') - -/* Subscribe */ -protocol.SUBSCRIBE_HEADER = genHeader('subscribe') - -/* Unsubscribe */ -protocol.UNSUBSCRIBE_HEADER = genHeader('unsubscribe') - -/* Confirmations */ -protocol.ACKS = { - unsuback: genHeader('unsuback'), - puback: genHeader('puback'), - pubcomp: genHeader('pubcomp'), - pubrel: genHeader('pubrel'), - pubrec: genHeader('pubrec') -} - -protocol.SUBACK_HEADER = Buffer.from([protocol.codes['suback'] << protocol.CMD_SHIFT]) - -/* Protocol versions */ -protocol.VERSION3 = Buffer.from([3]) -protocol.VERSION4 = Buffer.from([4]) - -/* QoS */ -protocol.QOS = [0, 1, 2].map(function (qos) { - return Buffer.from([qos]) -}) - -/* Empty packets */ -protocol.EMPTY = { - pingreq: Buffer.from([protocol.codes['pingreq'] << 4, 0]), - pingresp: Buffer.from([protocol.codes['pingresp'] << 4, 0]), - disconnect: Buffer.from([protocol.codes['disconnect'] << 4, 0]) -} - - -/***/ }), - -/***/ "./node_modules/mqtt-packet/generate.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer -var writeToStream = __webpack_require__("./node_modules/mqtt-packet/writeToStream.js") -var EE = __webpack_require__("./node_modules/events/events.js").EventEmitter -var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") - -function generate (packet) { - var stream = new Accumulator() - writeToStream(packet, stream) - return stream.concat() -} - -function Accumulator () { - this._array = new Array(20) - this._i = 0 -} - -inherits(Accumulator, EE) - -Accumulator.prototype.write = function (chunk) { - this._array[this._i++] = chunk - return true -} - -Accumulator.prototype.concat = function () { - var length = 0 - var lengths = new Array(this._array.length) - var list = this._array - var pos = 0 - var i - var result - - for (i = 0; i < list.length && list[i]; i++) { - if (typeof list[i] !== 'string') lengths[i] = list[i].length - else lengths[i] = Buffer.byteLength(list[i]) - - length += lengths[i] - } - - result = Buffer.allocUnsafe(length) - - for (i = 0; i < list.length && list[i]; i++) { - if (typeof list[i] !== 'string') { - list[i].copy(result, pos) - pos += lengths[i] - } else { - result.write(list[i], pos) - pos += lengths[i] - } - } - - return result -} - -module.exports = generate - - -/***/ }), - -/***/ "./node_modules/mqtt-packet/mqtt.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.parser = __webpack_require__("./node_modules/mqtt-packet/parser.js") -exports.generate = __webpack_require__("./node_modules/mqtt-packet/generate.js") -exports.writeToStream = __webpack_require__("./node_modules/mqtt-packet/writeToStream.js") - - -/***/ }), - -/***/ "./node_modules/mqtt-packet/numbers.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer -var max = 65536 -var cache = {} - -function generateBuffer (i) { - var buffer = Buffer.allocUnsafe(2) - buffer.writeUInt8(i >> 8, 0, true) - buffer.writeUInt8(i & 0x00FF, 0 + 1, true) - - return buffer -} - -function generateCache () { - for (var i = 0; i < max; i++) { - cache[i] = generateBuffer(i) - } -} - -module.exports = { - cache: cache, - generateCache: generateCache, - generateNumber: generateBuffer -} - - -/***/ }), - -/***/ "./node_modules/mqtt-packet/packet.js": -/***/ (function(module, exports) { - - -function Packet () { - this.cmd = null - this.retain = false - this.qos = 0 - this.dup = false - this.length = -1 - this.topic = null - this.payload = null -} - -module.exports = Packet - - -/***/ }), - -/***/ "./node_modules/mqtt-packet/parser.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var bl = __webpack_require__("./node_modules/bl/bl.js") -var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") -var EE = __webpack_require__("./node_modules/events/events.js").EventEmitter -var Packet = __webpack_require__("./node_modules/mqtt-packet/packet.js") -var constants = __webpack_require__("./node_modules/mqtt-packet/constants.js") - -function Parser () { - if (!(this instanceof Parser)) return new Parser() - - this._states = [ - '_parseHeader', - '_parseLength', - '_parsePayload', - '_newPacket' - ] - - this._resetState() -} - -inherits(Parser, EE) - -Parser.prototype._resetState = function () { - this.packet = new Packet() - this.error = null - this._list = bl() - this._stateCounter = 0 -} - -Parser.prototype.parse = function (buf) { - if (this.error) this._resetState() - - this._list.append(buf) - - while ((this.packet.length !== -1 || this._list.length > 0) && - this[this._states[this._stateCounter]]() && - !this.error) { - this._stateCounter++ - - if (this._stateCounter >= this._states.length) this._stateCounter = 0 - } - - return this._list.length -} - -Parser.prototype._parseHeader = function () { - // There is at least one byte in the buffer - var zero = this._list.readUInt8(0) - this.packet.cmd = constants.types[zero >> constants.CMD_SHIFT] - this.packet.retain = (zero & constants.RETAIN_MASK) !== 0 - this.packet.qos = (zero >> constants.QOS_SHIFT) & constants.QOS_MASK - this.packet.dup = (zero & constants.DUP_MASK) !== 0 - - this._list.consume(1) - - return true -} - -Parser.prototype._parseLength = function () { - // There is at least one byte in the list - var bytes = 0 - var mul = 1 - var length = 0 - var result = true - var current - - while (bytes < 5) { - current = this._list.readUInt8(bytes++) - length += mul * (current & constants.LENGTH_MASK) - mul *= 0x80 - - if ((current & constants.LENGTH_FIN_MASK) === 0) break - if (this._list.length <= bytes) { - result = false - break - } - } - - if (result) { - this.packet.length = length - this._list.consume(bytes) - } - - return result -} - -Parser.prototype._parsePayload = function () { - var result = false - - // Do we have a payload? Do we have enough data to complete the payload? - // PINGs have no payload - if (this.packet.length === 0 || this._list.length >= this.packet.length) { - this._pos = 0 - - switch (this.packet.cmd) { - case 'connect': - this._parseConnect() - break - case 'connack': - this._parseConnack() - break - case 'publish': - this._parsePublish() - break - case 'puback': - case 'pubrec': - case 'pubrel': - case 'pubcomp': - this._parseMessageId() - break - case 'subscribe': - this._parseSubscribe() - break - case 'suback': - this._parseSuback() - break - case 'unsubscribe': - this._parseUnsubscribe() - break - case 'unsuback': - this._parseUnsuback() - break - case 'pingreq': - case 'pingresp': - case 'disconnect': - // These are empty, nothing to do - break - default: - this._emitError(new Error('Not supported')) - } - - result = true - } - - return result -} - -Parser.prototype._parseConnect = function () { - var protocolId // Protocol ID - var clientId // Client ID - var topic // Will topic - var payload // Will payload - var password // Password - var username // Username - var flags = {} - var packet = this.packet - - // Parse protocolId - protocolId = this._parseString() - - if (protocolId === null) return this._emitError(new Error('Cannot parse protocolId')) - if (protocolId !== 'MQTT' && protocolId !== 'MQIsdp') { - return this._emitError(new Error('Invalid protocolId')) - } - - packet.protocolId = protocolId - - // Parse constants version number - if (this._pos >= this._list.length) return this._emitError(new Error('Packet too short')) - - packet.protocolVersion = this._list.readUInt8(this._pos) - - if (packet.protocolVersion !== 3 && packet.protocolVersion !== 4) { - return this._emitError(new Error('Invalid protocol version')) - } - - this._pos++ - - if (this._pos >= this._list.length) { - return this._emitError(new Error('Packet too short')) - } - - // Parse connect flags - flags.username = (this._list.readUInt8(this._pos) & constants.USERNAME_MASK) - flags.password = (this._list.readUInt8(this._pos) & constants.PASSWORD_MASK) - flags.will = (this._list.readUInt8(this._pos) & constants.WILL_FLAG_MASK) - - if (flags.will) { - packet.will = {} - packet.will.retain = (this._list.readUInt8(this._pos) & constants.WILL_RETAIN_MASK) !== 0 - packet.will.qos = (this._list.readUInt8(this._pos) & - constants.WILL_QOS_MASK) >> constants.WILL_QOS_SHIFT - } - - packet.clean = (this._list.readUInt8(this._pos) & constants.CLEAN_SESSION_MASK) !== 0 - this._pos++ - - // Parse keepalive - packet.keepalive = this._parseNum() - if (packet.keepalive === -1) return this._emitError(new Error('Packet too short')) - - // Parse clientId - clientId = this._parseString() - if (clientId === null) return this._emitError(new Error('Packet too short')) - packet.clientId = clientId - - if (flags.will) { - // Parse will topic - topic = this._parseString() - if (topic === null) return this._emitError(new Error('Cannot parse will topic')) - packet.will.topic = topic - - // Parse will payload - payload = this._parseBuffer() - if (payload === null) return this._emitError(new Error('Cannot parse will payload')) - packet.will.payload = payload - } - - // Parse username - if (flags.username) { - username = this._parseString() - if (username === null) return this._emitError(new Error('Cannot parse username')) - packet.username = username - } - - // Parse password - if (flags.password) { - password = this._parseBuffer() - if (password === null) return this._emitError(new Error('Cannot parse password')) - packet.password = password - } - - return packet -} - -Parser.prototype._parseConnack = function () { - var packet = this.packet - - if (this._list.length < 2) return null - - packet.sessionPresent = !!(this._list.readUInt8(this._pos++) & constants.SESSIONPRESENT_MASK) - packet.returnCode = this._list.readUInt8(this._pos) - - if (packet.returnCode === -1) return this._emitError(new Error('Cannot parse return code')) -} - -Parser.prototype._parsePublish = function () { - var packet = this.packet - packet.topic = this._parseString() - - if (packet.topic === null) return this._emitError(new Error('Cannot parse topic')) - - // Parse messageId - if (packet.qos > 0) if (!this._parseMessageId()) { return } - - packet.payload = this._list.slice(this._pos, packet.length) -} - -Parser.prototype._parseSubscribe = function () { - var packet = this.packet - var topic - var qos - - if (packet.qos !== 1) { - return this._emitError(new Error('Wrong subscribe header')) - } - - packet.subscriptions = [] - - if (!this._parseMessageId()) { return } - - while (this._pos < packet.length) { - // Parse topic - topic = this._parseString() - if (topic === null) return this._emitError(new Error('Cannot parse topic')) - - qos = this._list.readUInt8(this._pos++) - - // Push pair to subscriptions - packet.subscriptions.push({ topic: topic, qos: qos }) - } -} - -Parser.prototype._parseSuback = function () { - this.packet.granted = [] - - if (!this._parseMessageId()) { return } - - // Parse granted QoSes - while (this._pos < this.packet.length) { - this.packet.granted.push(this._list.readUInt8(this._pos++)) - } -} - -Parser.prototype._parseUnsubscribe = function () { - var packet = this.packet - - packet.unsubscriptions = [] - - // Parse messageId - if (!this._parseMessageId()) { return } - - while (this._pos < packet.length) { - var topic - - // Parse topic - topic = this._parseString() - if (topic === null) return this._emitError(new Error('Cannot parse topic')) - - // Push topic to unsubscriptions - packet.unsubscriptions.push(topic) - } -} - -Parser.prototype._parseUnsuback = function () { - if (!this._parseMessageId()) return this._emitError(new Error('Cannot parse messageId')) -} - -Parser.prototype._parseMessageId = function () { - var packet = this.packet - - packet.messageId = this._parseNum() - - if (packet.messageId === null) { - this._emitError(new Error('Cannot parse messageId')) - return false - } - - return true -} - -Parser.prototype._parseString = function (maybeBuffer) { - var length = this._parseNum() - var result - var end = length + this._pos - - if (length === -1 || end > this._list.length || end > this.packet.length) return null - - result = this._list.toString('utf8', this._pos, end) - this._pos += length - - return result -} - -Parser.prototype._parseBuffer = function () { - var length = this._parseNum() - var result - var end = length + this._pos - - if (length === -1 || end > this._list.length || end > this.packet.length) return null - - result = this._list.slice(this._pos, end) - - this._pos += length - - return result -} - -Parser.prototype._parseNum = function () { - if (this._list.length - this._pos < 2) return -1 - - var result = this._list.readUInt16BE(this._pos) - this._pos += 2 - - return result -} - -Parser.prototype._newPacket = function () { - if (this.packet) { - this._list.consume(this.packet.length) - this.emit('packet', this.packet) - } - - this.packet = new Packet() - - return true -} - -Parser.prototype._emitError = function (err) { - this.error = err - this.emit('error', err) -} - -module.exports = Parser - - -/***/ }), - -/***/ "./node_modules/mqtt-packet/writeToStream.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var protocol = __webpack_require__("./node_modules/mqtt-packet/constants.js") -var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer -var empty = Buffer.allocUnsafe(0) -var zeroBuf = Buffer.from([0]) -var numbers = __webpack_require__("./node_modules/mqtt-packet/numbers.js") -var nextTick = __webpack_require__("./node_modules/process-nextick-args/index.js") - -var numCache = numbers.cache -var generateNumber = numbers.generateNumber -var generateCache = numbers.generateCache -var writeNumber = writeNumberCached -var toGenerate = true - -function generate (packet, stream) { - if (stream.cork) { - stream.cork() - nextTick(uncork, stream) - } - - if (toGenerate) { - toGenerate = false - generateCache() - } - - switch (packet.cmd) { - case 'connect': - return connect(packet, stream) - case 'connack': - return connack(packet, stream) - case 'publish': - return publish(packet, stream) - case 'puback': - case 'pubrec': - case 'pubrel': - case 'pubcomp': - case 'unsuback': - return confirmation(packet, stream) - case 'subscribe': - return subscribe(packet, stream) - case 'suback': - return suback(packet, stream) - case 'unsubscribe': - return unsubscribe(packet, stream) - case 'pingreq': - case 'pingresp': - case 'disconnect': - return emptyPacket(packet, stream) - default: - stream.emit('error', new Error('Unknown command')) - return false - } -} -/** - * Controls numbers cache. - * Set to "false" to allocate buffers on-the-flight instead of pre-generated cache - */ -Object.defineProperty(generate, 'cacheNumbers', { - get: function () { - return writeNumber === writeNumberCached - }, - set: function (value) { - if (value) { - if (!numCache || Object.keys(numCache).length === 0) toGenerate = true - writeNumber = writeNumberCached - } else { - toGenerate = false - writeNumber = writeNumberGenerated - } - } -}) - -function uncork (stream) { - stream.uncork() -} - -function connect (opts, stream) { - var settings = opts || {} - var protocolId = settings.protocolId || 'MQTT' - var protocolVersion = settings.protocolVersion || 4 - var will = settings.will - var clean = settings.clean - var keepalive = settings.keepalive || 0 - var clientId = settings.clientId || '' - var username = settings.username - var password = settings.password - - if (clean === undefined) clean = true - - var length = 0 - - // Must be a string and non-falsy - if (!protocolId || - (typeof protocolId !== 'string' && !Buffer.isBuffer(protocolId))) { - stream.emit('error', new Error('Invalid protocolId')) - return false - } else length += protocolId.length + 2 - - // Must be 3 or 4 - if (protocolVersion !== 3 && protocolVersion !== 4) { - stream.emit('error', new Error('Invalid protocol version')) - return false - } else length += 1 - - // ClientId might be omitted in 3.1.1, but only if cleanSession is set to 1 - if ((typeof clientId === 'string' || Buffer.isBuffer(clientId)) && - (clientId || protocolVersion === 4) && (clientId || clean)) { - length += clientId.length + 2 - } else { - if (protocolVersion < 4) { - stream.emit('error', new Error('clientId must be supplied before 3.1.1')) - return false - } - if ((clean * 1) === 0) { - stream.emit('error', new Error('clientId must be given if cleanSession set to 0')) - return false - } - } - - // Must be a two byte number - if (typeof keepalive !== 'number' || - keepalive < 0 || - keepalive > 65535 || - keepalive % 1 !== 0) { - stream.emit('error', new Error('Invalid keepalive')) - return false - } else length += 2 - - // Connect flags - length += 1 - - // If will exists... - if (will) { - // It must be an object - if (typeof will !== 'object') { - stream.emit('error', new Error('Invalid will')) - return false - } - // It must have topic typeof string - if (!will.topic || typeof will.topic !== 'string') { - stream.emit('error', new Error('Invalid will topic')) - return false - } else { - length += Buffer.byteLength(will.topic) + 2 - } - - // Payload - if (will.payload && will.payload) { - if (will.payload.length >= 0) { - if (typeof will.payload === 'string') { - length += Buffer.byteLength(will.payload) + 2 - } else { - length += will.payload.length + 2 - } - } else { - stream.emit('error', new Error('Invalid will payload')) - return false - } - } else { - length += 2 - } - } - - // Username - if (username) { - if (username.length) { - length += Buffer.byteLength(username) + 2 - } else { - stream.emit('error', new Error('Invalid username')) - return false - } - } - - // Password - if (password) { - if (password.length) { - length += byteLength(password) + 2 - } else { - stream.emit('error', new Error('Invalid password')) - return false - } - } - - // Generate header - stream.write(protocol.CONNECT_HEADER) - - // Generate length - writeLength(stream, length) - - // Generate protocol ID - writeStringOrBuffer(stream, protocolId) - stream.write( - protocolVersion === 4 ? protocol.VERSION4 : protocol.VERSION3 - ) - - // Connect flags - var flags = 0 - flags |= username ? protocol.USERNAME_MASK : 0 - flags |= password ? protocol.PASSWORD_MASK : 0 - flags |= (will && will.retain) ? protocol.WILL_RETAIN_MASK : 0 - flags |= (will && will.qos) ? will.qos << protocol.WILL_QOS_SHIFT : 0 - flags |= will ? protocol.WILL_FLAG_MASK : 0 - flags |= clean ? protocol.CLEAN_SESSION_MASK : 0 - - stream.write(Buffer.from([flags])) - - // Keepalive - writeNumber(stream, keepalive) - - // Client ID - writeStringOrBuffer(stream, clientId) - - // Will - if (will) { - writeString(stream, will.topic) - writeStringOrBuffer(stream, will.payload) - } - - // Username and password - if (username) writeStringOrBuffer(stream, username) - if (password) writeStringOrBuffer(stream, password) - - // This is a small packet that happens only once on a stream - // We assume the stream is always free to receive more data after this - return true -} - -function connack (opts, stream) { - var settings = opts || {} - var rc = settings.returnCode - - // Check return code - if (typeof rc !== 'number') { - stream.emit('error', new Error('Invalid return code')) - return false - } - - stream.write(protocol.CONNACK_HEADER) - writeLength(stream, 2) - stream.write(opts.sessionPresent ? protocol.SESSIONPRESENT_HEADER : zeroBuf) - - return stream.write(Buffer.from([rc])) -} - -function publish (opts, stream) { - var settings = opts || {} - var qos = settings.qos || 0 - var retain = settings.retain ? protocol.RETAIN_MASK : 0 - var topic = settings.topic - var payload = settings.payload || empty - var id = settings.messageId - - var length = 0 - - // Topic must be a non-empty string or Buffer - if (typeof topic === 'string') length += Buffer.byteLength(topic) + 2 - else if (Buffer.isBuffer(topic)) length += topic.length + 2 - else { - stream.emit('error', new Error('Invalid topic')) - return false - } - - // Get the payload length - if (!Buffer.isBuffer(payload)) length += Buffer.byteLength(payload) - else length += payload.length - - // Message ID must a number if qos > 0 - if (qos && typeof id !== 'number') { - stream.emit('error', new Error('Invalid messageId')) - return false - } else if (qos) length += 2 - - // Header - stream.write(protocol.PUBLISH_HEADER[qos][opts.dup ? 1 : 0][retain ? 1 : 0]) - - // Remaining length - writeLength(stream, length) - - // Topic - writeNumber(stream, byteLength(topic)) - stream.write(topic) - - // Message ID - if (qos > 0) writeNumber(stream, id) - - // Payload - return stream.write(payload) -} - -/* Puback, pubrec, pubrel and pubcomp */ -function confirmation (opts, stream) { - var settings = opts || {} - var type = settings.cmd || 'puback' - var id = settings.messageId - var dup = (settings.dup && type === 'pubrel') ? protocol.DUP_MASK : 0 - var qos = 0 - - if (type === 'pubrel') qos = 1 - - // Check message ID - if (typeof id !== 'number') { - stream.emit('error', new Error('Invalid messageId')) - return false - } - - // Header - stream.write(protocol.ACKS[type][qos][dup][0]) - - // Length - writeLength(stream, 2) - - // Message ID - return writeNumber(stream, id) -} - -function subscribe (opts, stream) { - var settings = opts || {} - var dup = settings.dup ? protocol.DUP_MASK : 0 - var id = settings.messageId - var subs = settings.subscriptions - - var length = 0 - - // Check message ID - if (typeof id !== 'number') { - stream.emit('error', new Error('Invalid messageId')) - return false - } else length += 2 - - // Check subscriptions - if (typeof subs === 'object' && subs.length) { - for (var i = 0; i < subs.length; i += 1) { - var itopic = subs[i].topic - var iqos = subs[i].qos - - if (typeof itopic !== 'string') { - stream.emit('error', new Error('Invalid subscriptions - invalid topic')) - return false - } - if (typeof iqos !== 'number') { - stream.emit('error', new Error('Invalid subscriptions - invalid qos')) - return false - } - - length += Buffer.byteLength(itopic) + 2 + 1 - } - } else { - stream.emit('error', new Error('Invalid subscriptions')) - return false - } - - // Generate header - stream.write(protocol.SUBSCRIBE_HEADER[1][dup ? 1 : 0][0]) - - // Generate length - writeLength(stream, length) - - // Generate message ID - writeNumber(stream, id) - - var result = true - - // Generate subs - for (var j = 0; j < subs.length; j++) { - var sub = subs[j] - var jtopic = sub.topic - var jqos = sub.qos - - // Write topic string - writeString(stream, jtopic) - - // Write qos - result = stream.write(protocol.QOS[jqos]) - } - - return result -} - -function suback (opts, stream) { - var settings = opts || {} - var id = settings.messageId - var granted = settings.granted - - var length = 0 - - // Check message ID - if (typeof id !== 'number') { - stream.emit('error', new Error('Invalid messageId')) - return false - } else length += 2 - - // Check granted qos vector - if (typeof granted === 'object' && granted.length) { - for (var i = 0; i < granted.length; i += 1) { - if (typeof granted[i] !== 'number') { - stream.emit('error', new Error('Invalid qos vector')) - return false - } - length += 1 - } - } else { - stream.emit('error', new Error('Invalid qos vector')) - return false - } - - // header - stream.write(protocol.SUBACK_HEADER) - - // Length - writeLength(stream, length) - - // Message ID - writeNumber(stream, id) - - return stream.write(Buffer.from(granted)) -} - -function unsubscribe (opts, stream) { - var settings = opts || {} - var id = settings.messageId - var dup = settings.dup ? protocol.DUP_MASK : 0 - var unsubs = settings.unsubscriptions - - var length = 0 - - // Check message ID - if (typeof id !== 'number') { - stream.emit('error', new Error('Invalid messageId')) - return false - } else { - length += 2 - } - // Check unsubs - if (typeof unsubs === 'object' && unsubs.length) { - for (var i = 0; i < unsubs.length; i += 1) { - if (typeof unsubs[i] !== 'string') { - stream.emit('error', new Error('Invalid unsubscriptions')) - return false - } - length += Buffer.byteLength(unsubs[i]) + 2 - } - } else { - stream.emit('error', new Error('Invalid unsubscriptions')) - return false - } - - // Header - stream.write(protocol.UNSUBSCRIBE_HEADER[1][dup ? 1 : 0][0]) - - // Length - writeLength(stream, length) - - // Message ID - writeNumber(stream, id) - - // Unsubs - var result = true - for (var j = 0; j < unsubs.length; j++) { - result = writeString(stream, unsubs[j]) - } - - return result -} - -function emptyPacket (opts, stream) { - return stream.write(protocol.EMPTY[opts.cmd]) -} - -/** - * calcLengthLength - calculate the length of the remaining - * length field - * - * @api private - */ -function calcLengthLength (length) { - if (length >= 0 && length < 128) return 1 - else if (length >= 128 && length < 16384) return 2 - else if (length >= 16384 && length < 2097152) return 3 - else if (length >= 2097152 && length < 268435456) return 4 - else return 0 -} - -function genBufLength (length) { - var digit = 0 - var pos = 0 - var buffer = Buffer.allocUnsafe(calcLengthLength(length)) - - do { - digit = length % 128 | 0 - length = length / 128 | 0 - if (length > 0) digit = digit | 0x80 - - buffer.writeUInt8(digit, pos++, true) - } while (length > 0) - - return buffer -} - -/** - * writeLength - write an MQTT style length field to the buffer - * - * @param buffer - destination - * @param pos - offset - * @param length - length (>0) - * @returns number of bytes written - * - * @api private - */ - -var lengthCache = {} -function writeLength (stream, length) { - var buffer = lengthCache[length] - - if (!buffer) { - buffer = genBufLength(length) - if (length < 16384) lengthCache[length] = buffer - } - - stream.write(buffer) -} - -/** - * writeString - write a utf8 string to the buffer - * - * @param buffer - destination - * @param pos - offset - * @param string - string to write - * @return number of bytes written - * - * @api private - */ - -function writeString (stream, string) { - var strlen = Buffer.byteLength(string) - writeNumber(stream, strlen) - - stream.write(string, 'utf8') -} - -/** - * writeNumber - write a two byte number to the buffer - * - * @param buffer - destination - * @param pos - offset - * @param number - number to write - * @return number of bytes written - * - * @api private - */ -function writeNumberCached (stream, number) { - return stream.write(numCache[number]) -} -function writeNumberGenerated (stream, number) { - return stream.write(generateNumber(number)) -} - -/** - * writeStringOrBuffer - write a String or Buffer with the its length prefix - * - * @param buffer - destination - * @param pos - offset - * @param toWrite - String or Buffer - * @return number of bytes written - */ -function writeStringOrBuffer (stream, toWrite) { - if (toWrite && typeof toWrite === 'string') writeString(stream, toWrite) - else if (toWrite) { - writeNumber(stream, toWrite.length) - stream.write(toWrite) - } else writeNumber(stream, 0) -} - -function byteLength (bufOrString) { - if (!bufOrString) return 0 - else if (Buffer.isBuffer(bufOrString)) return bufOrString.length - else return Buffer.byteLength(bufOrString) -} - -module.exports = generate - - -/***/ }), - -/***/ "./node_modules/mqtt/lib/client.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, process) { - -/** - * Module dependencies - */ -var events = __webpack_require__("./node_modules/events/events.js") -var Store = __webpack_require__("./node_modules/mqtt/lib/store.js") -var eos = __webpack_require__("./node_modules/end-of-stream/index.js") -var mqttPacket = __webpack_require__("./node_modules/mqtt-packet/mqtt.js") -var Writable = __webpack_require__("./node_modules/readable-stream/readable-browser.js").Writable -var inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js") -var reInterval = __webpack_require__("./node_modules/reinterval/index.js") -var validations = __webpack_require__("./node_modules/mqtt/lib/validations.js") -var xtend = __webpack_require__("./node_modules/xtend/immutable.js") -var setImmediate = global.setImmediate || function (callback) { - // works in node v0.8 - process.nextTick(callback) -} -var defaultConnectOptions = { - keepalive: 60, - reschedulePings: true, - protocolId: 'MQTT', - protocolVersion: 4, - reconnectPeriod: 1000, - connectTimeout: 30 * 1000, - clean: true, - resubscribe: true -} - -function defaultId () { - return 'mqttjs_' + Math.random().toString(16).substr(2, 8) -} - -function sendPacket (client, packet, cb) { - client.emit('packetsend', packet) - - var result = mqttPacket.writeToStream(packet, client.stream) - - if (!result && cb) { - client.stream.once('drain', cb) - } else if (cb) { - cb() - } -} - -function storeAndSend (client, packet, cb) { - client.outgoingStore.put(packet, function storedPacket (err) { - if (err) { - return cb && cb(err) - } - sendPacket(client, packet, cb) - }) -} - -function nop () {} - -/** - * MqttClient constructor - * - * @param {Stream} stream - stream - * @param {Object} [options] - connection options - * (see Connection#connect) - */ -function MqttClient (streamBuilder, options) { - var k - var that = this - - if (!(this instanceof MqttClient)) { - return new MqttClient(streamBuilder, options) - } - - this.options = options || {} - - // Defaults - for (k in defaultConnectOptions) { - if (typeof this.options[k] === 'undefined') { - this.options[k] = defaultConnectOptions[k] - } else { - this.options[k] = options[k] - } - } - - this.options.clientId = (typeof this.options.clientId === 'string') ? this.options.clientId : defaultId() - - this.streamBuilder = streamBuilder - - // Inflight message storages - this.outgoingStore = this.options.outgoingStore || new Store() - this.incomingStore = this.options.incomingStore || new Store() - - // Should QoS zero messages be queued when the connection is broken? - this.queueQoSZero = this.options.queueQoSZero === undefined ? true : this.options.queueQoSZero - - // map of subscribed topics to support reconnection - this._resubscribeTopics = {} - - // map of a subscribe messageId and a topic - this.messageIdToTopic = {} - - // Ping timer, setup in _setupPingTimer - this.pingTimer = null - // Is the client connected? - this.connected = false - // Are we disconnecting? - this.disconnecting = false - // Packet queue - this.queue = [] - // connack timer - this.connackTimer = null - // Reconnect timer - this.reconnectTimer = null - // MessageIDs starting with 1 - this.nextId = Math.floor(Math.random() * 65535) - - // Inflight callbacks - this.outgoing = {} - - // Mark connected on connect - this.on('connect', function () { - if (this.disconnected) { - return - } - - this.connected = true - var outStore = null - outStore = this.outgoingStore.createStream() - - // Control of stored messages - outStore.once('readable', function () { - function storeDeliver () { - var packet = outStore.read(1) - var cb - - if (!packet) { - return - } - - // Avoid unnecesary stream read operations when disconnected - if (!that.disconnecting && !that.reconnectTimer && that.options.reconnectPeriod > 0) { - outStore.read(0) - cb = that.outgoing[packet.messageId] - that.outgoing[packet.messageId] = function (err, status) { - // Ensure that the original callback passed in to publish gets invoked - if (cb) { - cb(err, status) - } - - storeDeliver() - } - that._sendPacket(packet) - } else if (outStore.destroy) { - outStore.destroy() - } - } - storeDeliver() - }) - .on('error', this.emit.bind(this, 'error')) - }) - - // Mark disconnected on stream close - this.on('close', function () { - this.connected = false - clearTimeout(this.connackTimer) - }) - - // Setup ping timer - this.on('connect', this._setupPingTimer) - - // Send queued packets - this.on('connect', function () { - var queue = this.queue - - function deliver () { - var entry = queue.shift() - var packet = null - - if (!entry) { - return - } - - packet = entry.packet - - that._sendPacket( - packet, - function (err) { - if (entry.cb) { - entry.cb(err) - } - deliver() - } - ) - } - - deliver() - }) - - var firstConnection = true - // resubscribe - this.on('connect', function () { - if (!firstConnection && - this.options.clean && - Object.keys(this._resubscribeTopics).length > 0) { - if (this.options.resubscribe) { - this._resubscribeTopics.resubscribe = true - this.subscribe(this._resubscribeTopics) - } else { - this._resubscribeTopics = {} - } - } - - firstConnection = false - }) - - // Clear ping timer - this.on('close', function () { - if (that.pingTimer !== null) { - that.pingTimer.clear() - that.pingTimer = null - } - }) - - // Setup reconnect timer on disconnect - this.on('close', this._setupReconnect) - - events.EventEmitter.call(this) - - this._setupStream() -} -inherits(MqttClient, events.EventEmitter) - -/** - * setup the event handlers in the inner stream. - * - * @api private - */ -MqttClient.prototype._setupStream = function () { - var connectPacket - var that = this - var writable = new Writable() - var parser = mqttPacket.parser(this.options) - var completeParse = null - var packets = [] - - this._clearReconnect() - - this.stream = this.streamBuilder(this) - - parser.on('packet', function (packet) { - packets.push(packet) - }) - - function nextTickWork () { - process.nextTick(work) - } - - function work () { - var packet = packets.shift() - var done = completeParse - - if (packet) { - that._handlePacket(packet, nextTickWork) - } else { - completeParse = null - done() - } - } - - writable._write = function (buf, enc, done) { - completeParse = done - parser.parse(buf) - work() - } - - this.stream.pipe(writable) - - // Suppress connection errors - this.stream.on('error', nop) - - // Echo stream close - eos(this.stream, this.emit.bind(this, 'close')) - - // Send a connect packet - connectPacket = Object.create(this.options) - connectPacket.cmd = 'connect' - // avoid message queue - sendPacket(this, connectPacket) - - // Echo connection errors - parser.on('error', this.emit.bind(this, 'error')) - - // many drain listeners are needed for qos 1 callbacks if the connection is intermittent - this.stream.setMaxListeners(1000) - - clearTimeout(this.connackTimer) - this.connackTimer = setTimeout(function () { - that._cleanUp(true) - }, this.options.connectTimeout) -} - -MqttClient.prototype._handlePacket = function (packet, done) { - this.emit('packetreceive', packet) - - switch (packet.cmd) { - case 'publish': - this._handlePublish(packet, done) - break - case 'puback': - case 'pubrec': - case 'pubcomp': - case 'suback': - case 'unsuback': - this._handleAck(packet) - done() - break - case 'pubrel': - this._handlePubrel(packet, done) - break - case 'connack': - this._handleConnack(packet) - done() - break - case 'pingresp': - this._handlePingresp(packet) - done() - break - default: - // do nothing - // maybe we should do an error handling - // or just log it - break - } -} - -MqttClient.prototype._checkDisconnecting = function (callback) { - if (this.disconnecting) { - if (callback) { - callback(new Error('client disconnecting')) - } else { - this.emit('error', new Error('client disconnecting')) - } - } - return this.disconnecting -} - -/** - * publish - publish to - * - * @param {String} topic - topic to publish to - * @param {String, Buffer} message - message to publish - * @param {Object} [opts] - publish options, includes: - * {Number} qos - qos level to publish on - * {Boolean} retain - whether or not to retain the message - * {Boolean} dup - whether or not mark a message as duplicate - * @param {Function} [callback] - function(err){} - * called when publish succeeds or fails - * @returns {MqttClient} this - for chaining - * @api public - * - * @example client.publish('topic', 'message'); - * @example - * client.publish('topic', 'message', {qos: 1, retain: true, dup: true}); - * @example client.publish('topic', 'message', console.log); - */ -MqttClient.prototype.publish = function (topic, message, opts, callback) { - var packet - - // .publish(topic, payload, cb); - if (typeof opts === 'function') { - callback = opts - opts = null - } - - // default opts - var defaultOpts = {qos: 0, retain: false, dup: false} - opts = xtend(defaultOpts, opts) - - if (this._checkDisconnecting(callback)) { - return this - } - - packet = { - cmd: 'publish', - topic: topic, - payload: message, - qos: opts.qos, - retain: opts.retain, - messageId: this._nextId(), - dup: opts.dup - } - - switch (opts.qos) { - case 1: - case 2: - - // Add to callbacks - this.outgoing[packet.messageId] = callback || nop - this._sendPacket(packet) - break - default: - this._sendPacket(packet, callback) - break - } - - return this -} - -/** - * subscribe - subscribe to - * - * @param {String, Array, Object} topic - topic(s) to subscribe to, supports objects in the form {'topic': qos} - * @param {Object} [opts] - optional subscription options, includes: - * {Number} qos - subscribe qos level - * @param {Function} [callback] - function(err, granted){} where: - * {Error} err - subscription error (none at the moment!) - * {Array} granted - array of {topic: 't', qos: 0} - * @returns {MqttClient} this - for chaining - * @api public - * @example client.subscribe('topic'); - * @example client.subscribe('topic', {qos: 1}); - * @example client.subscribe({'topic': 0, 'topic2': 1}, console.log); - * @example client.subscribe('topic', console.log); - */ -MqttClient.prototype.subscribe = function () { - var packet - var args = Array.prototype.slice.call(arguments) - var subs = [] - var obj = args.shift() - var resubscribe = obj.resubscribe - var callback = args.pop() || nop - var opts = args.pop() - var invalidTopic - var that = this - - delete obj.resubscribe - - if (typeof obj === 'string') { - obj = [obj] - } - - if (typeof callback !== 'function') { - opts = callback - callback = nop - } - - invalidTopic = validations.validateTopics(obj) - if (invalidTopic !== null) { - setImmediate(callback, new Error('Invalid topic ' + invalidTopic)) - return this - } - - if (this._checkDisconnecting(callback)) { - return this - } - - var defaultOpts = { qos: 0 } - opts = xtend(defaultOpts, opts) - - if (Array.isArray(obj)) { - obj.forEach(function (topic) { - if (that._resubscribeTopics[topic] < opts.qos || - !that._resubscribeTopics.hasOwnProperty(topic) || - resubscribe - ) { - subs.push({ - topic: topic, - qos: opts.qos - }) - } - }) - } else { - Object - .keys(obj) - .forEach(function (k) { - if (that._resubscribeTopics[k] < obj[k] || - !that._resubscribeTopics.hasOwnProperty(k) || - resubscribe - ) { - subs.push({ - topic: k, - qos: obj[k] - }) - } - }) - } - - packet = { - cmd: 'subscribe', - subscriptions: subs, - qos: 1, - retain: false, - dup: false, - messageId: this._nextId() - } - - if (!subs.length) { - callback(null, []) - return - } - - // subscriptions to resubscribe to in case of disconnect - if (this.options.resubscribe) { - var topics = [] - subs.forEach(function (sub) { - if (that.options.reconnectPeriod > 0) { - that._resubscribeTopics[sub.topic] = sub.qos - topics.push(sub.topic) - } - }) - that.messageIdToTopic[packet.messageId] = topics - } - - this.outgoing[packet.messageId] = function (err, packet) { - if (!err) { - var granted = packet.granted - for (var i = 0; i < granted.length; i += 1) { - subs[i].qos = granted[i] - } - } - - callback(err, subs) - } - - this._sendPacket(packet) - - return this -} - -/** - * unsubscribe - unsubscribe from topic(s) - * - * @param {String, Array} topic - topics to unsubscribe from - * @param {Function} [callback] - callback fired on unsuback - * @returns {MqttClient} this - for chaining - * @api public - * @example client.unsubscribe('topic'); - * @example client.unsubscribe('topic', console.log); - */ -MqttClient.prototype.unsubscribe = function (topic, callback) { - var packet = { - cmd: 'unsubscribe', - qos: 1, - messageId: this._nextId() - } - var that = this - - callback = callback || nop - - if (this._checkDisconnecting(callback)) { - return this - } - - if (typeof topic === 'string') { - packet.unsubscriptions = [topic] - } else if (typeof topic === 'object' && topic.length) { - packet.unsubscriptions = topic - } - - if (this.options.resubscribe) { - packet.unsubscriptions.forEach(function (topic) { - delete that._resubscribeTopics[topic] - }) - } - - this.outgoing[packet.messageId] = callback - - this._sendPacket(packet) - - return this -} - -/** - * end - close connection - * - * @returns {MqttClient} this - for chaining - * @param {Boolean} force - do not wait for all in-flight messages to be acked - * @param {Function} cb - called when the client has been closed - * - * @api public - */ -MqttClient.prototype.end = function (force, cb) { - var that = this - - if (typeof force === 'function') { - cb = force - force = false - } - - function closeStores () { - that.disconnected = true - that.incomingStore.close(function () { - that.outgoingStore.close(cb) - }) - if (that._deferredReconnect) { - that._deferredReconnect() - } - } - - function finish () { - // defer closesStores of an I/O cycle, - // just to make sure things are - // ok for websockets - that._cleanUp(force, setImmediate.bind(null, closeStores)) - } - - if (this.disconnecting) { - return this - } - - this._clearReconnect() - - this.disconnecting = true - - if (!force && Object.keys(this.outgoing).length > 0) { - // wait 10ms, just to be sure we received all of it - this.once('outgoingEmpty', setTimeout.bind(null, finish, 10)) - } else { - finish() - } - - return this -} - -/** - * removeOutgoingMessage - remove a message in outgoing store - * the outgoing callback will be called withe Error('Message removed') if the message is removed - * - * @param {Number} mid - messageId to remove message - * @returns {MqttClient} this - for chaining - * @api public - * - * @example client.removeOutgoingMessage(client.getLastMessageId()); - */ -MqttClient.prototype.removeOutgoingMessage = function (mid) { - var cb = this.outgoing[mid] - delete this.outgoing[mid] - this.outgoingStore.del({messageId: mid}, function () { - cb(new Error('Message removed')) - }) - return this -} - -/** - * reconnect - connect again using the same options as connect() - * - * @param {Object} [opts] - optional reconnect options, includes: - * {Store} incomingStore - a store for the incoming packets - * {Store} outgoingStore - a store for the outgoing packets - * if opts is not given, current stores are used - * @returns {MqttClient} this - for chaining - * - * @api public - */ -MqttClient.prototype.reconnect = function (opts) { - var that = this - var f = function () { - if (opts) { - that.options.incomingStore = opts.incomingStore - that.options.outgoingStore = opts.outgoingStore - } else { - that.options.incomingStore = null - that.options.outgoingStore = null - } - that.incomingStore = that.options.incomingStore || new Store() - that.outgoingStore = that.options.outgoingStore || new Store() - that.disconnecting = false - that.disconnected = false - that._deferredReconnect = null - that._reconnect() - } - - if (this.disconnecting && !this.disconnected) { - this._deferredReconnect = f - } else { - f() - } - return this -} - -/** - * _reconnect - implement reconnection - * @api privateish - */ -MqttClient.prototype._reconnect = function () { - this.emit('reconnect') - this._setupStream() -} - -/** - * _setupReconnect - setup reconnect timer - */ -MqttClient.prototype._setupReconnect = function () { - var that = this - - if (!that.disconnecting && !that.reconnectTimer && (that.options.reconnectPeriod > 0)) { - if (!this.reconnecting) { - this.emit('offline') - this.reconnecting = true - } - that.reconnectTimer = setInterval(function () { - that._reconnect() - }, that.options.reconnectPeriod) - } -} - -/** - * _clearReconnect - clear the reconnect timer - */ -MqttClient.prototype._clearReconnect = function () { - if (this.reconnectTimer) { - clearInterval(this.reconnectTimer) - this.reconnectTimer = null - } -} - -/** - * _cleanUp - clean up on connection end - * @api private - */ -MqttClient.prototype._cleanUp = function (forced, done) { - if (done) { - this.stream.on('close', done) - } - - if (forced) { - this.stream.destroy() - } else { - this._sendPacket( - { cmd: 'disconnect' }, - setImmediate.bind( - null, - this.stream.end.bind(this.stream) - ) - ) - } - - if (!this.disconnecting) { - this._clearReconnect() - this._setupReconnect() - } - - if (this.pingTimer !== null) { - this.pingTimer.clear() - this.pingTimer = null - } - - if (done && !this.connected) { - this.stream.removeListener('close', done) - done() - } -} - -/** - * _sendPacket - send or queue a packet - * @param {String} type - packet type (see `protocol`) - * @param {Object} packet - packet options - * @param {Function} cb - callback when the packet is sent - * @api private - */ -MqttClient.prototype._sendPacket = function (packet, cb) { - if (!this.connected) { - if (((packet.qos || 0) === 0 && this.queueQoSZero) || packet.cmd !== 'publish') { - this.queue.push({ packet: packet, cb: cb }) - } else if (packet.qos > 0) { - cb = this.outgoing[packet.messageId] - this.outgoingStore.put(packet, function (err) { - if (err) { - return cb && cb(err) - } - }) - } else if (cb) { - cb(new Error('No connection to broker')) - } - - return - } - - // When sending a packet, reschedule the ping timer - this._shiftPingInterval() - - if (packet.cmd !== 'publish') { - sendPacket(this, packet, cb) - return - } - - switch (packet.qos) { - case 2: - case 1: - storeAndSend(this, packet, cb) - break - /** - * no need of case here since it will be caught by default - * and jshint comply that before default it must be a break - * anyway it will result in -1 evaluation - */ - case 0: - /* falls through */ - default: - sendPacket(this, packet, cb) - break - } -} - -/** - * _setupPingTimer - setup the ping timer - * - * @api private - */ -MqttClient.prototype._setupPingTimer = function () { - var that = this - - if (!this.pingTimer && this.options.keepalive) { - this.pingResp = true - this.pingTimer = reInterval(function () { - that._checkPing() - }, this.options.keepalive * 1000) - } -} - -/** - * _shiftPingInterval - reschedule the ping interval - * - * @api private - */ -MqttClient.prototype._shiftPingInterval = function () { - if (this.pingTimer && this.options.keepalive && this.options.reschedulePings) { - this.pingTimer.reschedule(this.options.keepalive * 1000) - } -} -/** - * _checkPing - check if a pingresp has come back, and ping the server again - * - * @api private - */ -MqttClient.prototype._checkPing = function () { - if (this.pingResp) { - this.pingResp = false - this._sendPacket({ cmd: 'pingreq' }) - } else { - // do a forced cleanup since socket will be in bad shape - this._cleanUp(true) - } -} - -/** - * _handlePingresp - handle a pingresp - * - * @api private - */ -MqttClient.prototype._handlePingresp = function () { - this.pingResp = true -} - -/** - * _handleConnack - * - * @param {Object} packet - * @api private - */ - -MqttClient.prototype._handleConnack = function (packet) { - var rc = packet.returnCode - var errors = [ - '', - 'Unacceptable protocol version', - 'Identifier rejected', - 'Server unavailable', - 'Bad username or password', - 'Not authorized' - ] - - clearTimeout(this.connackTimer) - - if (rc === 0) { - this.reconnecting = false - this.emit('connect', packet) - } else if (rc > 0) { - var err = new Error('Connection refused: ' + errors[rc]) - err.code = rc - this.emit('error', err) - } -} - -/** - * _handlePublish - * - * @param {Object} packet - * @api private - */ -/* -those late 2 case should be rewrite to comply with coding style: - -case 1: -case 0: - // do not wait sending a puback - // no callback passed - if (1 === qos) { - this._sendPacket({ - cmd: 'puback', - messageId: mid - }); - } - // emit the message event for both qos 1 and 0 - this.emit('message', topic, message, packet); - this.handleMessage(packet, done); - break; -default: - // do nothing but every switch mus have a default - // log or throw an error about unknown qos - break; - -for now i just suppressed the warnings -*/ -MqttClient.prototype._handlePublish = function (packet, done) { - var topic = packet.topic.toString() - var message = packet.payload - var qos = packet.qos - var mid = packet.messageId - var that = this - - switch (qos) { - case 2: - this.incomingStore.put(packet, function () { - that._sendPacket({cmd: 'pubrec', messageId: mid}, done) - }) - break - case 1: - // emit the message event - this.emit('message', topic, message, packet) - this.handleMessage(packet, function (err) { - if (err) { - return done && done(err) - } - // send 'puback' if the above 'handleMessage' method executed - // successfully. - that._sendPacket({cmd: 'puback', messageId: mid}, done) - }) - break - case 0: - // emit the message event - this.emit('message', topic, message, packet) - this.handleMessage(packet, done) - break - default: - // do nothing - // log or throw an error about unknown qos - break - } -} - -/** - * Handle messages with backpressure support, one at a time. - * Override at will. - * - * @param Packet packet the packet - * @param Function callback call when finished - * @api public - */ -MqttClient.prototype.handleMessage = function (packet, callback) { - callback() -} - -/** - * _handleAck - * - * @param {Object} packet - * @api private - */ - -MqttClient.prototype._handleAck = function (packet) { - /* eslint no-fallthrough: "off" */ - var mid = packet.messageId - var type = packet.cmd - var response = null - var cb = this.outgoing[mid] - var that = this - - if (!cb) { - // Server sent an ack in error, ignore it. - return - } - - // Process - switch (type) { - case 'pubcomp': - // same thing as puback for QoS 2 - case 'puback': - // Callback - we're done - delete this.outgoing[mid] - this.outgoingStore.del(packet, cb) - break - case 'pubrec': - response = { - cmd: 'pubrel', - qos: 2, - messageId: mid - } - - this._sendPacket(response) - break - case 'suback': - delete this.outgoing[mid] - if (packet.granted.length === 1 && (packet.granted[0] & 0x80) !== 0) { - // suback with Failure status - var topics = this.messageIdToTopic[mid] - if (topics) { - topics.forEach(function (topic) { - delete that._resubscribeTopics[topic] - }) - } - } - cb(null, packet) - break - case 'unsuback': - delete this.outgoing[mid] - cb(null) - break - default: - that.emit('error', new Error('unrecognized packet type')) - } - - if (this.disconnecting && - Object.keys(this.outgoing).length === 0) { - this.emit('outgoingEmpty') - } -} - -/** - * _handlePubrel - * - * @param {Object} packet - * @api private - */ -MqttClient.prototype._handlePubrel = function (packet, callback) { - var mid = packet.messageId - var that = this - - var comp = {cmd: 'pubcomp', messageId: mid} - - that.incomingStore.get(packet, function (err, pub) { - if (!err && pub.cmd !== 'pubrel') { - that.emit('message', pub.topic, pub.payload, pub) - that.incomingStore.put(packet) - that.handleMessage(pub, function (err) { - if (err) { - return callback && callback(err) - } - that._sendPacket(comp, callback) - }) - } else { - that._sendPacket(comp, callback) - } - }) -} - -/** - * _nextId - */ -MqttClient.prototype._nextId = function () { - var id = this.nextId++ - // Ensure 16 bit unsigned int: - if (id === 65535) { - this.nextId = 1 - } - return id -} - -/** - * getLastMessageId - */ -MqttClient.prototype.getLastMessageId = function () { - return (this.nextId === 1) ? 65535 : (this.nextId - 1) -} - -module.exports = MqttClient - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/mqtt/lib/connect/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -var MqttClient = __webpack_require__("./node_modules/mqtt/lib/client.js") -var Store = __webpack_require__("./node_modules/mqtt/lib/store.js") -var url = __webpack_require__("./node_modules/url/url.js") -var xtend = __webpack_require__("./node_modules/xtend/immutable.js") -var protocols = {} - -if (process.title !== 'browser') { - protocols.mqtt = __webpack_require__("./node_modules/mqtt/lib/connect/tcp.js") - protocols.tcp = __webpack_require__("./node_modules/mqtt/lib/connect/tcp.js") - protocols.ssl = __webpack_require__("./node_modules/mqtt/lib/connect/tls.js") - protocols.tls = __webpack_require__("./node_modules/mqtt/lib/connect/tls.js") - protocols.mqtts = __webpack_require__("./node_modules/mqtt/lib/connect/tls.js") -} else { - protocols.wx = __webpack_require__("./node_modules/mqtt/lib/connect/wx.js") - protocols.wxs = __webpack_require__("./node_modules/mqtt/lib/connect/wx.js") -} - -protocols.ws = __webpack_require__("./node_modules/mqtt/lib/connect/ws.js") -protocols.wss = __webpack_require__("./node_modules/mqtt/lib/connect/ws.js") - -/** - * Parse the auth attribute and merge username and password in the options object. - * - * @param {Object} [opts] option object - */ -function parseAuthOptions (opts) { - var matches - if (opts.auth) { - matches = opts.auth.match(/^(.+):(.+)$/) - if (matches) { - opts.username = matches[1] - opts.password = matches[2] - } else { - opts.username = opts.auth - } - } -} - -/** - * connect - connect to an MQTT broker. - * - * @param {String} [brokerUrl] - url of the broker, optional - * @param {Object} opts - see MqttClient#constructor - */ -function connect (brokerUrl, opts) { - if ((typeof brokerUrl === 'object') && !opts) { - opts = brokerUrl - brokerUrl = null - } - - opts = opts || {} - - if (brokerUrl) { - var parsed = url.parse(brokerUrl, true) - if (parsed.port != null) { - parsed.port = Number(parsed.port) - } - - opts = xtend(parsed, opts) - - if (opts.protocol === null) { - throw new Error('Missing protocol') - } - opts.protocol = opts.protocol.replace(/:$/, '') - } - - // merge in the auth options if supplied - parseAuthOptions(opts) - - // support clientId passed in the query string of the url - if (opts.query && typeof opts.query.clientId === 'string') { - opts.clientId = opts.query.clientId - } - - if (opts.cert && opts.key) { - if (opts.protocol) { - if (['mqtts', 'wss', 'wxs'].indexOf(opts.protocol) === -1) { - switch (opts.protocol) { - case 'mqtt': - opts.protocol = 'mqtts' - break - case 'ws': - opts.protocol = 'wss' - break - case 'wx': - opts.protocol = 'wxs' - break - default: - throw new Error('Unknown protocol for secure connection: "' + opts.protocol + '"!') - } - } - } else { - // don't know what protocol he want to use, mqtts or wss - throw new Error('Missing secure protocol key') - } - } - - if (!protocols[opts.protocol]) { - var isSecure = ['mqtts', 'wss'].indexOf(opts.protocol) !== -1 - opts.protocol = [ - 'mqtt', - 'mqtts', - 'ws', - 'wss', - 'wx', - 'wxs' - ].filter(function (key, index) { - if (isSecure && index % 2 === 0) { - // Skip insecure protocols when requesting a secure one. - return false - } - return (typeof protocols[key] === 'function') - })[0] - } - - if (opts.clean === false && !opts.clientId) { - throw new Error('Missing clientId for unclean clients') - } - - function wrapper (client) { - if (opts.servers) { - if (!client._reconnectCount || client._reconnectCount === opts.servers.length) { - client._reconnectCount = 0 - } - - opts.host = opts.servers[client._reconnectCount].host - opts.port = opts.servers[client._reconnectCount].port - opts.hostname = opts.host - - client._reconnectCount++ - } - - return protocols[opts.protocol](client, opts) - } - - return new MqttClient(wrapper, opts) -} - -module.exports = connect -module.exports.connect = connect -module.exports.MqttClient = MqttClient -module.exports.Store = Store - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/mqtt/lib/connect/tcp.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var net = __webpack_require__(0) - -/* - variables port and host can be removed since - you have all required information in opts object -*/ -function buildBuilder (client, opts) { - var port, host - opts.port = opts.port || 1883 - opts.hostname = opts.hostname || opts.host || 'localhost' - - port = opts.port - host = opts.hostname - - return net.createConnection(port, host) -} - -module.exports = buildBuilder - - -/***/ }), - -/***/ "./node_modules/mqtt/lib/connect/tls.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var tls = __webpack_require__(1) - -function buildBuilder (mqttClient, opts) { - var connection - opts.port = opts.port || 8883 - opts.host = opts.hostname || opts.host || 'localhost' - - opts.rejectUnauthorized = opts.rejectUnauthorized !== false - - delete opts.path - - connection = tls.connect(opts) - /* eslint no-use-before-define: [2, "nofunc"] */ - connection.on('secureConnect', function () { - if (opts.rejectUnauthorized && !connection.authorized) { - connection.emit('error', new Error('TLS not authorized')) - } else { - connection.removeListener('error', handleTLSerrors) - } - }) - - function handleTLSerrors (err) { - // How can I get verify this error is a tls error? - if (opts.rejectUnauthorized) { - mqttClient.emit('error', err) - } - - // close this connection to match the behaviour of net - // otherwise all we get is an error from the connection - // and close event doesn't fire. This is a work around - // to enable the reconnect code to work the same as with - // net.createConnection - connection.end() - } - - connection.on('error', handleTLSerrors) - return connection -} - -module.exports = buildBuilder - - -/***/ }), - -/***/ "./node_modules/mqtt/lib/connect/ws.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -var websocket = __webpack_require__("./node_modules/websocket-stream/stream.js") -var urlModule = __webpack_require__("./node_modules/url/url.js") -var WSS_OPTIONS = [ - 'rejectUnauthorized', - 'ca', - 'cert', - 'key', - 'pfx', - 'passphrase' -] -var IS_BROWSER = process.title === 'browser' - -function buildUrl (opts, client) { - var url = opts.protocol + '://' + opts.hostname + ':' + opts.port + opts.path - if (typeof (opts.transformWsUrl) === 'function') { - url = opts.transformWsUrl(url, opts, client) - } - return url -} - -function setDefaultOpts (opts) { - if (!opts.hostname) { - opts.hostname = 'localhost' - } - if (!opts.port) { - if (opts.protocol === 'wss') { - opts.port = 443 - } else { - opts.port = 80 - } - } - if (!opts.path) { - opts.path = '/' - } - - if (!opts.wsOptions) { - opts.wsOptions = {} - } - if (!IS_BROWSER && opts.protocol === 'wss') { - // Add cert/key/ca etc options - WSS_OPTIONS.forEach(function (prop) { - if (opts.hasOwnProperty(prop) && !opts.wsOptions.hasOwnProperty(prop)) { - opts.wsOptions[prop] = opts[prop] - } - }) - } -} - -function createWebSocket (client, opts) { - var websocketSubProtocol = - (opts.protocolId === 'MQIsdp') && (opts.protocolVersion === 3) - ? 'mqttv3.1' - : 'mqtt' - - setDefaultOpts(opts) - var url = buildUrl(opts, client) - return websocket(url, [websocketSubProtocol], opts.wsOptions) -} - -function buildBuilder (client, opts) { - return createWebSocket(client, opts) -} - -function buildBuilderBrowser (client, opts) { - if (!opts.hostname) { - opts.hostname = opts.host - } - - if (!opts.hostname) { - // Throwing an error in a Web Worker if no `hostname` is given, because we - // can not determine the `hostname` automatically. If connecting to - // localhost, please supply the `hostname` as an argument. - if (typeof (document) === 'undefined') { - throw new Error('Could not determine host. Specify host manually.') - } - var parsed = urlModule.parse(document.URL) - opts.hostname = parsed.hostname - - if (!opts.port) { - opts.port = parsed.port - } - } - return createWebSocket(client, opts) -} - -if (IS_BROWSER) { - module.exports = buildBuilderBrowser -} else { - module.exports = buildBuilder -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/mqtt/lib/connect/wx.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* global wx */ -var socketOpen = false -var socketMsgQueue = [] - -function sendSocketMessage (msg) { - if (socketOpen) { - wx.sendSocketMessage({ - data: msg - }) - } else { - socketMsgQueue.push(msg) - } -} - -function WebSocket (url, protocols) { - var ws = { - OPEN: 1, - CLOSING: 2, - CLOSED: 3, - readyState: socketOpen ? 1 : 0, - send: sendSocketMessage, - close: wx.closeSocket, - onopen: null, - onmessage: null, - onclose: null, - onerror: null - } - - wx.connectSocket({ - url: url, - protocols: protocols - }) - wx.onSocketOpen(function (res) { - ws.readyState = ws.OPEN - socketOpen = true - for (var i = 0; i < socketMsgQueue.length; i++) { - sendSocketMessage(socketMsgQueue[i]) - } - socketMsgQueue = [] - - ws.onopen && ws.onopen.apply(ws, arguments) - }) - wx.onSocketMessage(function (res) { - ws.onmessage && ws.onmessage.apply(ws, arguments) - }) - wx.onSocketClose(function () { - ws.onclose && ws.onclose.apply(ws, arguments) - ws.readyState = ws.CLOSED - socketOpen = false - }) - wx.onSocketError(function () { - ws.onerror && ws.onerror.apply(ws, arguments) - ws.readyState = ws.CLOSED - socketOpen = false - }) - - return ws -} - -var websocket = __webpack_require__("./node_modules/websocket-stream/stream.js") -var urlModule = __webpack_require__("./node_modules/url/url.js") - -function buildUrl (opts, client) { - var protocol = opts.protocol === 'wxs' ? 'wss' : 'ws' - var url = protocol + '://' + opts.hostname + ':' + opts.port + opts.path - if (typeof (opts.transformWsUrl) === 'function') { - url = opts.transformWsUrl(url, opts, client) - } - return url -} - -function setDefaultOpts (opts) { - if (!opts.hostname) { - opts.hostname = 'localhost' - } - if (!opts.port) { - if (opts.protocol === 'wss') { - opts.port = 443 - } else { - opts.port = 80 - } - } - if (!opts.path) { - opts.path = '/' - } - - if (!opts.wsOptions) { - opts.wsOptions = {} - } -} - -function createWebSocket (client, opts) { - var websocketSubProtocol = - (opts.protocolId === 'MQIsdp') && (opts.protocolVersion === 3) - ? 'mqttv3.1' - : 'mqtt' - - setDefaultOpts(opts) - var url = buildUrl(opts, client) - return websocket(WebSocket(url, [websocketSubProtocol])) -} - -function buildBuilder (client, opts) { - if (!opts.hostname) { - opts.hostname = opts.host - } - - if (!opts.hostname) { - // Throwing an error in a Web Worker if no `hostname` is given, because we - // can not determine the `hostname` automatically. If connecting to - // localhost, please supply the `hostname` as an argument. - if (typeof (document) === 'undefined') { - throw new Error('Could not determine host. Specify host manually.') - } - var parsed = urlModule.parse(document.URL) - opts.hostname = parsed.hostname - - if (!opts.port) { - opts.port = parsed.port - } - } - return createWebSocket(client, opts) -} - -module.exports = buildBuilder - - -/***/ }), - -/***/ "./node_modules/mqtt/lib/store.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -/** - * Module dependencies - */ -var xtend = __webpack_require__("./node_modules/xtend/immutable.js") - -var Readable = __webpack_require__("./node_modules/readable-stream/readable-browser.js").Readable -var streamsOpts = { objectMode: true } -var defaultStoreOptions = { - clean: true -} - -/** - * In-memory implementation of the message store - * This can actually be saved into files. - * - * @param {Object} [options] - store options - */ -function Store (options) { - if (!(this instanceof Store)) { - return new Store(options) - } - - this.options = options || {} - - // Defaults - this.options = xtend(defaultStoreOptions, options) - - this._inflights = {} -} - -/** - * Adds a packet to the store, a packet is - * anything that has a messageId property. - * - */ -Store.prototype.put = function (packet, cb) { - this._inflights[packet.messageId] = packet - - if (cb) { - cb() - } - - return this -} - -/** - * Creates a stream with all the packets in the store - * - */ -Store.prototype.createStream = function () { - var stream = new Readable(streamsOpts) - var inflights = this._inflights - var ids = Object.keys(this._inflights) - var destroyed = false - var i = 0 - - stream._read = function () { - if (!destroyed && i < ids.length) { - this.push(inflights[ids[i++]]) - } else { - this.push(null) - } - } - - stream.destroy = function () { - if (destroyed) { - return - } - - var self = this - - destroyed = true - - process.nextTick(function () { - self.emit('close') - }) - } - - return stream -} - -/** - * deletes a packet from the store. - */ -Store.prototype.del = function (packet, cb) { - packet = this._inflights[packet.messageId] - if (packet) { - delete this._inflights[packet.messageId] - cb(null, packet) - } else if (cb) { - cb(new Error('missing packet')) - } - - return this -} - -/** - * get a packet from the store. - */ -Store.prototype.get = function (packet, cb) { - packet = this._inflights[packet.messageId] - if (packet) { - cb(null, packet) - } else if (cb) { - cb(new Error('missing packet')) - } - - return this -} - -/** - * Close the store - */ -Store.prototype.close = function (cb) { - if (this.options.clean) { - this._inflights = null - } - if (cb) { - cb() - } -} - -module.exports = Store - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/mqtt/lib/validations.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Validate a topic to see if it's valid or not. - * A topic is valid if it follow below rules: - * - Rule #1: If any part of the topic is not `+` or `#`, then it must not contain `+` and '#' - * - Rule #2: Part `#` must be located at the end of the mailbox - * - * @param {String} topic - A topic - * @returns {Boolean} If the topic is valid, returns true. Otherwise, returns false. - */ -function validateTopic (topic) { - var parts = topic.split('/') - - for (var i = 0; i < parts.length; i++) { - if (parts[i] === '+') { - continue - } - - if (parts[i] === '#') { - // for Rule #2 - return i === parts.length - 1 - } - - if (parts[i].indexOf('+') !== -1 || parts[i].indexOf('#') !== -1) { - return false - } - } - - return true -} - -/** - * Validate an array of topics to see if any of them is valid or not - * @param {Array} topics - Array of topics - * @returns {String} If the topics is valid, returns null. Otherwise, returns the invalid one - */ -function validateTopics (topics) { - if (topics.length === 0) { - return 'empty_topic_list' - } - for (var i = 0; i < topics.length; i++) { - if (!validateTopic(topics[i])) { - return topics[i] - } - } - return null -} - -module.exports = { - validateTopics: validateTopics -} - - -/***/ }), - -/***/ "./node_modules/no-scroll/index.js": -/***/ (function(module, exports) { - -(function(root) { - var isOn = false; - var scrollbarSize; - var scrollTop; - - function getScrollbarSize() { - if (typeof scrollbarSize !== 'undefined') return scrollbarSize; - - var doc = document.documentElement; - var dummyScroller = document.createElement('div'); - dummyScroller.setAttribute('style', 'width:99px;height:99px;' + 'position:absolute;top:-9999px;overflow:scroll;'); - doc.appendChild(dummyScroller); - scrollbarSize = dummyScroller.offsetWidth - dummyScroller.clientWidth; - doc.removeChild(dummyScroller); - return scrollbarSize; - } - - function hasScrollbar() { - return document.documentElement.scrollHeight > window.innerHeight; - } - - function on(options) { - if (typeof document === 'undefined') return; - var doc = document.documentElement; - scrollTop = window.pageYOffset; - if (hasScrollbar()) { - doc.style.width = 'calc(100% - '+ getScrollbarSize() +'px)'; - } else { - doc.style.width = '100%'; - } - doc.style.position = 'fixed'; - doc.style.top = -scrollTop + 'px'; - doc.style.overflow = 'hidden'; - isOn = true; - } - - function off() { - if (typeof document === 'undefined') return; - var doc = document.documentElement; - doc.style.width = ''; - doc.style.position = ''; - doc.style.top = ''; - doc.style.overflow = ''; - window.scroll(0, scrollTop); - isOn = false; - } - - function toggle() { - if (isOn) { - off(); - return; - } - on(); - } - - var noScroll = { - on: on, - off: off, - toggle: toggle, - }; - - if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { - module.exports = noScroll; - } else { - root.noScroll = noScroll; - } -})(this); - - -/***/ }), - -/***/ "./node_modules/normalize-scroll-left/lib/main.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -// Based on https://github.com/react-bootstrap/dom-helpers/blob/master/src/util/inDOM.js -var inDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); -var cachedType; -function _setScrollType(type) { - cachedType = type; -} -exports._setScrollType = _setScrollType; -// Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type -function detectScrollType() { - if (cachedType) { - return cachedType; - } - if (!inDOM || !window.document.body) { - return 'indeterminate'; - } - var dummy = window.document.createElement('div'); - dummy.appendChild(document.createTextNode('ABCD')); - dummy.dir = 'rtl'; - dummy.style.fontSize = '14px'; - dummy.style.width = '4px'; - dummy.style.height = '1px'; - dummy.style.position = 'absolute'; - dummy.style.top = '-1000px'; - dummy.style.overflow = 'scroll'; - document.body.appendChild(dummy); - cachedType = 'reverse'; - if (dummy.scrollLeft > 0) { - cachedType = 'default'; - } - else { - dummy.scrollLeft = 1; - if (dummy.scrollLeft === 0) { - cachedType = 'negative'; - } - } - document.body.removeChild(dummy); - return cachedType; -} -exports.detectScrollType = detectScrollType; -// Based on https://stackoverflow.com/a/24394376 -function getNormalizedScrollLeft(element, direction) { - var scrollLeft = element.scrollLeft; - // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior - if (direction !== 'rtl') { - return scrollLeft; - } - var type = detectScrollType(); - if (type === 'indeterminate') { - return Number.NaN; - } - switch (type) { - case 'negative': - return element.scrollWidth - element.clientWidth + scrollLeft; - case 'reverse': - return element.scrollWidth - element.clientWidth - scrollLeft; - } - return scrollLeft; -} -exports.getNormalizedScrollLeft = getNormalizedScrollLeft; -function setNormalizedScrollLeft(element, scrollLeft, direction) { - // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior - if (direction !== 'rtl') { - element.scrollLeft = scrollLeft; - return; - } - var type = detectScrollType(); - if (type === 'indeterminate') { - return; - } - switch (type) { - case 'negative': - element.scrollLeft = element.clientWidth - element.scrollWidth + scrollLeft; - break; - case 'reverse': - element.scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft; - break; - default: - element.scrollLeft = scrollLeft; - break; - } -} -exports.setNormalizedScrollLeft = setNormalizedScrollLeft; - - -/***/ }), - -/***/ "./node_modules/once/once.js": -/***/ (function(module, exports, __webpack_require__) { - -var wrappy = __webpack_require__("./node_modules/wrappy/wrappy.js") -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - - -/***/ }), - -/***/ "./node_modules/popper.js/dist/esm/popper.js": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* WEBPACK VAR INJECTION */(function(global) {/**! - * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.12.9 - * @license - * Copyright (c) 2016 Federico Zivolo and contributors - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; -var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; -var timeoutDuration = 0; -for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { - if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { - timeoutDuration = 1; - break; - } -} - -function microtaskDebounce(fn) { - var called = false; - return function () { - if (called) { - return; - } - called = true; - window.Promise.resolve().then(function () { - called = false; - fn(); - }); - }; -} - -function taskDebounce(fn) { - var scheduled = false; - return function () { - if (!scheduled) { - scheduled = true; - setTimeout(function () { - scheduled = false; - fn(); - }, timeoutDuration); - } - }; -} - -var supportsMicroTasks = isBrowser && window.Promise; - -/** -* Create a debounced version of a method, that's asynchronously deferred -* but called in the minimum time possible. -* -* @method -* @memberof Popper.Utils -* @argument {Function} fn -* @returns {Function} -*/ -var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; - -/** - * Check if the given variable is a function - * @method - * @memberof Popper.Utils - * @argument {Any} functionToCheck - variable to check - * @returns {Boolean} answer to: is a function? - */ -function isFunction(functionToCheck) { - var getType = {}; - return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; -} - -/** - * Get CSS computed property of the given element - * @method - * @memberof Popper.Utils - * @argument {Eement} element - * @argument {String} property - */ -function getStyleComputedProperty(element, property) { - if (element.nodeType !== 1) { - return []; - } - // NOTE: 1 DOM access here - var css = getComputedStyle(element, null); - return property ? css[property] : css; -} - -/** - * Returns the parentNode or the host of the element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} parent - */ -function getParentNode(element) { - if (element.nodeName === 'HTML') { - return element; - } - return element.parentNode || element.host; -} - -/** - * Returns the scrolling parent of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} scroll parent - */ -function getScrollParent(element) { - // Return body, `getScroll` will take care to get the correct `scrollTop` from it - if (!element) { - return document.body; - } - - switch (element.nodeName) { - case 'HTML': - case 'BODY': - return element.ownerDocument.body; - case '#document': - return element.body; - } - - // Firefox want us to check `-x` and `-y` variations as well - - var _getStyleComputedProp = getStyleComputedProperty(element), - overflow = _getStyleComputedProp.overflow, - overflowX = _getStyleComputedProp.overflowX, - overflowY = _getStyleComputedProp.overflowY; - - if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) { - return element; - } - - return getScrollParent(getParentNode(element)); -} - -/** - * Returns the offset parent of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} offset parent - */ -function getOffsetParent(element) { - // NOTE: 1 DOM access here - var offsetParent = element && element.offsetParent; - var nodeName = offsetParent && offsetParent.nodeName; - - if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { - if (element) { - return element.ownerDocument.documentElement; - } - - return document.documentElement; - } - - // .offsetParent will return the closest TD or TABLE in case - // no offsetParent is present, I hate this job... - if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { - return getOffsetParent(offsetParent); - } - - return offsetParent; -} - -function isOffsetContainer(element) { - var nodeName = element.nodeName; - - if (nodeName === 'BODY') { - return false; - } - return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; -} - -/** - * Finds the root node (document, shadowDOM root) of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} node - * @returns {Element} root node - */ -function getRoot(node) { - if (node.parentNode !== null) { - return getRoot(node.parentNode); - } - - return node; -} - -/** - * Finds the offset parent common to the two provided nodes - * @method - * @memberof Popper.Utils - * @argument {Element} element1 - * @argument {Element} element2 - * @returns {Element} common offset parent - */ -function findCommonOffsetParent(element1, element2) { - // This check is needed to avoid errors in case one of the elements isn't defined for any reason - if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { - return document.documentElement; - } - - // Here we make sure to give as "start" the element that comes first in the DOM - var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; - var start = order ? element1 : element2; - var end = order ? element2 : element1; - - // Get common ancestor container - var range = document.createRange(); - range.setStart(start, 0); - range.setEnd(end, 0); - var commonAncestorContainer = range.commonAncestorContainer; - - // Both nodes are inside #document - - if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { - if (isOffsetContainer(commonAncestorContainer)) { - return commonAncestorContainer; - } - - return getOffsetParent(commonAncestorContainer); - } - - // one of the nodes is inside shadowDOM, find which one - var element1root = getRoot(element1); - if (element1root.host) { - return findCommonOffsetParent(element1root.host, element2); - } else { - return findCommonOffsetParent(element1, getRoot(element2).host); - } -} - -/** - * Gets the scroll value of the given element in the given side (top and left) - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @argument {String} side `top` or `left` - * @returns {number} amount of scrolled pixels - */ -function getScroll(element) { - var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; - - var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; - var nodeName = element.nodeName; - - if (nodeName === 'BODY' || nodeName === 'HTML') { - var html = element.ownerDocument.documentElement; - var scrollingElement = element.ownerDocument.scrollingElement || html; - return scrollingElement[upperSide]; - } - - return element[upperSide]; -} - -/* - * Sum or subtract the element scroll values (left and top) from a given rect object - * @method - * @memberof Popper.Utils - * @param {Object} rect - Rect object you want to change - * @param {HTMLElement} element - The element from the function reads the scroll values - * @param {Boolean} subtract - set to true if you want to subtract the scroll values - * @return {Object} rect - The modifier rect object - */ -function includeScroll(rect, element) { - var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var scrollTop = getScroll(element, 'top'); - var scrollLeft = getScroll(element, 'left'); - var modifier = subtract ? -1 : 1; - rect.top += scrollTop * modifier; - rect.bottom += scrollTop * modifier; - rect.left += scrollLeft * modifier; - rect.right += scrollLeft * modifier; - return rect; -} - -/* - * Helper to detect borders of a given element - * @method - * @memberof Popper.Utils - * @param {CSSStyleDeclaration} styles - * Result of `getStyleComputedProperty` on the given element - * @param {String} axis - `x` or `y` - * @return {number} borders - The borders size of the given axis - */ - -function getBordersSize(styles, axis) { - var sideA = axis === 'x' ? 'Left' : 'Top'; - var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; - - return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); -} - -/** - * Tells if you are running Internet Explorer 10 - * @method - * @memberof Popper.Utils - * @returns {Boolean} isIE10 - */ -var isIE10 = undefined; - -var isIE10$1 = function () { - if (isIE10 === undefined) { - isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1; - } - return isIE10; -}; - -function getSize(axis, body, html, computedStyle) { - return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0); -} - -function getWindowSizes() { - var body = document.body; - var html = document.documentElement; - var computedStyle = isIE10$1() && getComputedStyle(html); - - return { - height: getSize('Height', body, html, computedStyle), - width: getSize('Width', body, html, computedStyle) - }; -} - -var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}; - -var createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -}(); - - - - - -var defineProperty = function (obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -var _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; -}; - -/** - * Given element offsets, generate an output similar to getBoundingClientRect - * @method - * @memberof Popper.Utils - * @argument {Object} offsets - * @returns {Object} ClientRect like output - */ -function getClientRect(offsets) { - return _extends({}, offsets, { - right: offsets.left + offsets.width, - bottom: offsets.top + offsets.height - }); -} - -/** - * Get bounding client rect of given element - * @method - * @memberof Popper.Utils - * @param {HTMLElement} element - * @return {Object} client rect - */ -function getBoundingClientRect(element) { - var rect = {}; - - // IE10 10 FIX: Please, don't ask, the element isn't - // considered in DOM in some circumstances... - // This isn't reproducible in IE10 compatibility mode of IE11 - if (isIE10$1()) { - try { - rect = element.getBoundingClientRect(); - var scrollTop = getScroll(element, 'top'); - var scrollLeft = getScroll(element, 'left'); - rect.top += scrollTop; - rect.left += scrollLeft; - rect.bottom += scrollTop; - rect.right += scrollLeft; - } catch (err) {} - } else { - rect = element.getBoundingClientRect(); - } - - var result = { - left: rect.left, - top: rect.top, - width: rect.right - rect.left, - height: rect.bottom - rect.top - }; - - // subtract scrollbar size from sizes - var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {}; - var width = sizes.width || element.clientWidth || result.right - result.left; - var height = sizes.height || element.clientHeight || result.bottom - result.top; - - var horizScrollbar = element.offsetWidth - width; - var vertScrollbar = element.offsetHeight - height; - - // if an hypothetical scrollbar is detected, we must be sure it's not a `border` - // we make this check conditional for performance reasons - if (horizScrollbar || vertScrollbar) { - var styles = getStyleComputedProperty(element); - horizScrollbar -= getBordersSize(styles, 'x'); - vertScrollbar -= getBordersSize(styles, 'y'); - - result.width -= horizScrollbar; - result.height -= vertScrollbar; - } - - return getClientRect(result); -} - -function getOffsetRectRelativeToArbitraryNode(children, parent) { - var isIE10 = isIE10$1(); - var isHTML = parent.nodeName === 'HTML'; - var childrenRect = getBoundingClientRect(children); - var parentRect = getBoundingClientRect(parent); - var scrollParent = getScrollParent(children); - - var styles = getStyleComputedProperty(parent); - var borderTopWidth = parseFloat(styles.borderTopWidth, 10); - var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); - - var offsets = getClientRect({ - top: childrenRect.top - parentRect.top - borderTopWidth, - left: childrenRect.left - parentRect.left - borderLeftWidth, - width: childrenRect.width, - height: childrenRect.height - }); - offsets.marginTop = 0; - offsets.marginLeft = 0; - - // Subtract margins of documentElement in case it's being used as parent - // we do this only on HTML because it's the only element that behaves - // differently when margins are applied to it. The margins are included in - // the box of the documentElement, in the other cases not. - if (!isIE10 && isHTML) { - var marginTop = parseFloat(styles.marginTop, 10); - var marginLeft = parseFloat(styles.marginLeft, 10); - - offsets.top -= borderTopWidth - marginTop; - offsets.bottom -= borderTopWidth - marginTop; - offsets.left -= borderLeftWidth - marginLeft; - offsets.right -= borderLeftWidth - marginLeft; - - // Attach marginTop and marginLeft because in some circumstances we may need them - offsets.marginTop = marginTop; - offsets.marginLeft = marginLeft; - } - - if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { - offsets = includeScroll(offsets, parent); - } - - return offsets; -} - -function getViewportOffsetRectRelativeToArtbitraryNode(element) { - var html = element.ownerDocument.documentElement; - var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); - var width = Math.max(html.clientWidth, window.innerWidth || 0); - var height = Math.max(html.clientHeight, window.innerHeight || 0); - - var scrollTop = getScroll(html); - var scrollLeft = getScroll(html, 'left'); - - var offset = { - top: scrollTop - relativeOffset.top + relativeOffset.marginTop, - left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, - width: width, - height: height - }; - - return getClientRect(offset); -} - -/** - * Check if the given element is fixed or is inside a fixed parent - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @argument {Element} customContainer - * @returns {Boolean} answer to "isFixed?" - */ -function isFixed(element) { - var nodeName = element.nodeName; - if (nodeName === 'BODY' || nodeName === 'HTML') { - return false; - } - if (getStyleComputedProperty(element, 'position') === 'fixed') { - return true; - } - return isFixed(getParentNode(element)); -} - -/** - * Computed the boundaries limits and return them - * @method - * @memberof Popper.Utils - * @param {HTMLElement} popper - * @param {HTMLElement} reference - * @param {number} padding - * @param {HTMLElement} boundariesElement - Element used to define the boundaries - * @returns {Object} Coordinates of the boundaries - */ -function getBoundaries(popper, reference, padding, boundariesElement) { - // NOTE: 1 DOM access here - var boundaries = { top: 0, left: 0 }; - var offsetParent = findCommonOffsetParent(popper, reference); - - // Handle viewport case - if (boundariesElement === 'viewport') { - boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent); - } else { - // Handle other cases based on DOM element used as boundaries - var boundariesNode = void 0; - if (boundariesElement === 'scrollParent') { - boundariesNode = getScrollParent(getParentNode(reference)); - if (boundariesNode.nodeName === 'BODY') { - boundariesNode = popper.ownerDocument.documentElement; - } - } else if (boundariesElement === 'window') { - boundariesNode = popper.ownerDocument.documentElement; - } else { - boundariesNode = boundariesElement; - } - - var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent); - - // In case of HTML, we need a different computation - if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { - var _getWindowSizes = getWindowSizes(), - height = _getWindowSizes.height, - width = _getWindowSizes.width; - - boundaries.top += offsets.top - offsets.marginTop; - boundaries.bottom = height + offsets.top; - boundaries.left += offsets.left - offsets.marginLeft; - boundaries.right = width + offsets.left; - } else { - // for all the other DOM elements, this one is good - boundaries = offsets; - } - } - - // Add paddings - boundaries.left += padding; - boundaries.top += padding; - boundaries.right -= padding; - boundaries.bottom -= padding; - - return boundaries; -} - -function getArea(_ref) { - var width = _ref.width, - height = _ref.height; - - return width * height; -} - -/** - * Utility used to transform the `auto` placement to the placement with more - * available space. - * @method - * @memberof Popper.Utils - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { - var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; - - if (placement.indexOf('auto') === -1) { - return placement; - } - - var boundaries = getBoundaries(popper, reference, padding, boundariesElement); - - var rects = { - top: { - width: boundaries.width, - height: refRect.top - boundaries.top - }, - right: { - width: boundaries.right - refRect.right, - height: boundaries.height - }, - bottom: { - width: boundaries.width, - height: boundaries.bottom - refRect.bottom - }, - left: { - width: refRect.left - boundaries.left, - height: boundaries.height - } - }; - - var sortedAreas = Object.keys(rects).map(function (key) { - return _extends({ - key: key - }, rects[key], { - area: getArea(rects[key]) - }); - }).sort(function (a, b) { - return b.area - a.area; - }); - - var filteredAreas = sortedAreas.filter(function (_ref2) { - var width = _ref2.width, - height = _ref2.height; - return width >= popper.clientWidth && height >= popper.clientHeight; - }); - - var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; - - var variation = placement.split('-')[1]; - - return computedPlacement + (variation ? '-' + variation : ''); -} - -/** - * Get offsets to the reference element - * @method - * @memberof Popper.Utils - * @param {Object} state - * @param {Element} popper - the popper element - * @param {Element} reference - the reference element (the popper will be relative to this) - * @returns {Object} An object containing the offsets which will be applied to the popper - */ -function getReferenceOffsets(state, popper, reference) { - var commonOffsetParent = findCommonOffsetParent(popper, reference); - return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent); -} - -/** - * Get the outer sizes of the given element (offset size + margins) - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Object} object containing width and height properties - */ -function getOuterSizes(element) { - var styles = getComputedStyle(element); - var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom); - var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight); - var result = { - width: element.offsetWidth + y, - height: element.offsetHeight + x - }; - return result; -} - -/** - * Get the opposite placement of the given one - * @method - * @memberof Popper.Utils - * @argument {String} placement - * @returns {String} flipped placement - */ -function getOppositePlacement(placement) { - var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; - return placement.replace(/left|right|bottom|top/g, function (matched) { - return hash[matched]; - }); -} - -/** - * Get offsets to the popper - * @method - * @memberof Popper.Utils - * @param {Object} position - CSS position the Popper will get applied - * @param {HTMLElement} popper - the popper element - * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) - * @param {String} placement - one of the valid placement options - * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper - */ -function getPopperOffsets(popper, referenceOffsets, placement) { - placement = placement.split('-')[0]; - - // Get popper node sizes - var popperRect = getOuterSizes(popper); - - // Add position, width and height to our offsets object - var popperOffsets = { - width: popperRect.width, - height: popperRect.height - }; - - // depending by the popper placement we have to compute its offsets slightly differently - var isHoriz = ['right', 'left'].indexOf(placement) !== -1; - var mainSide = isHoriz ? 'top' : 'left'; - var secondarySide = isHoriz ? 'left' : 'top'; - var measurement = isHoriz ? 'height' : 'width'; - var secondaryMeasurement = !isHoriz ? 'height' : 'width'; - - popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; - if (placement === secondarySide) { - popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; - } else { - popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; - } - - return popperOffsets; -} - -/** - * Mimics the `find` method of Array - * @method - * @memberof Popper.Utils - * @argument {Array} arr - * @argument prop - * @argument value - * @returns index or -1 - */ -function find(arr, check) { - // use native find if supported - if (Array.prototype.find) { - return arr.find(check); - } - - // use `filter` to obtain the same behavior of `find` - return arr.filter(check)[0]; -} - -/** - * Return the index of the matching object - * @method - * @memberof Popper.Utils - * @argument {Array} arr - * @argument prop - * @argument value - * @returns index or -1 - */ -function findIndex(arr, prop, value) { - // use native findIndex if supported - if (Array.prototype.findIndex) { - return arr.findIndex(function (cur) { - return cur[prop] === value; - }); - } - - // use `find` + `indexOf` if `findIndex` isn't supported - var match = find(arr, function (obj) { - return obj[prop] === value; - }); - return arr.indexOf(match); -} - -/** - * Loop trough the list of modifiers and run them in order, - * each of them will then edit the data object. - * @method - * @memberof Popper.Utils - * @param {dataObject} data - * @param {Array} modifiers - * @param {String} ends - Optional modifier name used as stopper - * @returns {dataObject} - */ -function runModifiers(modifiers, data, ends) { - var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); - - modifiersToRun.forEach(function (modifier) { - if (modifier['function']) { - // eslint-disable-line dot-notation - console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); - } - var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation - if (modifier.enabled && isFunction(fn)) { - // Add properties to offsets to make them a complete clientRect object - // we do this before each modifier to make sure the previous one doesn't - // mess with these values - data.offsets.popper = getClientRect(data.offsets.popper); - data.offsets.reference = getClientRect(data.offsets.reference); - - data = fn(data, modifier); - } - }); - - return data; -} - -/** - * Updates the position of the popper, computing the new offsets and applying - * the new style.
- * Prefer `scheduleUpdate` over `update` because of performance reasons. - * @method - * @memberof Popper - */ -function update() { - // if popper is destroyed, don't perform any further update - if (this.state.isDestroyed) { - return; - } - - var data = { - instance: this, - styles: {}, - arrowStyles: {}, - attributes: {}, - flipped: false, - offsets: {} - }; - - // compute reference element offsets - data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference); - - // compute auto placement, store placement inside the data object, - // modifiers will be able to edit `placement` if needed - // and refer to originalPlacement to know the original value - data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); - - // store the computed placement inside `originalPlacement` - data.originalPlacement = data.placement; - - // compute the popper offsets - data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); - data.offsets.popper.position = 'absolute'; - - // run the modifiers - data = runModifiers(this.modifiers, data); - - // the first `update` will call `onCreate` callback - // the other ones will call `onUpdate` callback - if (!this.state.isCreated) { - this.state.isCreated = true; - this.options.onCreate(data); - } else { - this.options.onUpdate(data); - } -} - -/** - * Helper used to know if the given modifier is enabled. - * @method - * @memberof Popper.Utils - * @returns {Boolean} - */ -function isModifierEnabled(modifiers, modifierName) { - return modifiers.some(function (_ref) { - var name = _ref.name, - enabled = _ref.enabled; - return enabled && name === modifierName; - }); -} - -/** - * Get the prefixed supported property name - * @method - * @memberof Popper.Utils - * @argument {String} property (camelCase) - * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) - */ -function getSupportedPropertyName(property) { - var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; - var upperProp = property.charAt(0).toUpperCase() + property.slice(1); - - for (var i = 0; i < prefixes.length - 1; i++) { - var prefix = prefixes[i]; - var toCheck = prefix ? '' + prefix + upperProp : property; - if (typeof document.body.style[toCheck] !== 'undefined') { - return toCheck; - } - } - return null; -} - -/** - * Destroy the popper - * @method - * @memberof Popper - */ -function destroy() { - this.state.isDestroyed = true; - - // touch DOM only if `applyStyle` modifier is enabled - if (isModifierEnabled(this.modifiers, 'applyStyle')) { - this.popper.removeAttribute('x-placement'); - this.popper.style.left = ''; - this.popper.style.position = ''; - this.popper.style.top = ''; - this.popper.style[getSupportedPropertyName('transform')] = ''; - } - - this.disableEventListeners(); - - // remove the popper if user explicity asked for the deletion on destroy - // do not use `remove` because IE11 doesn't support it - if (this.options.removeOnDestroy) { - this.popper.parentNode.removeChild(this.popper); - } - return this; -} - -/** - * Get the window associated with the element - * @argument {Element} element - * @returns {Window} - */ -function getWindow(element) { - var ownerDocument = element.ownerDocument; - return ownerDocument ? ownerDocument.defaultView : window; -} - -function attachToScrollParents(scrollParent, event, callback, scrollParents) { - var isBody = scrollParent.nodeName === 'BODY'; - var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; - target.addEventListener(event, callback, { passive: true }); - - if (!isBody) { - attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); - } - scrollParents.push(target); -} - -/** - * Setup needed event listeners used to update the popper position - * @method - * @memberof Popper.Utils - * @private - */ -function setupEventListeners(reference, options, state, updateBound) { - // Resize event listener on window - state.updateBound = updateBound; - getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); - - // Scroll event listener on scroll parents - var scrollElement = getScrollParent(reference); - attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); - state.scrollElement = scrollElement; - state.eventsEnabled = true; - - return state; -} - -/** - * It will add resize/scroll events and start recalculating - * position of the popper element when they are triggered. - * @method - * @memberof Popper - */ -function enableEventListeners() { - if (!this.state.eventsEnabled) { - this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); - } -} - -/** - * Remove event listeners used to update the popper position - * @method - * @memberof Popper.Utils - * @private - */ -function removeEventListeners(reference, state) { - // Remove resize event listener on window - getWindow(reference).removeEventListener('resize', state.updateBound); - - // Remove scroll event listener on scroll parents - state.scrollParents.forEach(function (target) { - target.removeEventListener('scroll', state.updateBound); - }); - - // Reset state - state.updateBound = null; - state.scrollParents = []; - state.scrollElement = null; - state.eventsEnabled = false; - return state; -} - -/** - * It will remove resize/scroll events and won't recalculate popper position - * when they are triggered. It also won't trigger onUpdate callback anymore, - * unless you call `update` method manually. - * @method - * @memberof Popper - */ -function disableEventListeners() { - if (this.state.eventsEnabled) { - cancelAnimationFrame(this.scheduleUpdate); - this.state = removeEventListeners(this.reference, this.state); - } -} - -/** - * Tells if a given input is a number - * @method - * @memberof Popper.Utils - * @param {*} input to check - * @return {Boolean} - */ -function isNumeric(n) { - return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); -} - -/** - * Set the style to the given popper - * @method - * @memberof Popper.Utils - * @argument {Element} element - Element to apply the style to - * @argument {Object} styles - * Object with a list of properties and values which will be applied to the element - */ -function setStyles(element, styles) { - Object.keys(styles).forEach(function (prop) { - var unit = ''; - // add unit if the value is numeric and is one of the following - if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { - unit = 'px'; - } - element.style[prop] = styles[prop] + unit; - }); -} - -/** - * Set the attributes to the given popper - * @method - * @memberof Popper.Utils - * @argument {Element} element - Element to apply the attributes to - * @argument {Object} styles - * Object with a list of properties and values which will be applied to the element - */ -function setAttributes(element, attributes) { - Object.keys(attributes).forEach(function (prop) { - var value = attributes[prop]; - if (value !== false) { - element.setAttribute(prop, attributes[prop]); - } else { - element.removeAttribute(prop); - } - }); -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} data.styles - List of style properties - values to apply to popper element - * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The same data object - */ -function applyStyle(data) { - // any property present in `data.styles` will be applied to the popper, - // in this way we can make the 3rd party modifiers add custom styles to it - // Be aware, modifiers could override the properties defined in the previous - // lines of this modifier! - setStyles(data.instance.popper, data.styles); - - // any property present in `data.attributes` will be applied to the popper, - // they will be set as HTML attributes of the element - setAttributes(data.instance.popper, data.attributes); - - // if arrowElement is defined and arrowStyles has some properties - if (data.arrowElement && Object.keys(data.arrowStyles).length) { - setStyles(data.arrowElement, data.arrowStyles); - } - - return data; -} - -/** - * Set the x-placement attribute before everything else because it could be used - * to add margins to the popper margins needs to be calculated to get the - * correct popper offsets. - * @method - * @memberof Popper.modifiers - * @param {HTMLElement} reference - The reference element used to position the popper - * @param {HTMLElement} popper - The HTML element used as popper. - * @param {Object} options - Popper.js options - */ -function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { - // compute reference element offsets - var referenceOffsets = getReferenceOffsets(state, popper, reference); - - // compute auto placement, store placement inside the data object, - // modifiers will be able to edit `placement` if needed - // and refer to originalPlacement to know the original value - var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); - - popper.setAttribute('x-placement', placement); - - // Apply `position` to popper before anything else because - // without the position applied we can't guarantee correct computations - setStyles(popper, { position: 'absolute' }); - - return options; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function computeStyle(data, options) { - var x = options.x, - y = options.y; - var popper = data.offsets.popper; - - // Remove this legacy support in Popper.js v2 - - var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { - return modifier.name === 'applyStyle'; - }).gpuAcceleration; - if (legacyGpuAccelerationOption !== undefined) { - console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); - } - var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; - - var offsetParent = getOffsetParent(data.instance.popper); - var offsetParentRect = getBoundingClientRect(offsetParent); - - // Styles - var styles = { - position: popper.position - }; - - // floor sides to avoid blurry text - var offsets = { - left: Math.floor(popper.left), - top: Math.floor(popper.top), - bottom: Math.floor(popper.bottom), - right: Math.floor(popper.right) - }; - - var sideA = x === 'bottom' ? 'top' : 'bottom'; - var sideB = y === 'right' ? 'left' : 'right'; - - // if gpuAcceleration is set to `true` and transform is supported, - // we use `translate3d` to apply the position to the popper we - // automatically use the supported prefixed version if needed - var prefixedProperty = getSupportedPropertyName('transform'); - - // now, let's make a step back and look at this code closely (wtf?) - // If the content of the popper grows once it's been positioned, it - // may happen that the popper gets misplaced because of the new content - // overflowing its reference element - // To avoid this problem, we provide two options (x and y), which allow - // the consumer to define the offset origin. - // If we position a popper on top of a reference element, we can set - // `x` to `top` to make the popper grow towards its top instead of - // its bottom. - var left = void 0, - top = void 0; - if (sideA === 'bottom') { - top = -offsetParentRect.height + offsets.bottom; - } else { - top = offsets.top; - } - if (sideB === 'right') { - left = -offsetParentRect.width + offsets.right; - } else { - left = offsets.left; - } - if (gpuAcceleration && prefixedProperty) { - styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; - styles[sideA] = 0; - styles[sideB] = 0; - styles.willChange = 'transform'; - } else { - // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties - var invertTop = sideA === 'bottom' ? -1 : 1; - var invertLeft = sideB === 'right' ? -1 : 1; - styles[sideA] = top * invertTop; - styles[sideB] = left * invertLeft; - styles.willChange = sideA + ', ' + sideB; - } - - // Attributes - var attributes = { - 'x-placement': data.placement - }; - - // Update `data` attributes, styles and arrowStyles - data.attributes = _extends({}, attributes, data.attributes); - data.styles = _extends({}, styles, data.styles); - data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); - - return data; -} - -/** - * Helper used to know if the given modifier depends from another one.
- * It checks if the needed modifier is listed and enabled. - * @method - * @memberof Popper.Utils - * @param {Array} modifiers - list of modifiers - * @param {String} requestingName - name of requesting modifier - * @param {String} requestedName - name of requested modifier - * @returns {Boolean} - */ -function isModifierRequired(modifiers, requestingName, requestedName) { - var requesting = find(modifiers, function (_ref) { - var name = _ref.name; - return name === requestingName; - }); - - var isRequired = !!requesting && modifiers.some(function (modifier) { - return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; - }); - - if (!isRequired) { - var _requesting = '`' + requestingName + '`'; - var requested = '`' + requestedName + '`'; - console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); - } - return isRequired; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function arrow(data, options) { - var _data$offsets$arrow; - - // arrow depends on keepTogether in order to work - if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { - return data; - } - - var arrowElement = options.element; - - // if arrowElement is a string, suppose it's a CSS selector - if (typeof arrowElement === 'string') { - arrowElement = data.instance.popper.querySelector(arrowElement); - - // if arrowElement is not found, don't run the modifier - if (!arrowElement) { - return data; - } - } else { - // if the arrowElement isn't a query selector we must check that the - // provided DOM node is child of its popper node - if (!data.instance.popper.contains(arrowElement)) { - console.warn('WARNING: `arrow.element` must be child of its popper element!'); - return data; - } - } - - var placement = data.placement.split('-')[0]; - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var isVertical = ['left', 'right'].indexOf(placement) !== -1; - - var len = isVertical ? 'height' : 'width'; - var sideCapitalized = isVertical ? 'Top' : 'Left'; - var side = sideCapitalized.toLowerCase(); - var altSide = isVertical ? 'left' : 'top'; - var opSide = isVertical ? 'bottom' : 'right'; - var arrowElementSize = getOuterSizes(arrowElement)[len]; - - // - // extends keepTogether behavior making sure the popper and its - // reference have enough pixels in conjuction - // - - // top/left side - if (reference[opSide] - arrowElementSize < popper[side]) { - data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); - } - // bottom/right side - if (reference[side] + arrowElementSize > popper[opSide]) { - data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; - } - data.offsets.popper = getClientRect(data.offsets.popper); - - // compute center of the popper - var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; - - // Compute the sideValue using the updated popper offsets - // take popper margin in account because we don't have this info available - var css = getStyleComputedProperty(data.instance.popper); - var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); - var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); - var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; - - // prevent arrowElement from being placed not contiguously to its popper - sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); - - data.arrowElement = arrowElement; - data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); - - return data; -} - -/** - * Get the opposite placement variation of the given one - * @method - * @memberof Popper.Utils - * @argument {String} placement variation - * @returns {String} flipped placement variation - */ -function getOppositeVariation(variation) { - if (variation === 'end') { - return 'start'; - } else if (variation === 'start') { - return 'end'; - } - return variation; -} - -/** - * List of accepted placements to use as values of the `placement` option.
- * Valid placements are: - * - `auto` - * - `top` - * - `right` - * - `bottom` - * - `left` - * - * Each placement can have a variation from this list: - * - `-start` - * - `-end` - * - * Variations are interpreted easily if you think of them as the left to right - * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` - * is right.
- * Vertically (`left` and `right`), `start` is top and `end` is bottom. - * - * Some valid examples are: - * - `top-end` (on top of reference, right aligned) - * - `right-start` (on right of reference, top aligned) - * - `bottom` (on bottom, centered) - * - `auto-right` (on the side with more space available, alignment depends by placement) - * - * @static - * @type {Array} - * @enum {String} - * @readonly - * @method placements - * @memberof Popper - */ -var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; - -// Get rid of `auto` `auto-start` and `auto-end` -var validPlacements = placements.slice(3); - -/** - * Given an initial placement, returns all the subsequent placements - * clockwise (or counter-clockwise). - * - * @method - * @memberof Popper.Utils - * @argument {String} placement - A valid placement (it accepts variations) - * @argument {Boolean} counter - Set to true to walk the placements counterclockwise - * @returns {Array} placements including their variations - */ -function clockwise(placement) { - var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - var index = validPlacements.indexOf(placement); - var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); - return counter ? arr.reverse() : arr; -} - -var BEHAVIORS = { - FLIP: 'flip', - CLOCKWISE: 'clockwise', - COUNTERCLOCKWISE: 'counterclockwise' -}; - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function flip(data, options) { - // if `inner` modifier is enabled, we can't use the `flip` modifier - if (isModifierEnabled(data.instance.modifiers, 'inner')) { - return data; - } - - if (data.flipped && data.placement === data.originalPlacement) { - // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides - return data; - } - - var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement); - - var placement = data.placement.split('-')[0]; - var placementOpposite = getOppositePlacement(placement); - var variation = data.placement.split('-')[1] || ''; - - var flipOrder = []; - - switch (options.behavior) { - case BEHAVIORS.FLIP: - flipOrder = [placement, placementOpposite]; - break; - case BEHAVIORS.CLOCKWISE: - flipOrder = clockwise(placement); - break; - case BEHAVIORS.COUNTERCLOCKWISE: - flipOrder = clockwise(placement, true); - break; - default: - flipOrder = options.behavior; - } - - flipOrder.forEach(function (step, index) { - if (placement !== step || flipOrder.length === index + 1) { - return data; - } - - placement = data.placement.split('-')[0]; - placementOpposite = getOppositePlacement(placement); - - var popperOffsets = data.offsets.popper; - var refOffsets = data.offsets.reference; - - // using floor because the reference offsets may contain decimals we are not going to consider here - var floor = Math.floor; - var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); - - var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); - var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); - var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); - var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); - - var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; - - // flip the variation if required - var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; - var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); - - if (overlapsRef || overflowsBoundaries || flippedVariation) { - // this boolean to detect any flip loop - data.flipped = true; - - if (overlapsRef || overflowsBoundaries) { - placement = flipOrder[index + 1]; - } - - if (flippedVariation) { - variation = getOppositeVariation(variation); - } - - data.placement = placement + (variation ? '-' + variation : ''); - - // this object contains `position`, we want to preserve it along with - // any additional property we may add in the future - data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); - - data = runModifiers(data.instance.modifiers, data, 'flip'); - } - }); - return data; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function keepTogether(data) { - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var placement = data.placement.split('-')[0]; - var floor = Math.floor; - var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; - var side = isVertical ? 'right' : 'bottom'; - var opSide = isVertical ? 'left' : 'top'; - var measurement = isVertical ? 'width' : 'height'; - - if (popper[side] < floor(reference[opSide])) { - data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; - } - if (popper[opSide] > floor(reference[side])) { - data.offsets.popper[opSide] = floor(reference[side]); - } - - return data; -} - -/** - * Converts a string containing value + unit into a px value number - * @function - * @memberof {modifiers~offset} - * @private - * @argument {String} str - Value + unit string - * @argument {String} measurement - `height` or `width` - * @argument {Object} popperOffsets - * @argument {Object} referenceOffsets - * @returns {Number|String} - * Value in pixels, or original string if no values were extracted - */ -function toValue(str, measurement, popperOffsets, referenceOffsets) { - // separate value from unit - var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); - var value = +split[1]; - var unit = split[2]; - - // If it's not a number it's an operator, I guess - if (!value) { - return str; - } - - if (unit.indexOf('%') === 0) { - var element = void 0; - switch (unit) { - case '%p': - element = popperOffsets; - break; - case '%': - case '%r': - default: - element = referenceOffsets; - } - - var rect = getClientRect(element); - return rect[measurement] / 100 * value; - } else if (unit === 'vh' || unit === 'vw') { - // if is a vh or vw, we calculate the size based on the viewport - var size = void 0; - if (unit === 'vh') { - size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); - } else { - size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); - } - return size / 100 * value; - } else { - // if is an explicit pixel unit, we get rid of the unit and keep the value - // if is an implicit unit, it's px, and we return just the value - return value; - } -} - -/** - * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. - * @function - * @memberof {modifiers~offset} - * @private - * @argument {String} offset - * @argument {Object} popperOffsets - * @argument {Object} referenceOffsets - * @argument {String} basePlacement - * @returns {Array} a two cells array with x and y offsets in numbers - */ -function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { - var offsets = [0, 0]; - - // Use height if placement is left or right and index is 0 otherwise use width - // in this way the first offset will use an axis and the second one - // will use the other one - var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; - - // Split the offset string to obtain a list of values and operands - // The regex addresses values with the plus or minus sign in front (+10, -20, etc) - var fragments = offset.split(/(\+|\-)/).map(function (frag) { - return frag.trim(); - }); - - // Detect if the offset string contains a pair of values or a single one - // they could be separated by comma or space - var divider = fragments.indexOf(find(fragments, function (frag) { - return frag.search(/,|\s/) !== -1; - })); - - if (fragments[divider] && fragments[divider].indexOf(',') === -1) { - console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); - } - - // If divider is found, we divide the list of values and operands to divide - // them by ofset X and Y. - var splitRegex = /\s*,\s*|\s+/; - var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; - - // Convert the values with units to absolute pixels to allow our computations - ops = ops.map(function (op, index) { - // Most of the units rely on the orientation of the popper - var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; - var mergeWithPrevious = false; - return op - // This aggregates any `+` or `-` sign that aren't considered operators - // e.g.: 10 + +5 => [10, +, +5] - .reduce(function (a, b) { - if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { - a[a.length - 1] = b; - mergeWithPrevious = true; - return a; - } else if (mergeWithPrevious) { - a[a.length - 1] += b; - mergeWithPrevious = false; - return a; - } else { - return a.concat(b); - } - }, []) - // Here we convert the string values into number values (in px) - .map(function (str) { - return toValue(str, measurement, popperOffsets, referenceOffsets); - }); - }); - - // Loop trough the offsets arrays and execute the operations - ops.forEach(function (op, index) { - op.forEach(function (frag, index2) { - if (isNumeric(frag)) { - offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); - } - }); - }); - return offsets; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @argument {Number|String} options.offset=0 - * The offset value as described in the modifier description - * @returns {Object} The data object, properly modified - */ -function offset(data, _ref) { - var offset = _ref.offset; - var placement = data.placement, - _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var basePlacement = placement.split('-')[0]; - - var offsets = void 0; - if (isNumeric(+offset)) { - offsets = [+offset, 0]; - } else { - offsets = parseOffset(offset, popper, reference, basePlacement); - } - - if (basePlacement === 'left') { - popper.top += offsets[0]; - popper.left -= offsets[1]; - } else if (basePlacement === 'right') { - popper.top += offsets[0]; - popper.left += offsets[1]; - } else if (basePlacement === 'top') { - popper.left += offsets[0]; - popper.top -= offsets[1]; - } else if (basePlacement === 'bottom') { - popper.left += offsets[0]; - popper.top += offsets[1]; - } - - data.popper = popper; - return data; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function preventOverflow(data, options) { - var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); - - // If offsetParent is the reference element, we really want to - // go one step up and use the next offsetParent as reference to - // avoid to make this modifier completely useless and look like broken - if (data.instance.reference === boundariesElement) { - boundariesElement = getOffsetParent(boundariesElement); - } - - var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement); - options.boundaries = boundaries; - - var order = options.priority; - var popper = data.offsets.popper; - - var check = { - primary: function primary(placement) { - var value = popper[placement]; - if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { - value = Math.max(popper[placement], boundaries[placement]); - } - return defineProperty({}, placement, value); - }, - secondary: function secondary(placement) { - var mainSide = placement === 'right' ? 'left' : 'top'; - var value = popper[mainSide]; - if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { - value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); - } - return defineProperty({}, mainSide, value); - } - }; - - order.forEach(function (placement) { - var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; - popper = _extends({}, popper, check[side](placement)); - }); - - data.offsets.popper = popper; - - return data; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function shift(data) { - var placement = data.placement; - var basePlacement = placement.split('-')[0]; - var shiftvariation = placement.split('-')[1]; - - // if shift shiftvariation is specified, run the modifier - if (shiftvariation) { - var _data$offsets = data.offsets, - reference = _data$offsets.reference, - popper = _data$offsets.popper; - - var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; - var side = isVertical ? 'left' : 'top'; - var measurement = isVertical ? 'width' : 'height'; - - var shiftOffsets = { - start: defineProperty({}, side, reference[side]), - end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) - }; - - data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); - } - - return data; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function hide(data) { - if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { - return data; - } - - var refRect = data.offsets.reference; - var bound = find(data.instance.modifiers, function (modifier) { - return modifier.name === 'preventOverflow'; - }).boundaries; - - if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { - // Avoid unnecessary DOM access if visibility hasn't changed - if (data.hide === true) { - return data; - } - - data.hide = true; - data.attributes['x-out-of-boundaries'] = ''; - } else { - // Avoid unnecessary DOM access if visibility hasn't changed - if (data.hide === false) { - return data; - } - - data.hide = false; - data.attributes['x-out-of-boundaries'] = false; - } - - return data; -} - -/** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ -function inner(data) { - var placement = data.placement; - var basePlacement = placement.split('-')[0]; - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; - - var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; - - popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); - - data.placement = getOppositePlacement(placement); - data.offsets.popper = getClientRect(popper); - - return data; -} - -/** - * Modifier function, each modifier can have a function of this type assigned - * to its `fn` property.
- * These functions will be called on each update, this means that you must - * make sure they are performant enough to avoid performance bottlenecks. - * - * @function ModifierFn - * @argument {dataObject} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {dataObject} The data object, properly modified - */ - -/** - * Modifiers are plugins used to alter the behavior of your poppers.
- * Popper.js uses a set of 9 modifiers to provide all the basic functionalities - * needed by the library. - * - * Usually you don't want to override the `order`, `fn` and `onLoad` props. - * All the other properties are configurations that could be tweaked. - * @namespace modifiers - */ -var modifiers = { - /** - * Modifier used to shift the popper on the start or end of its reference - * element.
- * It will read the variation of the `placement` property.
- * It can be one either `-end` or `-start`. - * @memberof modifiers - * @inner - */ - shift: { - /** @prop {number} order=100 - Index used to define the order of execution */ - order: 100, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: shift - }, - - /** - * The `offset` modifier can shift your popper on both its axis. - * - * It accepts the following units: - * - `px` or unitless, interpreted as pixels - * - `%` or `%r`, percentage relative to the length of the reference element - * - `%p`, percentage relative to the length of the popper element - * - `vw`, CSS viewport width unit - * - `vh`, CSS viewport height unit - * - * For length is intended the main axis relative to the placement of the popper.
- * This means that if the placement is `top` or `bottom`, the length will be the - * `width`. In case of `left` or `right`, it will be the height. - * - * You can provide a single value (as `Number` or `String`), or a pair of values - * as `String` divided by a comma or one (or more) white spaces.
- * The latter is a deprecated method because it leads to confusion and will be - * removed in v2.
- * Additionally, it accepts additions and subtractions between different units. - * Note that multiplications and divisions aren't supported. - * - * Valid examples are: - * ``` - * 10 - * '10%' - * '10, 10' - * '10%, 10' - * '10 + 10%' - * '10 - 5vh + 3%' - * '-10px + 5vh, 5px - 6%' - * ``` - * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap - * > with their reference element, unfortunately, you will have to disable the `flip` modifier. - * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373) - * - * @memberof modifiers - * @inner - */ - offset: { - /** @prop {number} order=200 - Index used to define the order of execution */ - order: 200, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: offset, - /** @prop {Number|String} offset=0 - * The offset value as described in the modifier description - */ - offset: 0 - }, - - /** - * Modifier used to prevent the popper from being positioned outside the boundary. - * - * An scenario exists where the reference itself is not within the boundaries.
- * We can say it has "escaped the boundaries" — or just "escaped".
- * In this case we need to decide whether the popper should either: - * - * - detach from the reference and remain "trapped" in the boundaries, or - * - if it should ignore the boundary and "escape with its reference" - * - * When `escapeWithReference` is set to`true` and reference is completely - * outside its boundaries, the popper will overflow (or completely leave) - * the boundaries in order to remain attached to the edge of the reference. - * - * @memberof modifiers - * @inner - */ - preventOverflow: { - /** @prop {number} order=300 - Index used to define the order of execution */ - order: 300, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: preventOverflow, - /** - * @prop {Array} [priority=['left','right','top','bottom']] - * Popper will try to prevent overflow following these priorities by default, - * then, it could overflow on the left and on top of the `boundariesElement` - */ - priority: ['left', 'right', 'top', 'bottom'], - /** - * @prop {number} padding=5 - * Amount of pixel used to define a minimum distance between the boundaries - * and the popper this makes sure the popper has always a little padding - * between the edges of its container - */ - padding: 5, - /** - * @prop {String|HTMLElement} boundariesElement='scrollParent' - * Boundaries used by the modifier, can be `scrollParent`, `window`, - * `viewport` or any DOM element. - */ - boundariesElement: 'scrollParent' - }, - - /** - * Modifier used to make sure the reference and its popper stay near eachothers - * without leaving any gap between the two. Expecially useful when the arrow is - * enabled and you want to assure it to point to its reference element. - * It cares only about the first axis, you can still have poppers with margin - * between the popper and its reference element. - * @memberof modifiers - * @inner - */ - keepTogether: { - /** @prop {number} order=400 - Index used to define the order of execution */ - order: 400, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: keepTogether - }, - - /** - * This modifier is used to move the `arrowElement` of the popper to make - * sure it is positioned between the reference element and its popper element. - * It will read the outer size of the `arrowElement` node to detect how many - * pixels of conjuction are needed. - * - * It has no effect if no `arrowElement` is provided. - * @memberof modifiers - * @inner - */ - arrow: { - /** @prop {number} order=500 - Index used to define the order of execution */ - order: 500, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: arrow, - /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ - element: '[x-arrow]' - }, - - /** - * Modifier used to flip the popper's placement when it starts to overlap its - * reference element. - * - * Requires the `preventOverflow` modifier before it in order to work. - * - * **NOTE:** this modifier will interrupt the current update cycle and will - * restart it if it detects the need to flip the placement. - * @memberof modifiers - * @inner - */ - flip: { - /** @prop {number} order=600 - Index used to define the order of execution */ - order: 600, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: flip, - /** - * @prop {String|Array} behavior='flip' - * The behavior used to change the popper's placement. It can be one of - * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid - * placements (with optional variations). - */ - behavior: 'flip', - /** - * @prop {number} padding=5 - * The popper will flip if it hits the edges of the `boundariesElement` - */ - padding: 5, - /** - * @prop {String|HTMLElement} boundariesElement='viewport' - * The element which will define the boundaries of the popper position, - * the popper will never be placed outside of the defined boundaries - * (except if keepTogether is enabled) - */ - boundariesElement: 'viewport' - }, - - /** - * Modifier used to make the popper flow toward the inner of the reference element. - * By default, when this modifier is disabled, the popper will be placed outside - * the reference element. - * @memberof modifiers - * @inner - */ - inner: { - /** @prop {number} order=700 - Index used to define the order of execution */ - order: 700, - /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ - enabled: false, - /** @prop {ModifierFn} */ - fn: inner - }, - - /** - * Modifier used to hide the popper when its reference element is outside of the - * popper boundaries. It will set a `x-out-of-boundaries` attribute which can - * be used to hide with a CSS selector the popper when its reference is - * out of boundaries. - * - * Requires the `preventOverflow` modifier before it in order to work. - * @memberof modifiers - * @inner - */ - hide: { - /** @prop {number} order=800 - Index used to define the order of execution */ - order: 800, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: hide - }, - - /** - * Computes the style that will be applied to the popper element to gets - * properly positioned. - * - * Note that this modifier will not touch the DOM, it just prepares the styles - * so that `applyStyle` modifier can apply it. This separation is useful - * in case you need to replace `applyStyle` with a custom implementation. - * - * This modifier has `850` as `order` value to maintain backward compatibility - * with previous versions of Popper.js. Expect the modifiers ordering method - * to change in future major versions of the library. - * - * @memberof modifiers - * @inner - */ - computeStyle: { - /** @prop {number} order=850 - Index used to define the order of execution */ - order: 850, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: computeStyle, - /** - * @prop {Boolean} gpuAcceleration=true - * If true, it uses the CSS 3d transformation to position the popper. - * Otherwise, it will use the `top` and `left` properties. - */ - gpuAcceleration: true, - /** - * @prop {string} [x='bottom'] - * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. - * Change this if your popper should grow in a direction different from `bottom` - */ - x: 'bottom', - /** - * @prop {string} [x='left'] - * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. - * Change this if your popper should grow in a direction different from `right` - */ - y: 'right' - }, - - /** - * Applies the computed styles to the popper element. - * - * All the DOM manipulations are limited to this modifier. This is useful in case - * you want to integrate Popper.js inside a framework or view library and you - * want to delegate all the DOM manipulations to it. - * - * Note that if you disable this modifier, you must make sure the popper element - * has its position set to `absolute` before Popper.js can do its work! - * - * Just disable this modifier and define you own to achieve the desired effect. - * - * @memberof modifiers - * @inner - */ - applyStyle: { - /** @prop {number} order=900 - Index used to define the order of execution */ - order: 900, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: applyStyle, - /** @prop {Function} */ - onLoad: applyStyleOnLoad, - /** - * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier - * @prop {Boolean} gpuAcceleration=true - * If true, it uses the CSS 3d transformation to position the popper. - * Otherwise, it will use the `top` and `left` properties. - */ - gpuAcceleration: undefined - } -}; - -/** - * The `dataObject` is an object containing all the informations used by Popper.js - * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks. - * @name dataObject - * @property {Object} data.instance The Popper.js instance - * @property {String} data.placement Placement applied to popper - * @property {String} data.originalPlacement Placement originally defined on init - * @property {Boolean} data.flipped True if popper has been flipped by flip modifier - * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper. - * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier - * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`) - * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`) - * @property {Object} data.boundaries Offsets of the popper boundaries - * @property {Object} data.offsets The measurements of popper, reference and arrow elements. - * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values - * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values - * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 - */ - -/** - * Default options provided to Popper.js constructor.
- * These can be overriden using the `options` argument of Popper.js.
- * To override an option, simply pass as 3rd argument an object with the same - * structure of this object, example: - * ``` - * new Popper(ref, pop, { - * modifiers: { - * preventOverflow: { enabled: false } - * } - * }) - * ``` - * @type {Object} - * @static - * @memberof Popper - */ -var Defaults = { - /** - * Popper's placement - * @prop {Popper.placements} placement='bottom' - */ - placement: 'bottom', - - /** - * Whether events (resize, scroll) are initially enabled - * @prop {Boolean} eventsEnabled=true - */ - eventsEnabled: true, - - /** - * Set to true if you want to automatically remove the popper when - * you call the `destroy` method. - * @prop {Boolean} removeOnDestroy=false - */ - removeOnDestroy: false, - - /** - * Callback called when the popper is created.
- * By default, is set to no-op.
- * Access Popper.js instance with `data.instance`. - * @prop {onCreate} - */ - onCreate: function onCreate() {}, - - /** - * Callback called when the popper is updated, this callback is not called - * on the initialization/creation of the popper, but only on subsequent - * updates.
- * By default, is set to no-op.
- * Access Popper.js instance with `data.instance`. - * @prop {onUpdate} - */ - onUpdate: function onUpdate() {}, - - /** - * List of modifiers used to modify the offsets before they are applied to the popper. - * They provide most of the functionalities of Popper.js - * @prop {modifiers} - */ - modifiers: modifiers -}; - -/** - * @callback onCreate - * @param {dataObject} data - */ - -/** - * @callback onUpdate - * @param {dataObject} data - */ - -// Utils -// Methods -var Popper = function () { - /** - * Create a new Popper.js instance - * @class Popper - * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper - * @param {HTMLElement} popper - The HTML element used as popper. - * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) - * @return {Object} instance - The generated Popper.js instance - */ - function Popper(reference, popper) { - var _this = this; - - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - classCallCheck(this, Popper); - - this.scheduleUpdate = function () { - return requestAnimationFrame(_this.update); - }; - - // make update() debounced, so that it only runs at most once-per-tick - this.update = debounce(this.update.bind(this)); - - // with {} we create a new object with the options inside it - this.options = _extends({}, Popper.Defaults, options); - - // init state - this.state = { - isDestroyed: false, - isCreated: false, - scrollParents: [] - }; - - // get reference and popper elements (allow jQuery wrappers) - this.reference = reference && reference.jquery ? reference[0] : reference; - this.popper = popper && popper.jquery ? popper[0] : popper; - - // Deep merge modifiers options - this.options.modifiers = {}; - Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { - _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); - }); - - // Refactoring modifiers' list (Object => Array) - this.modifiers = Object.keys(this.options.modifiers).map(function (name) { - return _extends({ - name: name - }, _this.options.modifiers[name]); - }) - // sort the modifiers by order - .sort(function (a, b) { - return a.order - b.order; - }); - - // modifiers have the ability to execute arbitrary code when Popper.js get inited - // such code is executed in the same order of its modifier - // they could add new properties to their options configuration - // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! - this.modifiers.forEach(function (modifierOptions) { - if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { - modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); - } - }); - - // fire the first update to position the popper in the right place - this.update(); - - var eventsEnabled = this.options.eventsEnabled; - if (eventsEnabled) { - // setup event listeners, they will take care of update the position in specific situations - this.enableEventListeners(); - } - - this.state.eventsEnabled = eventsEnabled; - } - - // We can't use class properties because they don't get listed in the - // class prototype and break stuff like Sinon stubs - - - createClass(Popper, [{ - key: 'update', - value: function update$$1() { - return update.call(this); - } - }, { - key: 'destroy', - value: function destroy$$1() { - return destroy.call(this); - } - }, { - key: 'enableEventListeners', - value: function enableEventListeners$$1() { - return enableEventListeners.call(this); - } - }, { - key: 'disableEventListeners', - value: function disableEventListeners$$1() { - return disableEventListeners.call(this); - } - - /** - * Schedule an update, it will run on the next UI update available - * @method scheduleUpdate - * @memberof Popper - */ - - - /** - * Collection of utilities useful when writing custom modifiers. - * Starting from version 1.7, this method is available only if you - * include `popper-utils.js` before `popper.js`. - * - * **DEPRECATION**: This way to access PopperUtils is deprecated - * and will be removed in v2! Use the PopperUtils module directly instead. - * Due to the high instability of the methods contained in Utils, we can't - * guarantee them to follow semver. Use them at your own risk! - * @static - * @private - * @type {Object} - * @deprecated since version 1.8 - * @member Utils - * @memberof Popper - */ - - }]); - return Popper; -}(); - -/** - * The `referenceObject` is an object that provides an interface compatible with Popper.js - * and lets you use it as replacement of a real DOM node.
- * You can use this method to position a popper relatively to a set of coordinates - * in case you don't have a DOM node to use as reference. - * - * ``` - * new Popper(referenceObject, popperNode); - * ``` - * - * NB: This feature isn't supported in Internet Explorer 10 - * @name referenceObject - * @property {Function} data.getBoundingClientRect - * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. - * @property {number} data.clientWidth - * An ES6 getter that will return the width of the virtual reference element. - * @property {number} data.clientHeight - * An ES6 getter that will return the height of the virtual reference element. - */ - - -Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; -Popper.placements = placements; -Popper.Defaults = Defaults; - -/* harmony default export */ __webpack_exports__["default"] = (Popper); -//# sourceMappingURL=popper.js.map - -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/process-nextick-args/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = { nextTick: nextTick }; -} else { - module.exports = process -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} - - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/punycode/punycode.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */ -;(function(root) { - - /** Detect free variables */ - var freeExports = typeof exports == 'object' && exports && - !exports.nodeType && exports; - var freeModule = typeof module == 'object' && module && - !module.nodeType && module; - var freeGlobal = typeof global == 'object' && global; - if ( - freeGlobal.global === freeGlobal || - freeGlobal.window === freeGlobal || - freeGlobal.self === freeGlobal - ) { - root = freeGlobal; - } - - /** - * The `punycode` object. - * @name punycode - * @type Object - */ - var punycode, - - /** Highest positive signed 32-bit float value */ - maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 - - /** Bootstring parameters */ - base = 36, - tMin = 1, - tMax = 26, - skew = 38, - damp = 700, - initialBias = 72, - initialN = 128, // 0x80 - delimiter = '-', // '\x2D' - - /** Regular expressions */ - regexPunycode = /^xn--/, - regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars - regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators - - /** Error messages */ - errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' - }, - - /** Convenience shortcuts */ - baseMinusTMin = base - tMin, - floor = Math.floor, - stringFromCharCode = String.fromCharCode, - - /** Temporary variable */ - key; - - /*--------------------------------------------------------------------------*/ - - /** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ - function error(type) { - throw new RangeError(errors[type]); - } - - /** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ - function map(array, fn) { - var length = array.length; - var result = []; - while (length--) { - result[length] = fn(array[length]); - } - return result; - } - - /** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ - function mapDomain(string, fn) { - var parts = string.split('@'); - var result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - var labels = string.split('.'); - var encoded = map(labels, fn).join('.'); - return result + encoded; - } - - /** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ - function ucs2decode(string) { - var output = [], - counter = 0, - length = string.length, - value, - extra; - while (counter < length) { - value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // high surrogate, and there is a next character - extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // low surrogate - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // unmatched surrogate; only append this code unit, in case the next - // code unit is the high surrogate of a surrogate pair - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - } - - /** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ - function ucs2encode(array) { - return map(array, function(value) { - var output = ''; - if (value > 0xFFFF) { - value -= 0x10000; - output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); - value = 0xDC00 | value & 0x3FF; - } - output += stringFromCharCode(value); - return output; - }).join(''); - } - - /** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ - function basicToDigit(codePoint) { - if (codePoint - 48 < 10) { - return codePoint - 22; - } - if (codePoint - 65 < 26) { - return codePoint - 65; - } - if (codePoint - 97 < 26) { - return codePoint - 97; - } - return base; - } - - /** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ - function digitToBasic(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); - } - - /** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ - function adapt(delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); - } - - /** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ - function decode(input) { - // Don't use UCS-2 - var output = [], - inputLength = input.length, - out, - i = 0, - n = initialN, - bias = initialBias, - basic, - j, - index, - oldi, - w, - k, - digit, - t, - /** Cached calculation results */ - baseMinusT; - - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. - - basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - - for (j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error('not-basic'); - } - output.push(input.charCodeAt(j)); - } - - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - - for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { - - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - for (oldi = i, w = 1, k = base; /* no condition */; k += base) { - - if (index >= inputLength) { - error('invalid-input'); - } - - digit = basicToDigit(input.charCodeAt(index++)); - - if (digit >= base || digit > floor((maxInt - i) / w)) { - error('overflow'); - } - - i += digit * w; - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - - if (digit < t) { - break; - } - - baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error('overflow'); - } - - w *= baseMinusT; - - } - - out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); - - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error('overflow'); - } - - n += floor(i / out); - i %= out; - - // Insert `n` at position `i` of the output - output.splice(i++, 0, n); - - } - - return ucs2encode(output); - } - - /** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ - function encode(input) { - var n, - delta, - handledCPCount, - basicLength, - bias, - j, - m, - q, - k, - t, - currentValue, - output = [], - /** `inputLength` will hold the number of code points in `input`. */ - inputLength, - /** Cached calculation results */ - handledCPCountPlusOne, - baseMinusT, - qMinusT; - - // Convert the input in UCS-2 to Unicode - input = ucs2decode(input); - - // Cache the length - inputLength = input.length; - - // Initialize the state - n = initialN; - delta = 0; - bias = initialBias; - - // Handle the basic code points - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - handledCPCount = basicLength = output.length; - - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - - // Finish the basic string - if it is not empty - with a delimiter - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - - // All non-basic code points < n have been handled already. Find the next - // larger one: - for (m = maxInt, j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , - // but guard against overflow - handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error('overflow'); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - - if (currentValue < n && ++delta > maxInt) { - error('overflow'); - } - - if (currentValue == n) { - // Represent delta as a generalized variable-length integer - for (q = delta, k = base; /* no condition */; k += base) { - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) { - break; - } - qMinusT = q - t; - baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - - } - return output.join(''); - } - - /** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ - function toUnicode(input) { - return mapDomain(input, function(string) { - return regexPunycode.test(string) - ? decode(string.slice(4).toLowerCase()) - : string; - }); - } - - /** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ - function toASCII(input) { - return mapDomain(input, function(string) { - return regexNonASCII.test(string) - ? 'xn--' + encode(string) - : string; - }); - } - - /*--------------------------------------------------------------------------*/ - - /** Define the public API */ - punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '1.4.1', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode - }; - - /** Expose `punycode` */ - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - true - ) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { - return punycode; - }.call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (freeExports && freeModule) { - if (module.exports == freeExports) { - // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = punycode; - } else { - // in Narwhal or RingoJS v0.7.0- - for (key in punycode) { - punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); - } - } - } else { - // in Rhino or a web browser - root.punycode = punycode; - } - -}(this)); - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/module.js")(module), __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/querystring-es3/decode.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -// If obj.hasOwnProperty has been overridden, then calling -// obj.hasOwnProperty(prop) will break. -// See: https://github.com/joyent/node/issues/1707 -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -module.exports = function(qs, sep, eq, options) { - sep = sep || '&'; - eq = eq || '='; - var obj = {}; - - if (typeof qs !== 'string' || qs.length === 0) { - return obj; - } - - var regexp = /\+/g; - qs = qs.split(sep); - - var maxKeys = 1000; - if (options && typeof options.maxKeys === 'number') { - maxKeys = options.maxKeys; - } - - var len = qs.length; - // maxKeys <= 0 means that we should not limit keys count - if (maxKeys > 0 && len > maxKeys) { - len = maxKeys; - } - - for (var i = 0; i < len; ++i) { - var x = qs[i].replace(regexp, '%20'), - idx = x.indexOf(eq), - kstr, vstr, k, v; - - if (idx >= 0) { - kstr = x.substr(0, idx); - vstr = x.substr(idx + 1); - } else { - kstr = x; - vstr = ''; - } - - k = decodeURIComponent(kstr); - v = decodeURIComponent(vstr); - - if (!hasOwnProperty(obj, k)) { - obj[k] = v; - } else if (isArray(obj[k])) { - obj[k].push(v); - } else { - obj[k] = [obj[k], v]; - } - } - - return obj; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - - -/***/ }), - -/***/ "./node_modules/querystring-es3/encode.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -var stringifyPrimitive = function(v) { - switch (typeof v) { - case 'string': - return v; - - case 'boolean': - return v ? 'true' : 'false'; - - case 'number': - return isFinite(v) ? v : ''; - - default: - return ''; - } -}; - -module.exports = function(obj, sep, eq, name) { - sep = sep || '&'; - eq = eq || '='; - if (obj === null) { - obj = undefined; - } - - if (typeof obj === 'object') { - return map(objectKeys(obj), function(k) { - var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; - if (isArray(obj[k])) { - return map(obj[k], function(v) { - return ks + encodeURIComponent(stringifyPrimitive(v)); - }).join(sep); - } else { - return ks + encodeURIComponent(stringifyPrimitive(obj[k])); - } - }).join(sep); - - } - - if (!name) return ''; - return encodeURIComponent(stringifyPrimitive(name)) + eq + - encodeURIComponent(stringifyPrimitive(obj)); -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - -function map (xs, f) { - if (xs.map) return xs.map(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - res.push(f(xs[i], i)); - } - return res; -} - -var objectKeys = Object.keys || function (obj) { - var res = []; - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); - } - return res; -}; - - -/***/ }), - -/***/ "./node_modules/querystring-es3/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.decode = exports.parse = __webpack_require__("./node_modules/querystring-es3/decode.js"); -exports.encode = exports.stringify = __webpack_require__("./node_modules/querystring-es3/encode.js"); - - -/***/ }), - -/***/ "./node_modules/rafl/index.js": -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__("./node_modules/global/window.js") - -/** - * `requestAnimationFrame()` - */ - -var request = global.requestAnimationFrame - || global.webkitRequestAnimationFrame - || global.mozRequestAnimationFrame - || fallback - -var prev = +new Date -function fallback (fn) { - var curr = +new Date - var ms = Math.max(0, 16 - (curr - prev)) - var req = setTimeout(fn, ms) - return prev = curr, req -} - -/** - * `cancelAnimationFrame()` - */ - -var cancel = global.cancelAnimationFrame - || global.webkitCancelAnimationFrame - || global.mozCancelAnimationFrame - || clearTimeout - -if (Function.prototype.bind) { - request = request.bind(global) - cancel = cancel.bind(global) -} - -exports = module.exports = request -exports.cancel = cancel - - -/***/ }), - -/***/ "./node_modules/raven-js/src/configError.js": -/***/ (function(module, exports) { - -function RavenConfigError(message) { - this.name = 'RavenConfigError'; - this.message = message; -} -RavenConfigError.prototype = new Error(); -RavenConfigError.prototype.constructor = RavenConfigError; - -module.exports = RavenConfigError; - - -/***/ }), - -/***/ "./node_modules/raven-js/src/console.js": -/***/ (function(module, exports, __webpack_require__) { - -var utils = __webpack_require__("./node_modules/raven-js/src/utils.js"); - -var wrapMethod = function(console, level, callback) { - var originalConsoleLevel = console[level]; - var originalConsole = console; - - if (!(level in console)) { - return; - } - - var sentryLevel = level === 'warn' ? 'warning' : level; - - console[level] = function() { - var args = [].slice.call(arguments); - - var msg = utils.safeJoin(args, ' '); - var data = {level: sentryLevel, logger: 'console', extra: {arguments: args}}; - - if (level === 'assert') { - if (args[0] === false) { - // Default browsers message - msg = - 'Assertion failed: ' + (utils.safeJoin(args.slice(1), ' ') || 'console.assert'); - data.extra.arguments = args.slice(1); - callback && callback(msg, data); - } - } else { - callback && callback(msg, data); - } - - // this fails for some browsers. :( - if (originalConsoleLevel) { - // IE9 doesn't allow calling apply on console functions directly - // See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193 - Function.prototype.apply.call(originalConsoleLevel, originalConsole, args); - } - }; -}; - -module.exports = { - wrapMethod: wrapMethod -}; - - -/***/ }), - -/***/ "./node_modules/raven-js/src/raven.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {/*global XDomainRequest:false */ - -var TraceKit = __webpack_require__("./node_modules/raven-js/vendor/TraceKit/tracekit.js"); -var stringify = __webpack_require__("./node_modules/raven-js/vendor/json-stringify-safe/stringify.js"); -var RavenConfigError = __webpack_require__("./node_modules/raven-js/src/configError.js"); - -var utils = __webpack_require__("./node_modules/raven-js/src/utils.js"); -var isError = utils.isError; -var isObject = utils.isObject; -var isErrorEvent = utils.isErrorEvent; -var isUndefined = utils.isUndefined; -var isFunction = utils.isFunction; -var isString = utils.isString; -var isArray = utils.isArray; -var isEmptyObject = utils.isEmptyObject; -var each = utils.each; -var objectMerge = utils.objectMerge; -var truncate = utils.truncate; -var objectFrozen = utils.objectFrozen; -var hasKey = utils.hasKey; -var joinRegExp = utils.joinRegExp; -var urlencode = utils.urlencode; -var uuid4 = utils.uuid4; -var htmlTreeAsString = utils.htmlTreeAsString; -var isSameException = utils.isSameException; -var isSameStacktrace = utils.isSameStacktrace; -var parseUrl = utils.parseUrl; -var fill = utils.fill; -var supportsFetch = utils.supportsFetch; - -var wrapConsoleMethod = __webpack_require__("./node_modules/raven-js/src/console.js").wrapMethod; - -var dsnKeys = 'source protocol user pass host port path'.split(' '), - dsnPattern = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/; - -function now() { - return +new Date(); -} - -// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) -var _window = - typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; -var _document = _window.document; -var _navigator = _window.navigator; - -function keepOriginalCallback(original, callback) { - return isFunction(callback) - ? function(data) { - return callback(data, original); - } - : callback; -} - -// First, check for JSON support -// If there is no JSON, we no-op the core features of Raven -// since JSON is required to encode the payload -function Raven() { - this._hasJSON = !!(typeof JSON === 'object' && JSON.stringify); - // Raven can run in contexts where there's no document (react-native) - this._hasDocument = !isUndefined(_document); - this._hasNavigator = !isUndefined(_navigator); - this._lastCapturedException = null; - this._lastData = null; - this._lastEventId = null; - this._globalServer = null; - this._globalKey = null; - this._globalProject = null; - this._globalContext = {}; - this._globalOptions = { - // SENTRY_RELEASE can be injected by https://github.com/getsentry/sentry-webpack-plugin - release: _window.SENTRY_RELEASE && _window.SENTRY_RELEASE.id, - logger: 'javascript', - ignoreErrors: [], - ignoreUrls: [], - whitelistUrls: [], - includePaths: [], - headers: null, - collectWindowErrors: true, - maxMessageLength: 0, - - // By default, truncates URL values to 250 chars - maxUrlLength: 250, - stackTraceLimit: 50, - autoBreadcrumbs: true, - instrument: true, - sampleRate: 1 - }; - this._fetchDefaults = { - method: 'POST', - keepalive: true, - referrerPolicy: 'origin' - }; - this._ignoreOnError = 0; - this._isRavenInstalled = false; - this._originalErrorStackTraceLimit = Error.stackTraceLimit; - // capture references to window.console *and* all its methods first - // before the console plugin has a chance to monkey patch - this._originalConsole = _window.console || {}; - this._originalConsoleMethods = {}; - this._plugins = []; - this._startTime = now(); - this._wrappedBuiltIns = []; - this._breadcrumbs = []; - this._lastCapturedEvent = null; - this._keypressTimeout; - this._location = _window.location; - this._lastHref = this._location && this._location.href; - this._resetBackoff(); - - // eslint-disable-next-line guard-for-in - for (var method in this._originalConsole) { - this._originalConsoleMethods[method] = this._originalConsole[method]; - } -} - -/* - * The core Raven singleton - * - * @this {Raven} - */ - -Raven.prototype = { - // Hardcode version string so that raven source can be loaded directly via - // webpack (using a build step causes webpack #1617). Grunt verifies that - // this value matches package.json during build. - // See: https://github.com/getsentry/raven-js/issues/465 - VERSION: '3.22.3', - - debug: false, - - TraceKit: TraceKit, // alias to TraceKit - - /* - * Configure Raven with a DSN and extra options - * - * @param {string} dsn The public Sentry DSN - * @param {object} options Set of global options [optional] - * @return {Raven} - */ - config: function(dsn, options) { - var self = this; - - if (self._globalServer) { - this._logDebug('error', 'Error: Raven has already been configured'); - return self; - } - if (!dsn) return self; - - var globalOptions = self._globalOptions; - - // merge in options - if (options) { - each(options, function(key, value) { - // tags and extra are special and need to be put into context - if (key === 'tags' || key === 'extra' || key === 'user') { - self._globalContext[key] = value; - } else { - globalOptions[key] = value; - } - }); - } - - self.setDSN(dsn); - - // "Script error." is hard coded into browsers for errors that it can't read. - // this is the result of a script being pulled in from an external domain and CORS. - globalOptions.ignoreErrors.push(/^Script error\.?$/); - globalOptions.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/); - - // join regexp rules into one big rule - globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors); - globalOptions.ignoreUrls = globalOptions.ignoreUrls.length - ? joinRegExp(globalOptions.ignoreUrls) - : false; - globalOptions.whitelistUrls = globalOptions.whitelistUrls.length - ? joinRegExp(globalOptions.whitelistUrls) - : false; - globalOptions.includePaths = joinRegExp(globalOptions.includePaths); - globalOptions.maxBreadcrumbs = Math.max( - 0, - Math.min(globalOptions.maxBreadcrumbs || 100, 100) - ); // default and hard limit is 100 - - var autoBreadcrumbDefaults = { - xhr: true, - console: true, - dom: true, - location: true, - sentry: true - }; - - var autoBreadcrumbs = globalOptions.autoBreadcrumbs; - if ({}.toString.call(autoBreadcrumbs) === '[object Object]') { - autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs); - } else if (autoBreadcrumbs !== false) { - autoBreadcrumbs = autoBreadcrumbDefaults; - } - globalOptions.autoBreadcrumbs = autoBreadcrumbs; - - var instrumentDefaults = { - tryCatch: true - }; - - var instrument = globalOptions.instrument; - if ({}.toString.call(instrument) === '[object Object]') { - instrument = objectMerge(instrumentDefaults, instrument); - } else if (instrument !== false) { - instrument = instrumentDefaults; - } - globalOptions.instrument = instrument; - - TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors; - - // return for chaining - return self; - }, - - /* - * Installs a global window.onerror error handler - * to capture and report uncaught exceptions. - * At this point, install() is required to be called due - * to the way TraceKit is set up. - * - * @return {Raven} - */ - install: function() { - var self = this; - if (self.isSetup() && !self._isRavenInstalled) { - TraceKit.report.subscribe(function() { - self._handleOnErrorStackInfo.apply(self, arguments); - }); - - self._patchFunctionToString(); - - if (self._globalOptions.instrument && self._globalOptions.instrument.tryCatch) { - self._instrumentTryCatch(); - } - - if (self._globalOptions.autoBreadcrumbs) self._instrumentBreadcrumbs(); - - // Install all of the plugins - self._drainPlugins(); - - self._isRavenInstalled = true; - } - - Error.stackTraceLimit = self._globalOptions.stackTraceLimit; - return this; - }, - - /* - * Set the DSN (can be called multiple time unlike config) - * - * @param {string} dsn The public Sentry DSN - */ - setDSN: function(dsn) { - var self = this, - uri = self._parseDSN(dsn), - lastSlash = uri.path.lastIndexOf('/'), - path = uri.path.substr(1, lastSlash); - - self._dsn = dsn; - self._globalKey = uri.user; - self._globalSecret = uri.pass && uri.pass.substr(1); - self._globalProject = uri.path.substr(lastSlash + 1); - - self._globalServer = self._getGlobalServer(uri); - - self._globalEndpoint = - self._globalServer + '/' + path + 'api/' + self._globalProject + '/store/'; - - // Reset backoff state since we may be pointing at a - // new project/server - this._resetBackoff(); - }, - - /* - * Wrap code within a context so Raven can capture errors - * reliably across domains that is executed immediately. - * - * @param {object} options A specific set of options for this context [optional] - * @param {function} func The callback to be immediately executed within the context - * @param {array} args An array of arguments to be called with the callback [optional] - */ - context: function(options, func, args) { - if (isFunction(options)) { - args = func || []; - func = options; - options = undefined; - } - - return this.wrap(options, func).apply(this, args); - }, - - /* - * Wrap code within a context and returns back a new function to be executed - * - * @param {object} options A specific set of options for this context [optional] - * @param {function} func The function to be wrapped in a new context - * @param {function} func A function to call before the try/catch wrapper [optional, private] - * @return {function} The newly wrapped functions with a context - */ - wrap: function(options, func, _before) { - var self = this; - // 1 argument has been passed, and it's not a function - // so just return it - if (isUndefined(func) && !isFunction(options)) { - return options; - } - - // options is optional - if (isFunction(options)) { - func = options; - options = undefined; - } - - // At this point, we've passed along 2 arguments, and the second one - // is not a function either, so we'll just return the second argument. - if (!isFunction(func)) { - return func; - } - - // We don't wanna wrap it twice! - try { - if (func.__raven__) { - return func; - } - - // If this has already been wrapped in the past, return that - if (func.__raven_wrapper__) { - return func.__raven_wrapper__; - } - } catch (e) { - // Just accessing custom props in some Selenium environments - // can cause a "Permission denied" exception (see raven-js#495). - // Bail on wrapping and return the function as-is (defers to window.onerror). - return func; - } - - function wrapped() { - var args = [], - i = arguments.length, - deep = !options || (options && options.deep !== false); - - if (_before && isFunction(_before)) { - _before.apply(this, arguments); - } - - // Recursively wrap all of a function's arguments that are - // functions themselves. - while (i--) args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i]; - - try { - // Attempt to invoke user-land function - // NOTE: If you are a Sentry user, and you are seeing this stack frame, it - // means Raven caught an error invoking your application code. This is - // expected behavior and NOT indicative of a bug with Raven.js. - return func.apply(this, args); - } catch (e) { - self._ignoreNextOnError(); - self.captureException(e, options); - throw e; - } - } - - // copy over properties of the old function - for (var property in func) { - if (hasKey(func, property)) { - wrapped[property] = func[property]; - } - } - wrapped.prototype = func.prototype; - - func.__raven_wrapper__ = wrapped; - // Signal that this function has been wrapped/filled already - // for both debugging and to prevent it to being wrapped/filled twice - wrapped.__raven__ = true; - wrapped.__orig__ = func; - - return wrapped; - }, - - /* - * Uninstalls the global error handler. - * - * @return {Raven} - */ - uninstall: function() { - TraceKit.report.uninstall(); - - this._unpatchFunctionToString(); - this._restoreBuiltIns(); - this._restoreConsole(); - - Error.stackTraceLimit = this._originalErrorStackTraceLimit; - this._isRavenInstalled = false; - - return this; - }, - - /* - * Manually capture an exception and send it over to Sentry - * - * @param {error} ex An exception to be logged - * @param {object} options A specific set of options for this error [optional] - * @return {Raven} - */ - captureException: function(ex, options) { - options = objectMerge({trimHeadFrames: 0}, options ? options : {}); - // Cases for sending ex as a message, rather than an exception - var isNotError = !isError(ex); - var isNotErrorEvent = !isErrorEvent(ex); - var isErrorEventWithoutError = isErrorEvent(ex) && !ex.error; - - if ((isNotError && isNotErrorEvent) || isErrorEventWithoutError) { - return this.captureMessage( - ex, - objectMerge(options, { - stacktrace: true, // if we fall back to captureMessage, default to attempting a new trace - trimHeadFrames: options.trimHeadFrames + 1 - }) - ); - } - - // Get actual Error from ErrorEvent - if (isErrorEvent(ex)) ex = ex.error; - - // Store the raw exception object for potential debugging and introspection - this._lastCapturedException = ex; - - // TraceKit.report will re-raise any exception passed to it, - // which means you have to wrap it in try/catch. Instead, we - // can wrap it here and only re-raise if TraceKit.report - // raises an exception different from the one we asked to - // report on. - try { - var stack = TraceKit.computeStackTrace(ex); - this._handleStackInfo(stack, options); - } catch (ex1) { - if (ex !== ex1) { - throw ex1; - } - } - - return this; - }, - - /* - * Manually send a message to Sentry - * - * @param {string} msg A plain message to be captured in Sentry - * @param {object} options A specific set of options for this message [optional] - * @return {Raven} - */ - captureMessage: function(msg, options) { - // config() automagically converts ignoreErrors from a list to a RegExp so we need to test for an - // early call; we'll error on the side of logging anything called before configuration since it's - // probably something you should see: - if ( - !!this._globalOptions.ignoreErrors.test && - this._globalOptions.ignoreErrors.test(msg) - ) { - return; - } - - options = options || {}; - - var data = objectMerge( - { - message: msg + '' // Make sure it's actually a string - }, - options - ); - - var ex; - // Generate a "synthetic" stack trace from this point. - // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative - // of a bug with Raven.js. Sentry generates synthetic traces either by configuration, - // or if it catches a thrown object without a "stack" property. - try { - throw new Error(msg); - } catch (ex1) { - ex = ex1; - } - - // null exception name so `Error` isn't prefixed to msg - ex.name = null; - var stack = TraceKit.computeStackTrace(ex); - - // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1] - var initialCall = isArray(stack.stack) && stack.stack[1]; - var fileurl = (initialCall && initialCall.url) || ''; - - if ( - !!this._globalOptions.ignoreUrls.test && - this._globalOptions.ignoreUrls.test(fileurl) - ) { - return; - } - - if ( - !!this._globalOptions.whitelistUrls.test && - !this._globalOptions.whitelistUrls.test(fileurl) - ) { - return; - } - - if (this._globalOptions.stacktrace || (options && options.stacktrace)) { - options = objectMerge( - { - // fingerprint on msg, not stack trace (legacy behavior, could be - // revisited) - fingerprint: msg, - // since we know this is a synthetic trace, the top N-most frames - // MUST be from Raven.js, so mark them as in_app later by setting - // trimHeadFrames - trimHeadFrames: (options.trimHeadFrames || 0) + 1 - }, - options - ); - - var frames = this._prepareFrames(stack, options); - data.stacktrace = { - // Sentry expects frames oldest to newest - frames: frames.reverse() - }; - } - - // Fire away! - this._send(data); - - return this; - }, - - captureBreadcrumb: function(obj) { - var crumb = objectMerge( - { - timestamp: now() / 1000 - }, - obj - ); - - if (isFunction(this._globalOptions.breadcrumbCallback)) { - var result = this._globalOptions.breadcrumbCallback(crumb); - - if (isObject(result) && !isEmptyObject(result)) { - crumb = result; - } else if (result === false) { - return this; - } - } - - this._breadcrumbs.push(crumb); - if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) { - this._breadcrumbs.shift(); - } - return this; - }, - - addPlugin: function(plugin /*arg1, arg2, ... argN*/) { - var pluginArgs = [].slice.call(arguments, 1); - - this._plugins.push([plugin, pluginArgs]); - if (this._isRavenInstalled) { - this._drainPlugins(); - } - - return this; - }, - - /* - * Set/clear a user to be sent along with the payload. - * - * @param {object} user An object representing user data [optional] - * @return {Raven} - */ - setUserContext: function(user) { - // Intentionally do not merge here since that's an unexpected behavior. - this._globalContext.user = user; - - return this; - }, - - /* - * Merge extra attributes to be sent along with the payload. - * - * @param {object} extra An object representing extra data [optional] - * @return {Raven} - */ - setExtraContext: function(extra) { - this._mergeContext('extra', extra); - - return this; - }, - - /* - * Merge tags to be sent along with the payload. - * - * @param {object} tags An object representing tags [optional] - * @return {Raven} - */ - setTagsContext: function(tags) { - this._mergeContext('tags', tags); - - return this; - }, - - /* - * Clear all of the context. - * - * @return {Raven} - */ - clearContext: function() { - this._globalContext = {}; - - return this; - }, - - /* - * Get a copy of the current context. This cannot be mutated. - * - * @return {object} copy of context - */ - getContext: function() { - // lol javascript - return JSON.parse(stringify(this._globalContext)); - }, - - /* - * Set environment of application - * - * @param {string} environment Typically something like 'production'. - * @return {Raven} - */ - setEnvironment: function(environment) { - this._globalOptions.environment = environment; - - return this; - }, - - /* - * Set release version of application - * - * @param {string} release Typically something like a git SHA to identify version - * @return {Raven} - */ - setRelease: function(release) { - this._globalOptions.release = release; - - return this; - }, - - /* - * Set the dataCallback option - * - * @param {function} callback The callback to run which allows the - * data blob to be mutated before sending - * @return {Raven} - */ - setDataCallback: function(callback) { - var original = this._globalOptions.dataCallback; - this._globalOptions.dataCallback = keepOriginalCallback(original, callback); - return this; - }, - - /* - * Set the breadcrumbCallback option - * - * @param {function} callback The callback to run which allows filtering - * or mutating breadcrumbs - * @return {Raven} - */ - setBreadcrumbCallback: function(callback) { - var original = this._globalOptions.breadcrumbCallback; - this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback); - return this; - }, - - /* - * Set the shouldSendCallback option - * - * @param {function} callback The callback to run which allows - * introspecting the blob before sending - * @return {Raven} - */ - setShouldSendCallback: function(callback) { - var original = this._globalOptions.shouldSendCallback; - this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback); - return this; - }, - - /** - * Override the default HTTP transport mechanism that transmits data - * to the Sentry server. - * - * @param {function} transport Function invoked instead of the default - * `makeRequest` handler. - * - * @return {Raven} - */ - setTransport: function(transport) { - this._globalOptions.transport = transport; - - return this; - }, - - /* - * Get the latest raw exception that was captured by Raven. - * - * @return {error} - */ - lastException: function() { - return this._lastCapturedException; - }, - - /* - * Get the last event id - * - * @return {string} - */ - lastEventId: function() { - return this._lastEventId; - }, - - /* - * Determine if Raven is setup and ready to go. - * - * @return {boolean} - */ - isSetup: function() { - if (!this._hasJSON) return false; // needs JSON support - if (!this._globalServer) { - if (!this.ravenNotConfiguredError) { - this.ravenNotConfiguredError = true; - this._logDebug('error', 'Error: Raven has not been configured.'); - } - return false; - } - return true; - }, - - afterLoad: function() { - // TODO: remove window dependence? - - // Attempt to initialize Raven on load - var RavenConfig = _window.RavenConfig; - if (RavenConfig) { - this.config(RavenConfig.dsn, RavenConfig.config).install(); - } - }, - - showReportDialog: function(options) { - if ( - !_document // doesn't work without a document (React native) - ) - return; - - options = options || {}; - - var lastEventId = options.eventId || this.lastEventId(); - if (!lastEventId) { - throw new RavenConfigError('Missing eventId'); - } - - var dsn = options.dsn || this._dsn; - if (!dsn) { - throw new RavenConfigError('Missing DSN'); - } - - var encode = encodeURIComponent; - var qs = ''; - qs += '?eventId=' + encode(lastEventId); - qs += '&dsn=' + encode(dsn); - - var user = options.user || this._globalContext.user; - if (user) { - if (user.name) qs += '&name=' + encode(user.name); - if (user.email) qs += '&email=' + encode(user.email); - } - - var globalServer = this._getGlobalServer(this._parseDSN(dsn)); - - var script = _document.createElement('script'); - script.async = true; - script.src = globalServer + '/api/embed/error-page/' + qs; - (_document.head || _document.body).appendChild(script); - }, - - /**** Private functions ****/ - _ignoreNextOnError: function() { - var self = this; - this._ignoreOnError += 1; - setTimeout(function() { - // onerror should trigger before setTimeout - self._ignoreOnError -= 1; - }); - }, - - _triggerEvent: function(eventType, options) { - // NOTE: `event` is a native browser thing, so let's avoid conflicting wiht it - var evt, key; - - if (!this._hasDocument) return; - - options = options || {}; - - eventType = 'raven' + eventType.substr(0, 1).toUpperCase() + eventType.substr(1); - - if (_document.createEvent) { - evt = _document.createEvent('HTMLEvents'); - evt.initEvent(eventType, true, true); - } else { - evt = _document.createEventObject(); - evt.eventType = eventType; - } - - for (key in options) - if (hasKey(options, key)) { - evt[key] = options[key]; - } - - if (_document.createEvent) { - // IE9 if standards - _document.dispatchEvent(evt); - } else { - // IE8 regardless of Quirks or Standards - // IE9 if quirks - try { - _document.fireEvent('on' + evt.eventType.toLowerCase(), evt); - } catch (e) { - // Do nothing - } - } - }, - - /** - * Wraps addEventListener to capture UI breadcrumbs - * @param evtName the event name (e.g. "click") - * @returns {Function} - * @private - */ - _breadcrumbEventHandler: function(evtName) { - var self = this; - return function(evt) { - // reset keypress timeout; e.g. triggering a 'click' after - // a 'keypress' will reset the keypress debounce so that a new - // set of keypresses can be recorded - self._keypressTimeout = null; - - // It's possible this handler might trigger multiple times for the same - // event (e.g. event propagation through node ancestors). Ignore if we've - // already captured the event. - if (self._lastCapturedEvent === evt) return; - - self._lastCapturedEvent = evt; - - // try/catch both: - // - accessing evt.target (see getsentry/raven-js#838, #768) - // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly - // can throw an exception in some circumstances. - var target; - try { - target = htmlTreeAsString(evt.target); - } catch (e) { - target = ''; - } - - self.captureBreadcrumb({ - category: 'ui.' + evtName, // e.g. ui.click, ui.input - message: target - }); - }; - }, - - /** - * Wraps addEventListener to capture keypress UI events - * @returns {Function} - * @private - */ - _keypressEventHandler: function() { - var self = this, - debounceDuration = 1000; // milliseconds - - // TODO: if somehow user switches keypress target before - // debounce timeout is triggered, we will only capture - // a single breadcrumb from the FIRST target (acceptable?) - return function(evt) { - var target; - try { - target = evt.target; - } catch (e) { - // just accessing event properties can throw an exception in some rare circumstances - // see: https://github.com/getsentry/raven-js/issues/838 - return; - } - var tagName = target && target.tagName; - - // only consider keypress events on actual input elements - // this will disregard keypresses targeting body (e.g. tabbing - // through elements, hotkeys, etc) - if ( - !tagName || - (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable) - ) - return; - - // record first keypress in a series, but ignore subsequent - // keypresses until debounce clears - var timeout = self._keypressTimeout; - if (!timeout) { - self._breadcrumbEventHandler('input')(evt); - } - clearTimeout(timeout); - self._keypressTimeout = setTimeout(function() { - self._keypressTimeout = null; - }, debounceDuration); - }; - }, - - /** - * Captures a breadcrumb of type "navigation", normalizing input URLs - * @param to the originating URL - * @param from the target URL - * @private - */ - _captureUrlChange: function(from, to) { - var parsedLoc = parseUrl(this._location.href); - var parsedTo = parseUrl(to); - var parsedFrom = parseUrl(from); - - // because onpopstate only tells you the "new" (to) value of location.href, and - // not the previous (from) value, we need to track the value of the current URL - // state ourselves - this._lastHref = to; - - // Use only the path component of the URL if the URL matches the current - // document (almost all the time when using pushState) - if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) - to = parsedTo.relative; - if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) - from = parsedFrom.relative; - - this.captureBreadcrumb({ - category: 'navigation', - data: { - to: to, - from: from - } - }); - }, - - _patchFunctionToString: function() { - var self = this; - self._originalFunctionToString = Function.prototype.toString; - // eslint-disable-next-line no-extend-native - Function.prototype.toString = function() { - if (typeof this === 'function' && this.__raven__) { - return self._originalFunctionToString.apply(this.__orig__, arguments); - } - return self._originalFunctionToString.apply(this, arguments); - }; - }, - - _unpatchFunctionToString: function() { - if (this._originalFunctionToString) { - // eslint-disable-next-line no-extend-native - Function.prototype.toString = this._originalFunctionToString; - } - }, - - /** - * Wrap timer functions and event targets to catch errors and provide - * better metadata. - */ - _instrumentTryCatch: function() { - var self = this; - - var wrappedBuiltIns = self._wrappedBuiltIns; - - function wrapTimeFn(orig) { - return function(fn, t) { - // preserve arity - // Make a copy of the arguments to prevent deoptimization - // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments - var args = new Array(arguments.length); - for (var i = 0; i < args.length; ++i) { - args[i] = arguments[i]; - } - var originalCallback = args[0]; - if (isFunction(originalCallback)) { - args[0] = self.wrap(originalCallback); - } - - // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it - // also supports only two arguments and doesn't care what this is, so we - // can just call the original function directly. - if (orig.apply) { - return orig.apply(this, args); - } else { - return orig(args[0], args[1]); - } - }; - } - - var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs; - - function wrapEventTarget(global) { - var proto = _window[global] && _window[global].prototype; - if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) { - fill( - proto, - 'addEventListener', - function(orig) { - return function(evtName, fn, capture, secure) { - // preserve arity - try { - if (fn && fn.handleEvent) { - fn.handleEvent = self.wrap(fn.handleEvent); - } - } catch (err) { - // can sometimes get 'Permission denied to access property "handle Event' - } - - // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs` - // so that we don't have more than one wrapper function - var before, clickHandler, keypressHandler; - - if ( - autoBreadcrumbs && - autoBreadcrumbs.dom && - (global === 'EventTarget' || global === 'Node') - ) { - // NOTE: generating multiple handlers per addEventListener invocation, should - // revisit and verify we can just use one (almost certainly) - clickHandler = self._breadcrumbEventHandler('click'); - keypressHandler = self._keypressEventHandler(); - before = function(evt) { - // need to intercept every DOM event in `before` argument, in case that - // same wrapped method is re-used for different events (e.g. mousemove THEN click) - // see #724 - if (!evt) return; - - var eventType; - try { - eventType = evt.type; - } catch (e) { - // just accessing event properties can throw an exception in some rare circumstances - // see: https://github.com/getsentry/raven-js/issues/838 - return; - } - if (eventType === 'click') return clickHandler(evt); - else if (eventType === 'keypress') return keypressHandler(evt); - }; - } - return orig.call( - this, - evtName, - self.wrap(fn, undefined, before), - capture, - secure - ); - }; - }, - wrappedBuiltIns - ); - fill( - proto, - 'removeEventListener', - function(orig) { - return function(evt, fn, capture, secure) { - try { - fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn); - } catch (e) { - // ignore, accessing __raven_wrapper__ will throw in some Selenium environments - } - return orig.call(this, evt, fn, capture, secure); - }; - }, - wrappedBuiltIns - ); - } - } - - fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns); - fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns); - if (_window.requestAnimationFrame) { - fill( - _window, - 'requestAnimationFrame', - function(orig) { - return function(cb) { - return orig(self.wrap(cb)); - }; - }, - wrappedBuiltIns - ); - } - - // event targets borrowed from bugsnag-js: - // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666 - var eventTargets = [ - 'EventTarget', - 'Window', - 'Node', - 'ApplicationCache', - 'AudioTrackList', - 'ChannelMergerNode', - 'CryptoOperation', - 'EventSource', - 'FileReader', - 'HTMLUnknownElement', - 'IDBDatabase', - 'IDBRequest', - 'IDBTransaction', - 'KeyOperation', - 'MediaController', - 'MessagePort', - 'ModalWindow', - 'Notification', - 'SVGElementInstance', - 'Screen', - 'TextTrack', - 'TextTrackCue', - 'TextTrackList', - 'WebSocket', - 'WebSocketWorker', - 'Worker', - 'XMLHttpRequest', - 'XMLHttpRequestEventTarget', - 'XMLHttpRequestUpload' - ]; - for (var i = 0; i < eventTargets.length; i++) { - wrapEventTarget(eventTargets[i]); - } - }, - - /** - * Instrument browser built-ins w/ breadcrumb capturing - * - XMLHttpRequests - * - DOM interactions (click/typing) - * - window.location changes - * - console - * - * Can be disabled or individually configured via the `autoBreadcrumbs` config option - */ - _instrumentBreadcrumbs: function() { - var self = this; - var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs; - - var wrappedBuiltIns = self._wrappedBuiltIns; - - function wrapProp(prop, xhr) { - if (prop in xhr && isFunction(xhr[prop])) { - fill(xhr, prop, function(orig) { - return self.wrap(orig); - }); // intentionally don't track filled methods on XHR instances - } - } - - if (autoBreadcrumbs.xhr && 'XMLHttpRequest' in _window) { - var xhrproto = XMLHttpRequest.prototype; - fill( - xhrproto, - 'open', - function(origOpen) { - return function(method, url) { - // preserve arity - - // if Sentry key appears in URL, don't capture - if (isString(url) && url.indexOf(self._globalKey) === -1) { - this.__raven_xhr = { - method: method, - url: url, - status_code: null - }; - } - - return origOpen.apply(this, arguments); - }; - }, - wrappedBuiltIns - ); - - fill( - xhrproto, - 'send', - function(origSend) { - return function() { - // preserve arity - var xhr = this; - - function onreadystatechangeHandler() { - if (xhr.__raven_xhr && xhr.readyState === 4) { - try { - // touching statusCode in some platforms throws - // an exception - xhr.__raven_xhr.status_code = xhr.status; - } catch (e) { - /* do nothing */ - } - - self.captureBreadcrumb({ - type: 'http', - category: 'xhr', - data: xhr.__raven_xhr - }); - } - } - - var props = ['onload', 'onerror', 'onprogress']; - for (var j = 0; j < props.length; j++) { - wrapProp(props[j], xhr); - } - - if ('onreadystatechange' in xhr && isFunction(xhr.onreadystatechange)) { - fill( - xhr, - 'onreadystatechange', - function(orig) { - return self.wrap(orig, undefined, onreadystatechangeHandler); - } /* intentionally don't track this instrumentation */ - ); - } else { - // if onreadystatechange wasn't actually set by the page on this xhr, we - // are free to set our own and capture the breadcrumb - xhr.onreadystatechange = onreadystatechangeHandler; - } - - return origSend.apply(this, arguments); - }; - }, - wrappedBuiltIns - ); - } - - if (autoBreadcrumbs.xhr && supportsFetch()) { - fill( - _window, - 'fetch', - function(origFetch) { - return function() { - // preserve arity - // Make a copy of the arguments to prevent deoptimization - // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments - var args = new Array(arguments.length); - for (var i = 0; i < args.length; ++i) { - args[i] = arguments[i]; - } - - var fetchInput = args[0]; - var method = 'GET'; - var url; - - if (typeof fetchInput === 'string') { - url = fetchInput; - } else if ('Request' in _window && fetchInput instanceof _window.Request) { - url = fetchInput.url; - if (fetchInput.method) { - method = fetchInput.method; - } - } else { - url = '' + fetchInput; - } - - // if Sentry key appears in URL, don't capture, as it's our own request - if (url.indexOf(self._globalKey) !== -1) { - return origFetch.apply(this, args); - } - - if (args[1] && args[1].method) { - method = args[1].method; - } - - var fetchData = { - method: method, - url: url, - status_code: null - }; - - return origFetch.apply(this, args).then(function(response) { - fetchData.status_code = response.status; - - self.captureBreadcrumb({ - type: 'http', - category: 'fetch', - data: fetchData - }); - - return response; - }); - }; - }, - wrappedBuiltIns - ); - } - - // Capture breadcrumbs from any click that is unhandled / bubbled up all the way - // to the document. Do this before we instrument addEventListener. - if (autoBreadcrumbs.dom && this._hasDocument) { - if (_document.addEventListener) { - _document.addEventListener('click', self._breadcrumbEventHandler('click'), false); - _document.addEventListener('keypress', self._keypressEventHandler(), false); - } else { - // IE8 Compatibility - _document.attachEvent('onclick', self._breadcrumbEventHandler('click')); - _document.attachEvent('onkeypress', self._keypressEventHandler()); - } - } - - // record navigation (URL) changes - // NOTE: in Chrome App environment, touching history.pushState, *even inside - // a try/catch block*, will cause Chrome to output an error to console.error - // borrowed from: https://github.com/angular/angular.js/pull/13945/files - var chrome = _window.chrome; - var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime; - var hasPushAndReplaceState = - !isChromePackagedApp && - _window.history && - history.pushState && - history.replaceState; - if (autoBreadcrumbs.location && hasPushAndReplaceState) { - // TODO: remove onpopstate handler on uninstall() - var oldOnPopState = _window.onpopstate; - _window.onpopstate = function() { - var currentHref = self._location.href; - self._captureUrlChange(self._lastHref, currentHref); - - if (oldOnPopState) { - return oldOnPopState.apply(this, arguments); - } - }; - - var historyReplacementFunction = function(origHistFunction) { - // note history.pushState.length is 0; intentionally not declaring - // params to preserve 0 arity - return function(/* state, title, url */) { - var url = arguments.length > 2 ? arguments[2] : undefined; - - // url argument is optional - if (url) { - // coerce to string (this is what pushState does) - self._captureUrlChange(self._lastHref, url + ''); - } - - return origHistFunction.apply(this, arguments); - }; - }; - - fill(history, 'pushState', historyReplacementFunction, wrappedBuiltIns); - fill(history, 'replaceState', historyReplacementFunction, wrappedBuiltIns); - } - - if (autoBreadcrumbs.console && 'console' in _window && console.log) { - // console - var consoleMethodCallback = function(msg, data) { - self.captureBreadcrumb({ - message: msg, - level: data.level, - category: 'console' - }); - }; - - each(['debug', 'info', 'warn', 'error', 'log'], function(_, level) { - wrapConsoleMethod(console, level, consoleMethodCallback); - }); - } - }, - - _restoreBuiltIns: function() { - // restore any wrapped builtins - var builtin; - while (this._wrappedBuiltIns.length) { - builtin = this._wrappedBuiltIns.shift(); - - var obj = builtin[0], - name = builtin[1], - orig = builtin[2]; - - obj[name] = orig; - } - }, - - _restoreConsole: function() { - // eslint-disable-next-line guard-for-in - for (var method in this._originalConsoleMethods) { - this._originalConsole[method] = this._originalConsoleMethods[method]; - } - }, - - _drainPlugins: function() { - var self = this; - - // FIX ME TODO - each(this._plugins, function(_, plugin) { - var installer = plugin[0]; - var args = plugin[1]; - installer.apply(self, [self].concat(args)); - }); - }, - - _parseDSN: function(str) { - var m = dsnPattern.exec(str), - dsn = {}, - i = 7; - - try { - while (i--) dsn[dsnKeys[i]] = m[i] || ''; - } catch (e) { - throw new RavenConfigError('Invalid DSN: ' + str); - } - - if (dsn.pass && !this._globalOptions.allowSecretKey) { - throw new RavenConfigError( - 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key' - ); - } - - return dsn; - }, - - _getGlobalServer: function(uri) { - // assemble the endpoint from the uri pieces - var globalServer = '//' + uri.host + (uri.port ? ':' + uri.port : ''); - - if (uri.protocol) { - globalServer = uri.protocol + ':' + globalServer; - } - return globalServer; - }, - - _handleOnErrorStackInfo: function() { - // if we are intentionally ignoring errors via onerror, bail out - if (!this._ignoreOnError) { - this._handleStackInfo.apply(this, arguments); - } - }, - - _handleStackInfo: function(stackInfo, options) { - var frames = this._prepareFrames(stackInfo, options); - - this._triggerEvent('handle', { - stackInfo: stackInfo, - options: options - }); - - this._processException( - stackInfo.name, - stackInfo.message, - stackInfo.url, - stackInfo.lineno, - frames, - options - ); - }, - - _prepareFrames: function(stackInfo, options) { - var self = this; - var frames = []; - if (stackInfo.stack && stackInfo.stack.length) { - each(stackInfo.stack, function(i, stack) { - var frame = self._normalizeFrame(stack, stackInfo.url); - if (frame) { - frames.push(frame); - } - }); - - // e.g. frames captured via captureMessage throw - if (options && options.trimHeadFrames) { - for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) { - frames[j].in_app = false; - } - } - } - frames = frames.slice(0, this._globalOptions.stackTraceLimit); - return frames; - }, - - _normalizeFrame: function(frame, stackInfoUrl) { - // normalize the frames data - var normalized = { - filename: frame.url, - lineno: frame.line, - colno: frame.column, - function: frame.func || '?' - }; - - // Case when we don't have any information about the error - // E.g. throwing a string or raw object, instead of an `Error` in Firefox - // Generating synthetic error doesn't add any value here - // - // We should probably somehow let a user know that they should fix their code - if (!frame.url) { - normalized.filename = stackInfoUrl; // fallback to whole stacks url from onerror handler - } - - normalized.in_app = !// determine if an exception came from outside of our app - // first we check the global includePaths list. - ( - (!!this._globalOptions.includePaths.test && - !this._globalOptions.includePaths.test(normalized.filename)) || - // Now we check for fun, if the function name is Raven or TraceKit - /(Raven|TraceKit)\./.test(normalized['function']) || - // finally, we do a last ditch effort and check for raven.min.js - /raven\.(min\.)?js$/.test(normalized.filename) - ); - - return normalized; - }, - - _processException: function(type, message, fileurl, lineno, frames, options) { - var prefixedMessage = (type ? type + ': ' : '') + (message || ''); - if ( - !!this._globalOptions.ignoreErrors.test && - (this._globalOptions.ignoreErrors.test(message) || - this._globalOptions.ignoreErrors.test(prefixedMessage)) - ) { - return; - } - - var stacktrace; - - if (frames && frames.length) { - fileurl = frames[0].filename || fileurl; - // Sentry expects frames oldest to newest - // and JS sends them as newest to oldest - frames.reverse(); - stacktrace = {frames: frames}; - } else if (fileurl) { - stacktrace = { - frames: [ - { - filename: fileurl, - lineno: lineno, - in_app: true - } - ] - }; - } - - if ( - !!this._globalOptions.ignoreUrls.test && - this._globalOptions.ignoreUrls.test(fileurl) - ) { - return; - } - - if ( - !!this._globalOptions.whitelistUrls.test && - !this._globalOptions.whitelistUrls.test(fileurl) - ) { - return; - } - - var data = objectMerge( - { - // sentry.interfaces.Exception - exception: { - values: [ - { - type: type, - value: message, - stacktrace: stacktrace - } - ] - }, - culprit: fileurl - }, - options - ); - - // Fire away! - this._send(data); - }, - - _trimPacket: function(data) { - // For now, we only want to truncate the two different messages - // but this could/should be expanded to just trim everything - var max = this._globalOptions.maxMessageLength; - if (data.message) { - data.message = truncate(data.message, max); - } - if (data.exception) { - var exception = data.exception.values[0]; - exception.value = truncate(exception.value, max); - } - - var request = data.request; - if (request) { - if (request.url) { - request.url = truncate(request.url, this._globalOptions.maxUrlLength); - } - if (request.Referer) { - request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength); - } - } - - if (data.breadcrumbs && data.breadcrumbs.values) - this._trimBreadcrumbs(data.breadcrumbs); - - return data; - }, - - /** - * Truncate breadcrumb values (right now just URLs) - */ - _trimBreadcrumbs: function(breadcrumbs) { - // known breadcrumb properties with urls - // TODO: also consider arbitrary prop values that start with (https?)?:// - var urlProps = ['to', 'from', 'url'], - urlProp, - crumb, - data; - - for (var i = 0; i < breadcrumbs.values.length; ++i) { - crumb = breadcrumbs.values[i]; - if ( - !crumb.hasOwnProperty('data') || - !isObject(crumb.data) || - objectFrozen(crumb.data) - ) - continue; - - data = objectMerge({}, crumb.data); - for (var j = 0; j < urlProps.length; ++j) { - urlProp = urlProps[j]; - if (data.hasOwnProperty(urlProp) && data[urlProp]) { - data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength); - } - } - breadcrumbs.values[i].data = data; - } - }, - - _getHttpData: function() { - if (!this._hasNavigator && !this._hasDocument) return; - var httpData = {}; - - if (this._hasNavigator && _navigator.userAgent) { - httpData.headers = { - 'User-Agent': navigator.userAgent - }; - } - - // Check in `window` instead of `document`, as we may be in ServiceWorker environment - if (_window.location && _window.location.href) { - httpData.url = _window.location.href; - } - - if (this._hasDocument && _document.referrer) { - if (!httpData.headers) httpData.headers = {}; - httpData.headers.Referer = _document.referrer; - } - - return httpData; - }, - - _resetBackoff: function() { - this._backoffDuration = 0; - this._backoffStart = null; - }, - - _shouldBackoff: function() { - return this._backoffDuration && now() - this._backoffStart < this._backoffDuration; - }, - - /** - * Returns true if the in-process data payload matches the signature - * of the previously-sent data - * - * NOTE: This has to be done at this level because TraceKit can generate - * data from window.onerror WITHOUT an exception object (IE8, IE9, - * other old browsers). This can take the form of an "exception" - * data object with a single frame (derived from the onerror args). - */ - _isRepeatData: function(current) { - var last = this._lastData; - - if ( - !last || - current.message !== last.message || // defined for captureMessage - current.culprit !== last.culprit // defined for captureException/onerror - ) - return false; - - // Stacktrace interface (i.e. from captureMessage) - if (current.stacktrace || last.stacktrace) { - return isSameStacktrace(current.stacktrace, last.stacktrace); - } else if (current.exception || last.exception) { - // Exception interface (i.e. from captureException/onerror) - return isSameException(current.exception, last.exception); - } - - return true; - }, - - _setBackoffState: function(request) { - // If we are already in a backoff state, don't change anything - if (this._shouldBackoff()) { - return; - } - - var status = request.status; - - // 400 - project_id doesn't exist or some other fatal - // 401 - invalid/revoked dsn - // 429 - too many requests - if (!(status === 400 || status === 401 || status === 429)) return; - - var retry; - try { - // If Retry-After is not in Access-Control-Expose-Headers, most - // browsers will throw an exception trying to access it - if (supportsFetch()) { - retry = request.headers.get('Retry-After'); - } else { - retry = request.getResponseHeader('Retry-After'); - } - - // Retry-After is returned in seconds - retry = parseInt(retry, 10) * 1000; - } catch (e) { - /* eslint no-empty:0 */ - } - - this._backoffDuration = retry - ? // If Sentry server returned a Retry-After value, use it - retry - : // Otherwise, double the last backoff duration (starts at 1 sec) - this._backoffDuration * 2 || 1000; - - this._backoffStart = now(); - }, - - _send: function(data) { - var globalOptions = this._globalOptions; - - var baseData = { - project: this._globalProject, - logger: globalOptions.logger, - platform: 'javascript' - }, - httpData = this._getHttpData(); - - if (httpData) { - baseData.request = httpData; - } - - // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload - if (data.trimHeadFrames) delete data.trimHeadFrames; - - data = objectMerge(baseData, data); - - // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge - data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags); - data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra); - - // Send along our own collected metadata with extra - data.extra['session:duration'] = now() - this._startTime; - - if (this._breadcrumbs && this._breadcrumbs.length > 0) { - // intentionally make shallow copy so that additions - // to breadcrumbs aren't accidentally sent in this request - data.breadcrumbs = { - values: [].slice.call(this._breadcrumbs, 0) - }; - } - - if (this._globalContext.user) { - // sentry.interfaces.User - data.user = this._globalContext.user; - } - - // Include the environment if it's defined in globalOptions - if (globalOptions.environment) data.environment = globalOptions.environment; - - // Include the release if it's defined in globalOptions - if (globalOptions.release) data.release = globalOptions.release; - - // Include server_name if it's defined in globalOptions - if (globalOptions.serverName) data.server_name = globalOptions.serverName; - - // Cleanup empty properties before sending them to the server - Object.keys(data).forEach(function(key) { - if (data[key] == null || data[key] === '' || isEmptyObject(data[key])) { - delete data[key]; - } - }); - - if (isFunction(globalOptions.dataCallback)) { - data = globalOptions.dataCallback(data) || data; - } - - // Why?????????? - if (!data || isEmptyObject(data)) { - return; - } - - // Check if the request should be filtered or not - if ( - isFunction(globalOptions.shouldSendCallback) && - !globalOptions.shouldSendCallback(data) - ) { - return; - } - - // Backoff state: Sentry server previously responded w/ an error (e.g. 429 - too many requests), - // so drop requests until "cool-off" period has elapsed. - if (this._shouldBackoff()) { - this._logDebug('warn', 'Raven dropped error due to backoff: ', data); - return; - } - - if (typeof globalOptions.sampleRate === 'number') { - if (Math.random() < globalOptions.sampleRate) { - this._sendProcessedPayload(data); - } - } else { - this._sendProcessedPayload(data); - } - }, - - _getUuid: function() { - return uuid4(); - }, - - _sendProcessedPayload: function(data, callback) { - var self = this; - var globalOptions = this._globalOptions; - - if (!this.isSetup()) return; - - // Try and clean up the packet before sending by truncating long values - data = this._trimPacket(data); - - // ideally duplicate error testing should occur *before* dataCallback/shouldSendCallback, - // but this would require copying an un-truncated copy of the data packet, which can be - // arbitrarily deep (extra_data) -- could be worthwhile? will revisit - if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) { - this._logDebug('warn', 'Raven dropped repeat event: ', data); - return; - } - - // Send along an event_id if not explicitly passed. - // This event_id can be used to reference the error within Sentry itself. - // Set lastEventId after we know the error should actually be sent - this._lastEventId = data.event_id || (data.event_id = this._getUuid()); - - // Store outbound payload after trim - this._lastData = data; - - this._logDebug('debug', 'Raven about to send:', data); - - var auth = { - sentry_version: '7', - sentry_client: 'raven-js/' + this.VERSION, - sentry_key: this._globalKey - }; - - if (this._globalSecret) { - auth.sentry_secret = this._globalSecret; - } - - var exception = data.exception && data.exception.values[0]; - - // only capture 'sentry' breadcrumb is autoBreadcrumbs is truthy - if ( - this._globalOptions.autoBreadcrumbs && - this._globalOptions.autoBreadcrumbs.sentry - ) { - this.captureBreadcrumb({ - category: 'sentry', - message: exception - ? (exception.type ? exception.type + ': ' : '') + exception.value - : data.message, - event_id: data.event_id, - level: data.level || 'error' // presume error unless specified - }); - } - - var url = this._globalEndpoint; - (globalOptions.transport || this._makeRequest).call(this, { - url: url, - auth: auth, - data: data, - options: globalOptions, - onSuccess: function success() { - self._resetBackoff(); - - self._triggerEvent('success', { - data: data, - src: url - }); - callback && callback(); - }, - onError: function failure(error) { - self._logDebug('error', 'Raven transport failed to send: ', error); - - if (error.request) { - self._setBackoffState(error.request); - } - - self._triggerEvent('failure', { - data: data, - src: url - }); - error = error || new Error('Raven send failed (no additional details provided)'); - callback && callback(error); - } - }); - }, - - _makeRequest: function(opts) { - // Auth is intentionally sent as part of query string (NOT as custom HTTP header) to avoid preflight CORS requests - var url = opts.url + '?' + urlencode(opts.auth); - - var evaluatedHeaders = null; - var evaluatedFetchParameters = {}; - - if (opts.options.headers) { - evaluatedHeaders = this._evaluateHash(opts.options.headers); - } - - if (opts.options.fetchParameters) { - evaluatedFetchParameters = this._evaluateHash(opts.options.fetchParameters); - } - - if (supportsFetch()) { - evaluatedFetchParameters.body = stringify(opts.data); - - var defaultFetchOptions = objectMerge({}, this._fetchDefaults); - var fetchOptions = objectMerge(defaultFetchOptions, evaluatedFetchParameters); - - if (evaluatedHeaders) { - fetchOptions.headers = evaluatedHeaders; - } - - return _window - .fetch(url, fetchOptions) - .then(function(response) { - if (response.ok) { - opts.onSuccess && opts.onSuccess(); - } else { - var error = new Error('Sentry error code: ' + response.status); - // It's called request only to keep compatibility with XHR interface - // and not add more redundant checks in setBackoffState method - error.request = response; - opts.onError && opts.onError(error); - } - }) - ['catch'](function() { - opts.onError && - opts.onError(new Error('Sentry error code: network unavailable')); - }); - } - - var request = _window.XMLHttpRequest && new _window.XMLHttpRequest(); - if (!request) return; - - // if browser doesn't support CORS (e.g. IE7), we are out of luck - var hasCORS = 'withCredentials' in request || typeof XDomainRequest !== 'undefined'; - - if (!hasCORS) return; - - if ('withCredentials' in request) { - request.onreadystatechange = function() { - if (request.readyState !== 4) { - return; - } else if (request.status === 200) { - opts.onSuccess && opts.onSuccess(); - } else if (opts.onError) { - var err = new Error('Sentry error code: ' + request.status); - err.request = request; - opts.onError(err); - } - }; - } else { - request = new XDomainRequest(); - // xdomainrequest cannot go http -> https (or vice versa), - // so always use protocol relative - url = url.replace(/^https?:/, ''); - - // onreadystatechange not supported by XDomainRequest - if (opts.onSuccess) { - request.onload = opts.onSuccess; - } - if (opts.onError) { - request.onerror = function() { - var err = new Error('Sentry error code: XDomainRequest'); - err.request = request; - opts.onError(err); - }; - } - } - - request.open('POST', url); - - if (evaluatedHeaders) { - each(evaluatedHeaders, function(key, value) { - request.setRequestHeader(key, value); - }); - } - - request.send(stringify(opts.data)); - }, - - _evaluateHash: function(hash) { - var evaluated = {}; - - for (var key in hash) { - if (hash.hasOwnProperty(key)) { - var value = hash[key]; - evaluated[key] = typeof value === 'function' ? value() : value; - } - } - - return evaluated; - }, - - _logDebug: function(level) { - if (this._originalConsoleMethods[level] && this.debug) { - // In IE<10 console methods do not have their own 'apply' method - Function.prototype.apply.call( - this._originalConsoleMethods[level], - this._originalConsole, - [].slice.call(arguments, 1) - ); - } - }, - - _mergeContext: function(key, context) { - if (isUndefined(context)) { - delete this._globalContext[key]; - } else { - this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context); - } - } -}; - -// Deprecations -Raven.prototype.setUser = Raven.prototype.setUserContext; -Raven.prototype.setReleaseContext = Raven.prototype.setRelease; - -module.exports = Raven; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/raven-js/src/singleton.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {/** - * Enforces a single instance of the Raven client, and the - * main entry point for Raven. If you are a consumer of the - * Raven library, you SHOULD load this file (vs raven.js). - **/ - -var RavenConstructor = __webpack_require__("./node_modules/raven-js/src/raven.js"); - -// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) -var _window = - typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; -var _Raven = _window.Raven; - -var Raven = new RavenConstructor(); - -/* - * Allow multiple versions of Raven to be installed. - * Strip Raven from the global context and returns the instance. - * - * @return {Raven} - */ -Raven.noConflict = function() { - _window.Raven = _Raven; - return Raven; -}; - -Raven.afterLoad(); - -module.exports = Raven; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/raven-js/src/utils.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var _window = - typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - -function isObject(what) { - return typeof what === 'object' && what !== null; -} - -// Yanked from https://git.io/vS8DV re-used under CC0 -// with some tiny modifications -function isError(value) { - switch ({}.toString.call(value)) { - case '[object Error]': - return true; - case '[object Exception]': - return true; - case '[object DOMException]': - return true; - default: - return value instanceof Error; - } -} - -function isErrorEvent(value) { - return supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]'; -} - -function isUndefined(what) { - return what === void 0; -} - -function isFunction(what) { - return typeof what === 'function'; -} - -function isPlainObject(what) { - return Object.prototype.toString.call(what) === '[object Object]'; -} - -function isString(what) { - return Object.prototype.toString.call(what) === '[object String]'; -} - -function isArray(what) { - return Object.prototype.toString.call(what) === '[object Array]'; -} - -function isEmptyObject(what) { - if (!isPlainObject(what)) return false; - - for (var _ in what) { - if (what.hasOwnProperty(_)) { - return false; - } - } - return true; -} - -function supportsErrorEvent() { - try { - new ErrorEvent(''); // eslint-disable-line no-new - return true; - } catch (e) { - return false; - } -} - -function supportsFetch() { - if (!('fetch' in _window)) return false; - - try { - new Headers(); // eslint-disable-line no-new - new Request(''); // eslint-disable-line no-new - new Response(); // eslint-disable-line no-new - return true; - } catch (e) { - return false; - } -} - -function wrappedCallback(callback) { - function dataCallback(data, original) { - var normalizedData = callback(data) || data; - if (original) { - return original(normalizedData) || normalizedData; - } - return normalizedData; - } - - return dataCallback; -} - -function each(obj, callback) { - var i, j; - - if (isUndefined(obj.length)) { - for (i in obj) { - if (hasKey(obj, i)) { - callback.call(null, i, obj[i]); - } - } - } else { - j = obj.length; - if (j) { - for (i = 0; i < j; i++) { - callback.call(null, i, obj[i]); - } - } - } -} - -function objectMerge(obj1, obj2) { - if (!obj2) { - return obj1; - } - each(obj2, function(key, value) { - obj1[key] = value; - }); - return obj1; -} - -/** - * This function is only used for react-native. - * react-native freezes object that have already been sent over the - * js bridge. We need this function in order to check if the object is frozen. - * So it's ok that objectFrozen returns false if Object.isFrozen is not - * supported because it's not relevant for other "platforms". See related issue: - * https://github.com/getsentry/react-native-sentry/issues/57 - */ -function objectFrozen(obj) { - if (!Object.isFrozen) { - return false; - } - return Object.isFrozen(obj); -} - -function truncate(str, max) { - return !max || str.length <= max ? str : str.substr(0, max) + '\u2026'; -} - -/** - * hasKey, a better form of hasOwnProperty - * Example: hasKey(MainHostObject, property) === true/false - * - * @param {Object} host object to check property - * @param {string} key to check - */ -function hasKey(object, key) { - return Object.prototype.hasOwnProperty.call(object, key); -} - -function joinRegExp(patterns) { - // Combine an array of regular expressions and strings into one large regexp - // Be mad. - var sources = [], - i = 0, - len = patterns.length, - pattern; - - for (; i < len; i++) { - pattern = patterns[i]; - if (isString(pattern)) { - // If it's a string, we need to escape it - // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions - sources.push(pattern.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1')); - } else if (pattern && pattern.source) { - // If it's a regexp already, we want to extract the source - sources.push(pattern.source); - } - // Intentionally skip other cases - } - return new RegExp(sources.join('|'), 'i'); -} - -function urlencode(o) { - var pairs = []; - each(o, function(key, value) { - pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)); - }); - return pairs.join('&'); -} - -// borrowed from https://tools.ietf.org/html/rfc3986#appendix-B -// intentionally using regex and not
href parsing trick because React Native and other -// environments where DOM might not be available -function parseUrl(url) { - if (typeof url !== 'string') return {}; - var match = url.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/); - - // coerce to undefined values to empty string so we don't get 'undefined' - var query = match[6] || ''; - var fragment = match[8] || ''; - return { - protocol: match[2], - host: match[4], - path: match[5], - relative: match[5] + query + fragment // everything minus origin - }; -} -function uuid4() { - var crypto = _window.crypto || _window.msCrypto; - - if (!isUndefined(crypto) && crypto.getRandomValues) { - // Use window.crypto API if available - // eslint-disable-next-line no-undef - var arr = new Uint16Array(8); - crypto.getRandomValues(arr); - - // set 4 in byte 7 - arr[3] = (arr[3] & 0xfff) | 0x4000; - // set 2 most significant bits of byte 9 to '10' - arr[4] = (arr[4] & 0x3fff) | 0x8000; - - var pad = function(num) { - var v = num.toString(16); - while (v.length < 4) { - v = '0' + v; - } - return v; - }; - - return ( - pad(arr[0]) + - pad(arr[1]) + - pad(arr[2]) + - pad(arr[3]) + - pad(arr[4]) + - pad(arr[5]) + - pad(arr[6]) + - pad(arr[7]) - ); - } else { - // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523 - return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - var r = (Math.random() * 16) | 0, - v = c === 'x' ? r : (r & 0x3) | 0x8; - return v.toString(16); - }); - } -} - -/** - * Given a child DOM element, returns a query-selector statement describing that - * and its ancestors - * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz] - * @param elem - * @returns {string} - */ -function htmlTreeAsString(elem) { - /* eslint no-extra-parens:0*/ - var MAX_TRAVERSE_HEIGHT = 5, - MAX_OUTPUT_LEN = 80, - out = [], - height = 0, - len = 0, - separator = ' > ', - sepLength = separator.length, - nextStr; - - while (elem && height++ < MAX_TRAVERSE_HEIGHT) { - nextStr = htmlElementAsString(elem); - // bail out if - // - nextStr is the 'html' element - // - the length of the string that would be created exceeds MAX_OUTPUT_LEN - // (ignore this limit if we are on the first iteration) - if ( - nextStr === 'html' || - (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) - ) { - break; - } - - out.push(nextStr); - - len += nextStr.length; - elem = elem.parentNode; - } - - return out.reverse().join(separator); -} - -/** - * Returns a simple, query-selector representation of a DOM element - * e.g. [HTMLElement] => input#foo.btn[name=baz] - * @param HTMLElement - * @returns {string} - */ -function htmlElementAsString(elem) { - var out = [], - className, - classes, - key, - attr, - i; - - if (!elem || !elem.tagName) { - return ''; - } - - out.push(elem.tagName.toLowerCase()); - if (elem.id) { - out.push('#' + elem.id); - } - - className = elem.className; - if (className && isString(className)) { - classes = className.split(/\s+/); - for (i = 0; i < classes.length; i++) { - out.push('.' + classes[i]); - } - } - var attrWhitelist = ['type', 'name', 'title', 'alt']; - for (i = 0; i < attrWhitelist.length; i++) { - key = attrWhitelist[i]; - attr = elem.getAttribute(key); - if (attr) { - out.push('[' + key + '="' + attr + '"]'); - } - } - return out.join(''); -} - -/** - * Returns true if either a OR b is truthy, but not both - */ -function isOnlyOneTruthy(a, b) { - return !!(!!a ^ !!b); -} - -/** - * Returns true if both parameters are undefined - */ -function isBothUndefined(a, b) { - return isUndefined(a) && isUndefined(b); -} - -/** - * Returns true if the two input exception interfaces have the same content - */ -function isSameException(ex1, ex2) { - if (isOnlyOneTruthy(ex1, ex2)) return false; - - ex1 = ex1.values[0]; - ex2 = ex2.values[0]; - - if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false; - - // in case both stacktraces are undefined, we can't decide so default to false - if (isBothUndefined(ex1.stacktrace, ex2.stacktrace)) return false; - - return isSameStacktrace(ex1.stacktrace, ex2.stacktrace); -} - -/** - * Returns true if the two input stack trace interfaces have the same content - */ -function isSameStacktrace(stack1, stack2) { - if (isOnlyOneTruthy(stack1, stack2)) return false; - - var frames1 = stack1.frames; - var frames2 = stack2.frames; - - // Exit early if frame count differs - if (frames1.length !== frames2.length) return false; - - // Iterate through every frame; bail out if anything differs - var a, b; - for (var i = 0; i < frames1.length; i++) { - a = frames1[i]; - b = frames2[i]; - if ( - a.filename !== b.filename || - a.lineno !== b.lineno || - a.colno !== b.colno || - a['function'] !== b['function'] - ) - return false; - } - return true; -} - -/** - * Polyfill a method - * @param obj object e.g. `document` - * @param name method name present on object e.g. `addEventListener` - * @param replacement replacement function - * @param track {optional} record instrumentation to an array - */ -function fill(obj, name, replacement, track) { - var orig = obj[name]; - obj[name] = replacement(orig); - obj[name].__raven__ = true; - obj[name].__orig__ = orig; - if (track) { - track.push([obj, name, orig]); - } -} - -/** - * Join values in array - * @param input array of values to be joined together - * @param delimiter string to be placed in-between values - * @returns {string} - */ -function safeJoin(input, delimiter) { - if (!isArray(input)) return ''; - - var output = []; - - for (var i = 0; i < input.length; i++) { - try { - output.push(String(input[i])); - } catch (e) { - output.push('[value cannot be serialized]'); - } - } - - return output.join(delimiter); -} - -module.exports = { - isObject: isObject, - isError: isError, - isErrorEvent: isErrorEvent, - isUndefined: isUndefined, - isFunction: isFunction, - isPlainObject: isPlainObject, - isString: isString, - isArray: isArray, - isEmptyObject: isEmptyObject, - supportsErrorEvent: supportsErrorEvent, - supportsFetch: supportsFetch, - wrappedCallback: wrappedCallback, - each: each, - objectMerge: objectMerge, - truncate: truncate, - objectFrozen: objectFrozen, - hasKey: hasKey, - joinRegExp: joinRegExp, - urlencode: urlencode, - uuid4: uuid4, - htmlTreeAsString: htmlTreeAsString, - htmlElementAsString: htmlElementAsString, - isSameException: isSameException, - isSameStacktrace: isSameStacktrace, - parseUrl: parseUrl, - fill: fill, - safeJoin: safeJoin -}; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/raven-js/vendor/TraceKit/tracekit.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var utils = __webpack_require__("./node_modules/raven-js/src/utils.js"); - -/* - TraceKit - Cross brower stack traces - - This was originally forked from github.com/occ/TraceKit, but has since been - largely re-written and is now maintained as part of raven-js. Tests for - this are in test/vendor. - - MIT license -*/ - -var TraceKit = { - collectWindowErrors: true, - debug: false -}; - -// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) -var _window = - typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - -// global reference to slice -var _slice = [].slice; -var UNKNOWN_FUNCTION = '?'; - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types -var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/; - -function getLocationHref() { - if (typeof document === 'undefined' || document.location == null) return ''; - - return document.location.href; -} - -/** - * TraceKit.report: cross-browser processing of unhandled exceptions - * - * Syntax: - * TraceKit.report.subscribe(function(stackInfo) { ... }) - * TraceKit.report.unsubscribe(function(stackInfo) { ... }) - * TraceKit.report(exception) - * try { ...code... } catch(ex) { TraceKit.report(ex); } - * - * Supports: - * - Firefox: full stack trace with line numbers, plus column number - * on top frame; column number is not guaranteed - * - Opera: full stack trace with line and column numbers - * - Chrome: full stack trace with line and column numbers - * - Safari: line and column number for the top frame only; some frames - * may be missing, and column number is not guaranteed - * - IE: line and column number for the top frame only; some frames - * may be missing, and column number is not guaranteed - * - * In theory, TraceKit should work on all of the following versions: - * - IE5.5+ (only 8.0 tested) - * - Firefox 0.9+ (only 3.5+ tested) - * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require - * Exceptions Have Stacktrace to be enabled in opera:config) - * - Safari 3+ (only 4+ tested) - * - Chrome 1+ (only 5+ tested) - * - Konqueror 3.5+ (untested) - * - * Requires TraceKit.computeStackTrace. - * - * Tries to catch all unhandled exceptions and report them to the - * subscribed handlers. Please note that TraceKit.report will rethrow the - * exception. This is REQUIRED in order to get a useful stack trace in IE. - * If the exception does not reach the top of the browser, you will only - * get a stack trace from the point where TraceKit.report was called. - * - * Handlers receive a stackInfo object as described in the - * TraceKit.computeStackTrace docs. - */ -TraceKit.report = (function reportModuleWrapper() { - var handlers = [], - lastArgs = null, - lastException = null, - lastExceptionStack = null; - - /** - * Add a crash handler. - * @param {Function} handler - */ - function subscribe(handler) { - installGlobalHandler(); - handlers.push(handler); - } - - /** - * Remove a crash handler. - * @param {Function} handler - */ - function unsubscribe(handler) { - for (var i = handlers.length - 1; i >= 0; --i) { - if (handlers[i] === handler) { - handlers.splice(i, 1); - } - } - } - - /** - * Remove all crash handlers. - */ - function unsubscribeAll() { - uninstallGlobalHandler(); - handlers = []; - } - - /** - * Dispatch stack information to all handlers. - * @param {Object.} stack - */ - function notifyHandlers(stack, isWindowError) { - var exception = null; - if (isWindowError && !TraceKit.collectWindowErrors) { - return; - } - for (var i in handlers) { - if (handlers.hasOwnProperty(i)) { - try { - handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2))); - } catch (inner) { - exception = inner; - } - } - } - - if (exception) { - throw exception; - } - } - - var _oldOnerrorHandler, _onErrorHandlerInstalled; - - /** - * Ensures all global unhandled exceptions are recorded. - * Supported by Gecko and IE. - * @param {string} msg Error message. - * @param {string} url URL of script that generated the exception. - * @param {(number|string)} lineNo The line number at which the error - * occurred. - * @param {?(number|string)} colNo The column number at which the error - * occurred. - * @param {?Error} ex The actual Error object. - */ - function traceKitWindowOnError(msg, url, lineNo, colNo, ex) { - var stack = null; - // If 'ex' is ErrorEvent, get real Error from inside - var exception = utils.isErrorEvent(ex) ? ex.error : ex; - // If 'msg' is ErrorEvent, get real message from inside - var message = utils.isErrorEvent(msg) ? msg.message : msg; - - if (lastExceptionStack) { - TraceKit.computeStackTrace.augmentStackTraceWithInitialElement( - lastExceptionStack, - url, - lineNo, - message - ); - processLastException(); - } else if (exception && utils.isError(exception)) { - // non-string `exception` arg; attempt to extract stack trace - - // New chrome and blink send along a real error object - // Let's just report that like a normal error. - // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror - stack = TraceKit.computeStackTrace(exception); - notifyHandlers(stack, true); - } else { - var location = { - url: url, - line: lineNo, - column: colNo - }; - - var name = undefined; - var groups; - - if ({}.toString.call(message) === '[object String]') { - var groups = message.match(ERROR_TYPES_RE); - if (groups) { - name = groups[1]; - message = groups[2]; - } - } - - location.func = UNKNOWN_FUNCTION; - - stack = { - name: name, - message: message, - url: getLocationHref(), - stack: [location] - }; - notifyHandlers(stack, true); - } - - if (_oldOnerrorHandler) { - return _oldOnerrorHandler.apply(this, arguments); - } - - return false; - } - - function installGlobalHandler() { - if (_onErrorHandlerInstalled) { - return; - } - _oldOnerrorHandler = _window.onerror; - _window.onerror = traceKitWindowOnError; - _onErrorHandlerInstalled = true; - } - - function uninstallGlobalHandler() { - if (!_onErrorHandlerInstalled) { - return; - } - _window.onerror = _oldOnerrorHandler; - _onErrorHandlerInstalled = false; - _oldOnerrorHandler = undefined; - } - - function processLastException() { - var _lastExceptionStack = lastExceptionStack, - _lastArgs = lastArgs; - lastArgs = null; - lastExceptionStack = null; - lastException = null; - notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs)); - } - - /** - * Reports an unhandled Error to TraceKit. - * @param {Error} ex - * @param {?boolean} rethrow If false, do not re-throw the exception. - * Only used for window.onerror to not cause an infinite loop of - * rethrowing. - */ - function report(ex, rethrow) { - var args = _slice.call(arguments, 1); - if (lastExceptionStack) { - if (lastException === ex) { - return; // already caught by an inner catch block, ignore - } else { - processLastException(); - } - } - - var stack = TraceKit.computeStackTrace(ex); - lastExceptionStack = stack; - lastException = ex; - lastArgs = args; - - // If the stack trace is incomplete, wait for 2 seconds for - // slow slow IE to see if onerror occurs or not before reporting - // this exception; otherwise, we will end up with an incomplete - // stack trace - setTimeout(function() { - if (lastException === ex) { - processLastException(); - } - }, stack.incomplete ? 2000 : 0); - - if (rethrow !== false) { - throw ex; // re-throw to propagate to the top level (and cause window.onerror) - } - } - - report.subscribe = subscribe; - report.unsubscribe = unsubscribe; - report.uninstall = unsubscribeAll; - return report; -})(); - -/** - * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript - * - * Syntax: - * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below) - * Returns: - * s.name - exception name - * s.message - exception message - * s.stack[i].url - JavaScript or HTML file URL - * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work) - * s.stack[i].args - arguments passed to the function, if known - * s.stack[i].line - line number, if known - * s.stack[i].column - column number, if known - * - * Supports: - * - Firefox: full stack trace with line numbers and unreliable column - * number on top frame - * - Opera 10: full stack trace with line and column numbers - * - Opera 9-: full stack trace with line numbers - * - Chrome: full stack trace with line and column numbers - * - Safari: line and column number for the topmost stacktrace element - * only - * - IE: no line numbers whatsoever - * - * Tries to guess names of anonymous functions by looking for assignments - * in the source code. In IE and Safari, we have to guess source file names - * by searching for function bodies inside all page scripts. This will not - * work for scripts that are loaded cross-domain. - * Here be dragons: some function names may be guessed incorrectly, and - * duplicate functions may be mismatched. - * - * TraceKit.computeStackTrace should only be used for tracing purposes. - * Logging of unhandled exceptions should be done with TraceKit.report, - * which builds on top of TraceKit.computeStackTrace and provides better - * IE support by utilizing the window.onerror event to retrieve information - * about the top of the stack. - * - * Note: In IE and Safari, no stack trace is recorded on the Error object, - * so computeStackTrace instead walks its *own* chain of callers. - * This means that: - * * in Safari, some methods may be missing from the stack trace; - * * in IE, the topmost function in the stack trace will always be the - * caller of computeStackTrace. - * - * This is okay for tracing (because you are likely to be calling - * computeStackTrace from the function you want to be the topmost element - * of the stack trace anyway), but not okay for logging unhandled - * exceptions (because your catch block will likely be far away from the - * inner function that actually caused the exception). - * - */ -TraceKit.computeStackTrace = (function computeStackTraceWrapper() { - // Contents of Exception in various browsers. - // - // SAFARI: - // ex.message = Can't find variable: qq - // ex.line = 59 - // ex.sourceId = 580238192 - // ex.sourceURL = http://... - // ex.expressionBeginOffset = 96 - // ex.expressionCaretOffset = 98 - // ex.expressionEndOffset = 98 - // ex.name = ReferenceError - // - // FIREFOX: - // ex.message = qq is not defined - // ex.fileName = http://... - // ex.lineNumber = 59 - // ex.columnNumber = 69 - // ex.stack = ...stack trace... (see the example below) - // ex.name = ReferenceError - // - // CHROME: - // ex.message = qq is not defined - // ex.name = ReferenceError - // ex.type = not_defined - // ex.arguments = ['aa'] - // ex.stack = ...stack trace... - // - // INTERNET EXPLORER: - // ex.message = ... - // ex.name = ReferenceError - // - // OPERA: - // ex.message = ...message... (see the example below) - // ex.name = ReferenceError - // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message) - // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace' - - /** - * Computes stack trace information from the stack property. - * Chrome and Gecko use this property. - * @param {Error} ex - * @return {?Object.} Stack trace information. - */ - function computeStackTraceFromStackProp(ex) { - if (typeof ex.stack === 'undefined' || !ex.stack) return; - - var chrome = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, - gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, - winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx(?:-web)|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, - // Used to additionally parse URL/line/column from eval frames - geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, - chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/, - lines = ex.stack.split('\n'), - stack = [], - submatch, - parts, - element, - reference = /^(.*) is undefined$/.exec(ex.message); - - for (var i = 0, j = lines.length; i < j; ++i) { - if ((parts = chrome.exec(lines[i]))) { - var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line - var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line - if (isEval && (submatch = chromeEval.exec(parts[2]))) { - // throw out eval line/column and use top-most line/column number - parts[2] = submatch[1]; // url - parts[3] = submatch[2]; // line - parts[4] = submatch[3]; // column - } - element = { - url: !isNative ? parts[2] : null, - func: parts[1] || UNKNOWN_FUNCTION, - args: isNative ? [parts[2]] : [], - line: parts[3] ? +parts[3] : null, - column: parts[4] ? +parts[4] : null - }; - } else if ((parts = winjs.exec(lines[i]))) { - element = { - url: parts[2], - func: parts[1] || UNKNOWN_FUNCTION, - args: [], - line: +parts[3], - column: parts[4] ? +parts[4] : null - }; - } else if ((parts = gecko.exec(lines[i]))) { - var isEval = parts[3] && parts[3].indexOf(' > eval') > -1; - if (isEval && (submatch = geckoEval.exec(parts[3]))) { - // throw out eval line/column and use top-most line number - parts[3] = submatch[1]; - parts[4] = submatch[2]; - parts[5] = null; // no column when eval - } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== 'undefined') { - // FireFox uses this awesome columnNumber property for its top frame - // Also note, Firefox's column number is 0-based and everything else expects 1-based, - // so adding 1 - // NOTE: this hack doesn't work if top-most frame is eval - stack[0].column = ex.columnNumber + 1; - } - element = { - url: parts[3], - func: parts[1] || UNKNOWN_FUNCTION, - args: parts[2] ? parts[2].split(',') : [], - line: parts[4] ? +parts[4] : null, - column: parts[5] ? +parts[5] : null - }; - } else { - continue; - } - - if (!element.func && element.line) { - element.func = UNKNOWN_FUNCTION; - } - - stack.push(element); - } - - if (!stack.length) { - return null; - } - - return { - name: ex.name, - message: ex.message, - url: getLocationHref(), - stack: stack - }; - } - - /** - * Adds information about the first frame to incomplete stack traces. - * Safari and IE require this to get complete data on the first frame. - * @param {Object.} stackInfo Stack trace information from - * one of the compute* methods. - * @param {string} url The URL of the script that caused an error. - * @param {(number|string)} lineNo The line number of the script that - * caused an error. - * @param {string=} message The error generated by the browser, which - * hopefully contains the name of the object that caused the error. - * @return {boolean} Whether or not the stack information was - * augmented. - */ - function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) { - var initial = { - url: url, - line: lineNo - }; - - if (initial.url && initial.line) { - stackInfo.incomplete = false; - - if (!initial.func) { - initial.func = UNKNOWN_FUNCTION; - } - - if (stackInfo.stack.length > 0) { - if (stackInfo.stack[0].url === initial.url) { - if (stackInfo.stack[0].line === initial.line) { - return false; // already in stack trace - } else if ( - !stackInfo.stack[0].line && - stackInfo.stack[0].func === initial.func - ) { - stackInfo.stack[0].line = initial.line; - return false; - } - } - } - - stackInfo.stack.unshift(initial); - stackInfo.partial = true; - return true; - } else { - stackInfo.incomplete = true; - } - - return false; - } - - /** - * Computes stack trace information by walking the arguments.caller - * chain at the time the exception occurred. This will cause earlier - * frames to be missed but is the only way to get any stack trace in - * Safari and IE. The top frame is restored by - * {@link augmentStackTraceWithInitialElement}. - * @param {Error} ex - * @return {?Object.} Stack trace information. - */ - function computeStackTraceByWalkingCallerChain(ex, depth) { - var functionName = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i, - stack = [], - funcs = {}, - recursion = false, - parts, - item, - source; - - for ( - var curr = computeStackTraceByWalkingCallerChain.caller; - curr && !recursion; - curr = curr.caller - ) { - if (curr === computeStackTrace || curr === TraceKit.report) { - // console.log('skipping internal function'); - continue; - } - - item = { - url: null, - func: UNKNOWN_FUNCTION, - line: null, - column: null - }; - - if (curr.name) { - item.func = curr.name; - } else if ((parts = functionName.exec(curr.toString()))) { - item.func = parts[1]; - } - - if (typeof item.func === 'undefined') { - try { - item.func = parts.input.substring(0, parts.input.indexOf('{')); - } catch (e) {} - } - - if (funcs['' + curr]) { - recursion = true; - } else { - funcs['' + curr] = true; - } - - stack.push(item); - } - - if (depth) { - // console.log('depth is ' + depth); - // console.log('stack is ' + stack.length); - stack.splice(0, depth); - } - - var result = { - name: ex.name, - message: ex.message, - url: getLocationHref(), - stack: stack - }; - augmentStackTraceWithInitialElement( - result, - ex.sourceURL || ex.fileName, - ex.line || ex.lineNumber, - ex.message || ex.description - ); - return result; - } - - /** - * Computes a stack trace for an exception. - * @param {Error} ex - * @param {(string|number)=} depth - */ - function computeStackTrace(ex, depth) { - var stack = null; - depth = depth == null ? 0 : +depth; - - try { - stack = computeStackTraceFromStackProp(ex); - if (stack) { - return stack; - } - } catch (e) { - if (TraceKit.debug) { - throw e; - } - } - - try { - stack = computeStackTraceByWalkingCallerChain(ex, depth + 1); - if (stack) { - return stack; - } - } catch (e) { - if (TraceKit.debug) { - throw e; - } - } - return { - name: ex.name, - message: ex.message, - url: getLocationHref() - }; - } - - computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement; - computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp; - - return computeStackTrace; -})(); - -module.exports = TraceKit; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/raven-js/vendor/json-stringify-safe/stringify.js": -/***/ (function(module, exports) { - -/* - json-stringify-safe - Like JSON.stringify, but doesn't throw on circular references. - - Originally forked from https://github.com/isaacs/json-stringify-safe - version 5.0.1 on 3/8/2017 and modified to handle Errors serialization - and IE8 compatibility. Tests for this are in test/vendor. - - ISC license: https://github.com/isaacs/json-stringify-safe/blob/master/LICENSE -*/ - -exports = module.exports = stringify; -exports.getSerialize = serializer; - -function indexOf(haystack, needle) { - for (var i = 0; i < haystack.length; ++i) { - if (haystack[i] === needle) return i; - } - return -1; -} - -function stringify(obj, replacer, spaces, cycleReplacer) { - return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces); -} - -// https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106 -function stringifyError(value) { - var err = { - // These properties are implemented as magical getters and don't show up in for in - stack: value.stack, - message: value.message, - name: value.name - }; - - for (var i in value) { - if (Object.prototype.hasOwnProperty.call(value, i)) { - err[i] = value[i]; - } - } - - return err; -} - -function serializer(replacer, cycleReplacer) { - var stack = []; - var keys = []; - - if (cycleReplacer == null) { - cycleReplacer = function(key, value) { - if (stack[0] === value) { - return '[Circular ~]'; - } - return '[Circular ~.' + keys.slice(0, indexOf(stack, value)).join('.') + ']'; - }; - } - - return function(key, value) { - if (stack.length > 0) { - var thisPos = indexOf(stack, this); - ~thisPos ? stack.splice(thisPos + 1) : stack.push(this); - ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key); - - if (~indexOf(stack, value)) { - value = cycleReplacer.call(this, key, value); - } - } else { - stack.push(value); - } - - return replacer == null - ? value instanceof Error ? stringifyError(value) : value - : replacer.call(this, key, value); - }; -} - - -/***/ }), - -/***/ "./node_modules/react-event-listener/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _typeof2 = __webpack_require__("./node_modules/babel-runtime/helpers/typeof.js"); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _keys = __webpack_require__("./node_modules/babel-runtime/core-js/object/keys.js"); - -var _keys2 = _interopRequireDefault(_keys); - -var _objectWithoutProperties2 = __webpack_require__("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); - -var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); - -var _assign = __webpack_require__("./node_modules/babel-runtime/core-js/object/assign.js"); - -var _assign2 = _interopRequireDefault(_assign); - -exports.withOptions = withOptions; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _shallowEqual = __webpack_require__("./node_modules/fbjs/lib/shallowEqual.js"); - -var _shallowEqual2 = _interopRequireDefault(_shallowEqual); - -var _warning = __webpack_require__("./node_modules/warning/browser.js"); - -var _warning2 = _interopRequireDefault(_warning); - -var _supports = __webpack_require__("./node_modules/react-event-listener/lib/supports.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var defaultEventOptions = { - capture: false, - passive: false -}; - -function mergeDefaultEventOptions(options) { - return (0, _assign2.default)({}, defaultEventOptions, options); -} - -function getEventListenerArgs(eventName, callback, options) { - var args = [eventName, callback]; - args.push(_supports.passiveOption ? options : options.capture); - return args; -} - -function on(target, eventName, callback, options) { - // eslint-disable-next-line prefer-spread - target.addEventListener.apply(target, getEventListenerArgs(eventName, callback, options)); -} - -function off(target, eventName, callback, options) { - // eslint-disable-next-line prefer-spread - target.removeEventListener.apply(target, getEventListenerArgs(eventName, callback, options)); -} - -function forEachListener(props, iteratee) { - var children = props.children, - target = props.target, - eventProps = (0, _objectWithoutProperties3.default)(props, ['children', 'target']); - - - (0, _keys2.default)(eventProps).forEach(function (name) { - if (name.substring(0, 2) !== 'on') { - return; - } - - var prop = eventProps[name]; - var type = typeof prop === 'undefined' ? 'undefined' : (0, _typeof3.default)(prop); - var isObject = type === 'object'; - var isFunction = type === 'function'; - - if (!isObject && !isFunction) { - return; - } - - var capture = name.substr(-7).toLowerCase() === 'capture'; - var eventName = name.substring(2).toLowerCase(); - eventName = capture ? eventName.substring(0, eventName.length - 7) : eventName; - - if (isObject) { - iteratee(eventName, prop.handler, prop.options); - } else { - iteratee(eventName, prop, mergeDefaultEventOptions({ capture: capture })); - } - }); -} - -function withOptions(handler, options) { - process.env.NODE_ENV !== "production" ? (0, _warning2.default)(options, 'react-event-listener: should be specified options in withOptions.') : void 0; - - return { - handler: handler, - options: mergeDefaultEventOptions(options) - }; -} - -var EventListener = function (_React$Component) { - (0, _inherits3.default)(EventListener, _React$Component); - - function EventListener() { - (0, _classCallCheck3.default)(this, EventListener); - return (0, _possibleConstructorReturn3.default)(this, (EventListener.__proto__ || (0, _getPrototypeOf2.default)(EventListener)).apply(this, arguments)); - } - - (0, _createClass3.default)(EventListener, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.addListeners(); - } - }, { - key: 'shouldComponentUpdate', - value: function shouldComponentUpdate(nextProps) { - return !(0, _shallowEqual2.default)(this.props, nextProps); - } - }, { - key: 'componentWillUpdate', - value: function componentWillUpdate() { - this.removeListeners(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.addListeners(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.removeListeners(); - } - }, { - key: 'addListeners', - value: function addListeners() { - this.applyListeners(on); - } - }, { - key: 'removeListeners', - value: function removeListeners() { - this.applyListeners(off); - } - }, { - key: 'applyListeners', - value: function applyListeners(onOrOff) { - var target = this.props.target; - - - if (target) { - var element = target; - - if (typeof target === 'string') { - element = window[target]; - } - - forEachListener(this.props, onOrOff.bind(null, element)); - } - } - }, { - key: 'render', - value: function render() { - return this.props.children || null; - } - }]); - return EventListener; -}(_react2.default.Component); - -EventListener.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * You can provide a single child too. - */ - children: _propTypes2.default.node, - /** - * The DOM target to listen to. - */ - target: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]).isRequired -} : {}; - -exports.default = EventListener; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/react-event-listener/lib/supports.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.passiveOption = undefined; - -var _defineProperty = __webpack_require__("./node_modules/babel-runtime/core-js/object/define-property.js"); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function defineProperty(object, property, attr) { - return (0, _defineProperty2.default)(object, property, attr); -} - -// Passive options -// Inspired by https://github.com/Modernizr/Modernizr/blob/master/feature-detects/dom/passiveeventlisteners.js -var passiveOption = exports.passiveOption = function () { - var cache = null; - - return function () { - if (cache !== null) { - return cache; - } - - var supportsPassiveOption = false; - - try { - window.addEventListener('test', null, defineProperty({}, 'passive', { - get: function get() { - supportsPassiveOption = true; - } - })); - } catch (err) { - // - } - - cache = supportsPassiveOption; - - return supportsPassiveOption; - }(); -}(); - -exports.default = {}; - -/***/ }), - -/***/ "./node_modules/react-jss/lib/JssProvider.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _jss = __webpack_require__("./node_modules/react-jss/lib/jss.js"); - -var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); - -var ns = _interopRequireWildcard(_ns); - -var _contextTypes = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); - -var _contextTypes2 = _interopRequireDefault(_contextTypes); - -var _propTypes2 = __webpack_require__("./node_modules/react-jss/lib/propTypes.js"); - -var _propTypes3 = _interopRequireDefault(_propTypes2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var JssProvider = function (_Component) { - _inherits(JssProvider, _Component); - - function JssProvider() { - _classCallCheck(this, JssProvider); - - return _possibleConstructorReturn(this, (JssProvider.__proto__ || Object.getPrototypeOf(JssProvider)).apply(this, arguments)); - } - - _createClass(JssProvider, [{ - key: 'getChildContext', - - - // JssProvider can be nested. We allow to overwrite any context prop at any level. - // 1. Check if there is a value passed over props. - // 2. If value was passed, we set it on the child context. - // 3. If value was not passed, we proxy parent context (default context behaviour). - value: function getChildContext() { - var _props = this.props, - registry = _props.registry, - classNamePrefix = _props.classNamePrefix, - localJss = _props.jss, - generateClassName = _props.generateClassName; - - var sheetOptions = this.context[ns.sheetOptions] || {}; - var context = _defineProperty({}, ns.sheetOptions, sheetOptions); - - if (registry) { - context[ns.sheetsRegistry] = registry; - // This way we identify a new request on the server, because user will create - // a new Registry instance for each. - if (registry !== this.registry) { - // We reset managers because we have to regenerate all sheets for the new request. - this.managers = {}; - this.registry = registry; - } - } - - // Make sure we don't loose managers when JssProvider is used inside of a stateful - // component which decides to rerender. - context[ns.managers] = this.managers; - - if (generateClassName) { - sheetOptions.generateClassName = generateClassName; - } else if (!sheetOptions.generateClassName) { - if (!this.generateClassName) { - var createGenerateClassName = _jss.createGenerateClassNameDefault; - if (localJss && localJss.options.createGenerateClassName) { - createGenerateClassName = localJss.options.createGenerateClassName; - } - // Make sure we don't loose the generator when JssProvider is used inside of a stateful - // component which decides to rerender. - this.generateClassName = createGenerateClassName(); - } - - sheetOptions.generateClassName = this.generateClassName; - } - - if (classNamePrefix) sheetOptions.classNamePrefix = classNamePrefix; - if (localJss) context[ns.jss] = localJss; - - return context; - } - }, { - key: 'render', - value: function render() { - return _react.Children.only(this.props.children); - } - }]); - - return JssProvider; -}(_react.Component); - -JssProvider.propTypes = _extends({}, _propTypes3['default'], { - generateClassName: _propTypes.func, - classNamePrefix: _propTypes.string, - children: _propTypes.node.isRequired -}); -JssProvider.childContextTypes = _contextTypes2['default']; -JssProvider.contextTypes = _contextTypes2['default']; -exports['default'] = JssProvider; - -/***/ }), - -/***/ "./node_modules/react-jss/lib/compose.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -/** - * Adds `composes` property to each top level rule - * in order to have a composed class name for dynamic style sheets. - * - * It relies on jss-compose and jss-extend plugins. - * - * Example: - * classes: {left: 'a', button: 'b'} - * styles: {button: {height: () => { ... }}} - * composed: { - * button: { - * composes: 'b', - * height: () => { ... } - * }, - * left: { - * composes: 'a' - * } - * } - * - * @param {Object} classes static classes map - * @param {Object} styles dynamic styles object without static properties - * @return {Object|null} - */ -exports['default'] = function (classes, styles) { - // Add `composes` property to rules which are already defined in `classes`. - for (var name in styles) { - var className = classes[name]; - if (!className) break; - - if (typeof styles[name] === 'function') { - styles[name] = { - extend: styles[name], - composes: className - }; - continue; - } - - styles[name].composes = className; - } - - if (styles) { - // Add rules which are defined in `classes` but aren't in styles. - for (var _name in classes) { - var _className = styles[_name]; - if (!_className) { - styles[_name] = { composes: classes[_name] }; - } - } - } - - return styles; -}; - -/***/ }), - -/***/ "./node_modules/react-jss/lib/contextTypes.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _ns$jss$ns$sheetOptio; - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); - -var ns = _interopRequireWildcard(_ns); - -var _propTypes2 = __webpack_require__("./node_modules/react-jss/lib/propTypes.js"); - -var _propTypes3 = _interopRequireDefault(_propTypes2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -exports['default'] = (_ns$jss$ns$sheetOptio = {}, _defineProperty(_ns$jss$ns$sheetOptio, ns.jss, _propTypes3['default'].jss), _defineProperty(_ns$jss$ns$sheetOptio, ns.sheetOptions, _propTypes.object), _defineProperty(_ns$jss$ns$sheetOptio, ns.sheetsRegistry, _propTypes3['default'].registry), _defineProperty(_ns$jss$ns$sheetOptio, ns.managers, _propTypes.object), _ns$jss$ns$sheetOptio); - -/***/ }), - -/***/ "./node_modules/react-jss/lib/createHoc.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _theming = __webpack_require__("./node_modules/theming/dist/esm/index.js"); - -var _theming2 = _interopRequireDefault(_theming); - -var _jss = __webpack_require__("./node_modules/react-jss/lib/jss.js"); - -var _jss2 = _interopRequireDefault(_jss); - -var _compose = __webpack_require__("./node_modules/react-jss/lib/compose.js"); - -var _compose2 = _interopRequireDefault(_compose); - -var _getDisplayName = __webpack_require__("./node_modules/react-jss/lib/getDisplayName.js"); - -var _getDisplayName2 = _interopRequireDefault(_getDisplayName); - -var _ns = __webpack_require__("./node_modules/react-jss/lib/ns.js"); - -var ns = _interopRequireWildcard(_ns); - -var _contextTypes = __webpack_require__("./node_modules/react-jss/lib/contextTypes.js"); - -var _contextTypes2 = _interopRequireDefault(_contextTypes); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -var env = process.env.NODE_ENV; - -// Like a Symbol -var dynamicStylesNs = Math.random(); - -/* - * # Use cases - * - * - Unthemed component accepts styles object - * - Themed component accepts styles creator function which takes theme as a single argument - * - Multiple instances will re-use the same static sheet via sheets manager - * - Sheet manager identifies static sheets by theme as a key - * - For unthemed components theme is an empty object - * - The very first instance will add static sheet to sheets manager - * - Every further instances will get that static sheet from sheet manager - * - Every mount of every instance will call method `sheetsManager.manage`, - * thus incrementing reference counter. - * - Every unmount of every instance will call method `sheetsManager.unmanage`, - * thus decrementing reference counter. - * - `sheetsManager.unmanage` under the hood will detach static sheet once reference - * counter is zero. - * - Dynamic styles are not shared between instances - * - */ - -var getStyles = function getStyles(stylesOrCreator, theme) { - if (typeof stylesOrCreator !== 'function') { - return stylesOrCreator; - } - return stylesOrCreator(theme); -}; - -// Returns an object with array property as a key and true as a value. -var toMap = function toMap(arr) { - return arr.reduce(function (map, prop) { - map[prop] = true; - return map; - }, {}); -}; - -var defaultInjectProps = { - sheet: false, - classes: true, - theme: true -}; - -var managersCounter = 0; - -/** - * Wrap a Component into a JSS Container Component. - * - * @param {Object|Function} stylesOrCreator - * @param {Component} InnerComponent - * @param {Object} [options] - * @return {Component} - */ - -exports['default'] = function (stylesOrCreator, InnerComponent) { - var _class, _temp, _initialiseProps; - - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - var isThemingEnabled = typeof stylesOrCreator === 'function'; - - var _options$theming = options.theming, - theming = _options$theming === undefined ? _theming2['default'] : _options$theming, - inject = options.inject, - optionsJss = options.jss, - sheetOptions = _objectWithoutProperties(options, ['theming', 'inject', 'jss']); - - var injectMap = inject ? toMap(inject) : defaultInjectProps; - var themeListener = theming.themeListener; - - var displayName = (0, _getDisplayName2['default'])(InnerComponent); - var defaultClassNamePrefix = env === 'production' ? undefined : displayName + '-'; - var noTheme = {}; - var managerId = managersCounter++; - var manager = new _jss.SheetsManager(); - var defaultProps = _extends({}, InnerComponent.defaultProps); - delete defaultProps.classes; - - return _temp = _class = function (_Component) { - _inherits(Jss, _Component); - - function Jss(props, context) { - _classCallCheck(this, Jss); - - var _this = _possibleConstructorReturn(this, (Jss.__proto__ || Object.getPrototypeOf(Jss)).call(this, props, context)); - - _initialiseProps.call(_this); - - var theme = isThemingEnabled ? themeListener.initial(context) : noTheme; - - _this.state = _this.createState({ theme: theme }, props); - return _this; - } - - _createClass(Jss, [{ - key: 'createState', - value: function createState(_ref, _ref2) { - var theme = _ref.theme, - dynamicSheet = _ref.dynamicSheet; - var userClasses = _ref2.classes; - - var contextSheetOptions = this.context[ns.sheetOptions]; - var classNamePrefix = defaultClassNamePrefix; - var staticSheet = this.manager.get(theme); - var dynamicStyles = void 0; - - if (contextSheetOptions && contextSheetOptions.classNamePrefix) { - classNamePrefix = contextSheetOptions.classNamePrefix + classNamePrefix; - } - - if (!staticSheet) { - var styles = getStyles(stylesOrCreator, theme); - staticSheet = this.jss.createStyleSheet(styles, _extends({}, sheetOptions, contextSheetOptions, { - meta: displayName + ', ' + (isThemingEnabled ? 'Themed' : 'Unthemed') + ', Static', - classNamePrefix: classNamePrefix - })); - this.manager.add(theme, staticSheet); - dynamicStyles = (0, _compose2['default'])(staticSheet.classes, (0, _jss.getDynamicStyles)(styles)); - staticSheet[dynamicStylesNs] = dynamicStyles; - } else dynamicStyles = staticSheet[dynamicStylesNs]; - - if (dynamicStyles) { - dynamicSheet = this.jss.createStyleSheet(dynamicStyles, _extends({}, sheetOptions, contextSheetOptions, { - meta: displayName + ', ' + (isThemingEnabled ? 'Themed' : 'Unthemed') + ', Dynamic', - classNamePrefix: classNamePrefix, - link: true - })); - } - - var sheet = dynamicSheet || staticSheet; - var defaultClasses = InnerComponent.defaultProps ? InnerComponent.defaultProps.classes : {}; - var classes = _extends({}, defaultClasses, sheet.classes, userClasses); - - return { theme: theme, dynamicSheet: dynamicSheet, classes: classes }; - } - }, { - key: 'manage', - value: function manage(_ref3) { - var theme = _ref3.theme, - dynamicSheet = _ref3.dynamicSheet; - - var registry = this.context[ns.sheetsRegistry]; - - var staticSheet = this.manager.manage(theme); - if (registry) registry.add(staticSheet); - - if (dynamicSheet) { - dynamicSheet.update(this.props).attach(); - if (registry) registry.add(dynamicSheet); - } - } - }, { - key: 'componentWillMount', - value: function componentWillMount() { - this.manage(this.state); - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - if (isThemingEnabled) { - this.unsubscribeId = themeListener.subscribe(this.context, this.setTheme); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - var dynamicSheet = this.state.dynamicSheet; - - if (dynamicSheet) dynamicSheet.update(nextProps); - } - }, { - key: 'componentWillUpdate', - value: function componentWillUpdate(nextProps, nextState) { - if (isThemingEnabled && this.state.theme !== nextState.theme) { - var newState = this.createState(nextState, nextProps); - this.manage(newState); - this.manager.unmanage(this.state.theme); - this.setState(newState); - } - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(prevProps, prevState) { - // We remove previous dynamicSheet only after new one was created to avoid FOUC. - if (prevState.dynamicSheet !== this.state.dynamicSheet) { - this.jss.removeStyleSheet(prevState.dynamicSheet); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - if (this.unsubscribeId) { - themeListener.unsubscribe(this.context, this.unsubscribeId); - } - - this.manager.unmanage(this.state.theme); - if (this.state.dynamicSheet) { - this.state.dynamicSheet.detach(); - } - } - }, { - key: 'render', - value: function render() { - var _state = this.state, - theme = _state.theme, - dynamicSheet = _state.dynamicSheet, - classes = _state.classes; - - var sheet = dynamicSheet || this.manager.get(theme); - var props = {}; - if (injectMap.sheet) props.sheet = sheet; - if (isThemingEnabled && injectMap.theme) props.theme = theme; - Object.assign(props, this.props); - // We have merged classes already. - if (injectMap.classes) props.classes = classes; - return _react2['default'].createElement(InnerComponent, props); - } - }, { - key: 'jss', - get: function get() { - return this.context[ns.jss] || optionsJss || _jss2['default']; - } - }, { - key: 'manager', - get: function get() { - var managers = this.context[ns.managers]; - - // If `managers` map is present in the context, we use it in order to - // let JssProvider reset them when new response has to render server-side. - if (managers) { - if (!managers[managerId]) { - managers[managerId] = new _jss.SheetsManager(); - } - return managers[managerId]; - } - - return manager; - } - }]); - - return Jss; - }(_react.Component), _class.displayName = 'Jss(' + displayName + ')', _class.InnerComponent = InnerComponent, _class.contextTypes = _extends({}, _contextTypes2['default'], isThemingEnabled && themeListener.contextTypes), _class.defaultProps = defaultProps, _initialiseProps = function _initialiseProps() { - var _this2 = this; - - this.setTheme = function (theme) { - return _this2.setState({ theme: theme }); - }; - }, _temp; -}; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/react-jss/lib/getDisplayName.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports['default'] = function (Component) { - return Component.displayName || Component.name || 'Component'; -}; - -/***/ }), - -/***/ "./node_modules/react-jss/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _theming = __webpack_require__("./node_modules/theming/dist/esm/index.js"); - -Object.defineProperty(exports, 'ThemeProvider', { - enumerable: true, - get: function get() { - return _theming.ThemeProvider; - } -}); -Object.defineProperty(exports, 'withTheme', { - enumerable: true, - get: function get() { - return _theming.withTheme; - } -}); -Object.defineProperty(exports, 'createTheming', { - enumerable: true, - get: function get() { - return _theming.createTheming; - } -}); - -var _JssProvider = __webpack_require__("./node_modules/react-jss/lib/JssProvider.js"); - -Object.defineProperty(exports, 'JssProvider', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_JssProvider)['default']; - } -}); - -var _jss = __webpack_require__("./node_modules/react-jss/lib/jss.js"); - -Object.defineProperty(exports, 'jss', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_jss)['default']; - } -}); -Object.defineProperty(exports, 'SheetsRegistry', { - enumerable: true, - get: function get() { - return _jss.SheetsRegistry; - } -}); -Object.defineProperty(exports, 'createGenerateClassName', { - enumerable: true, - get: function get() { - return _jss.createGenerateClassNameDefault; - } -}); - -var _injectSheet = __webpack_require__("./node_modules/react-jss/lib/injectSheet.js"); - -Object.defineProperty(exports, 'default', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_injectSheet)['default']; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/***/ }), - -/***/ "./node_modules/react-jss/lib/injectSheet.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports['default'] = injectSheet; - -var _hoistNonReactStatics = __webpack_require__("./node_modules/hoist-non-react-statics/index.js"); - -var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); - -var _createHoc = __webpack_require__("./node_modules/react-jss/lib/createHoc.js"); - -var _createHoc2 = _interopRequireDefault(_createHoc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/** - * Global index counter to preserve source order. - * As we create the style sheet during componentWillMount lifecycle, - * children are handled after the parents, so the order of style elements would - * be parent->child. It is a problem though when a parent passes a className - * which needs to override any childs styles. StyleSheet of the child has a higher - * specificity, because of the source order. - * So our solution is to render sheets them in the reverse order child->sheet, so - * that parent has a higher specificity. - * - * @type {Number} - */ -var indexCounter = -100000; - -var NoRenderer = function NoRenderer(_ref) { - var children = _ref.children; - return children || null; -}; - -/** - * HOC creator function that wrapps the user component. - * - * `injectSheet(styles, [options])(Component)` - * - * @api public - */ -function injectSheet(stylesOrSheet) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if (options.index === undefined) { - options.index = indexCounter++; - } - return function () { - var InnerComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NoRenderer; - - var Jss = (0, _createHoc2['default'])(stylesOrSheet, InnerComponent, options); - return (0, _hoistNonReactStatics2['default'])(Jss, InnerComponent, { inner: true }); - }; -} - -/***/ }), - -/***/ "./node_modules/react-jss/lib/jss.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.createGenerateClassNameDefault = exports.SheetsManager = exports.getDynamicStyles = exports.SheetsRegistry = undefined; - -var _jss = __webpack_require__("./node_modules/jss/lib/index.js"); - -Object.defineProperty(exports, 'SheetsRegistry', { - enumerable: true, - get: function get() { - return _jss.SheetsRegistry; - } -}); -Object.defineProperty(exports, 'getDynamicStyles', { - enumerable: true, - get: function get() { - return _jss.getDynamicStyles; - } -}); -Object.defineProperty(exports, 'SheetsManager', { - enumerable: true, - get: function get() { - return _jss.SheetsManager; - } -}); -Object.defineProperty(exports, 'createGenerateClassNameDefault', { - enumerable: true, - get: function get() { - return _jss.createGenerateClassName; - } -}); - -var _jssPresetDefault = __webpack_require__("./node_modules/jss-preset-default/lib/index.js"); - -var _jssPresetDefault2 = _interopRequireDefault(_jssPresetDefault); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports['default'] = (0, _jss.create)((0, _jssPresetDefault2['default'])()); - -/***/ }), - -/***/ "./node_modules/react-jss/lib/ns.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -/** - * Namespaces to avoid conflicts on the context. - */ -var jss = exports.jss = '64a55d578f856d258dc345b094a2a2b3'; -var sheetsRegistry = exports.sheetsRegistry = 'd4bd0baacbc52bbd48bbb9eb24344ecd'; -var managers = exports.managers = 'b768b78919504fba9de2c03545c5cd3a'; -var sheetOptions = exports.sheetOptions = '6fc570d6bd61383819d0f9e7407c452d'; - -/***/ }), - -/***/ "./node_modules/react-jss/lib/propTypes.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -exports['default'] = { - jss: (0, _propTypes.shape)({ - options: (0, _propTypes.shape)({ - createGenerateClassName: _propTypes.func.isRequired - }).isRequired, - createStyleSheet: _propTypes.func.isRequired, - removeStyleSheet: _propTypes.func.isRequired - }), - registry: (0, _propTypes.shape)({ - add: _propTypes.func.isRequired, - toString: _propTypes.func.isRequired - }) -}; - -/***/ }), - -/***/ "./node_modules/react-minimalist-portal/lib/portal.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var useCreatePortal = typeof _reactDom2.default.createPortal === 'function'; - -var Portal = function (_Component) { - _inherits(Portal, _Component); - - function Portal() { - _classCallCheck(this, Portal); - - return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments)); - } - - _createClass(Portal, [{ - key: 'componentWillMount', - value: function componentWillMount() { - this.popup = document.createElement('div'); - document.body.appendChild(this.popup); - this.renderLayer(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.renderLayer(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - if (!useCreatePortal) { - _reactDom2.default.unmountComponentAtNode(this.popup); - } - document.body.removeChild(this.popup); - } - }, { - key: 'renderLayer', - value: function renderLayer() { - if (!useCreatePortal) { - _reactDom2.default.unstable_renderSubtreeIntoContainer(this, this.props.children, this.popup); - } - } - }, { - key: 'render', - value: function render() { - if (useCreatePortal) { - return _reactDom2.default.createPortal(this.props.children, this.popup); - } - return null; - } - }]); - - return Portal; -}(_react.Component); - -Portal.propTypes = { - children: _propTypes2.default.node // eslint-disable-line -}; - -exports.default = Portal; - -/***/ }), - -/***/ "./node_modules/react-popper/lib/Arrow.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -var Arrow = function Arrow(props, context) { - var _props$component = props.component, - component = _props$component === undefined ? 'span' : _props$component, - innerRef = props.innerRef, - children = props.children, - restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']); - - var popper = context.popper; - - var arrowRef = function arrowRef(node) { - popper.setArrowNode(node); - if (typeof innerRef === 'function') { - innerRef(node); - } - }; - var arrowStyle = popper.getArrowStyle(); - - if (typeof children === 'function') { - var arrowProps = { - ref: arrowRef, - style: arrowStyle - }; - return children({ arrowProps: arrowProps, restProps: restProps }); - } - - var componentProps = _extends({}, restProps, { - style: _extends({}, arrowStyle, restProps.style) - }); - - if (typeof component === 'string') { - componentProps.ref = arrowRef; - } else { - componentProps.innerRef = arrowRef; - } - - return (0, _react.createElement)(component, componentProps, children); -}; - -Arrow.contextTypes = { - popper: _propTypes2.default.object.isRequired -}; - -Arrow.propTypes = { - component: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), - innerRef: _propTypes2.default.func, - children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) -}; - -exports.default = Arrow; - -/***/ }), - -/***/ "./node_modules/react-popper/lib/Manager.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var Manager = function (_Component) { - _inherits(Manager, _Component); - - function Manager() { - var _ref; - - var _temp, _this, _ret; - - _classCallCheck(this, Manager); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Manager.__proto__ || Object.getPrototypeOf(Manager)).call.apply(_ref, [this].concat(args))), _this), _this._setTargetNode = function (node) { - _this._targetNode = node; - }, _this._getTargetNode = function () { - return _this._targetNode; - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(Manager, [{ - key: 'getChildContext', - value: function getChildContext() { - return { - popperManager: { - setTargetNode: this._setTargetNode, - getTargetNode: this._getTargetNode - } - }; - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - tag = _props.tag, - children = _props.children, - restProps = _objectWithoutProperties(_props, ['tag', 'children']); - - if (tag !== false) { - return (0, _react.createElement)(tag, restProps, children); - } else { - return children; - } - } - }]); - - return Manager; -}(_react.Component); - -Manager.childContextTypes = { - popperManager: _propTypes2.default.object.isRequired -}; -Manager.propTypes = { - tag: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]), - children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) -}; -Manager.defaultProps = { - tag: 'div' -}; -exports.default = Manager; - -/***/ }), - -/***/ "./node_modules/react-popper/lib/Popper.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _popper = __webpack_require__("./node_modules/popper.js/dist/esm/popper.js"); - -var _popper2 = _interopRequireDefault(_popper); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var Popper = function (_Component) { - _inherits(Popper, _Component); - - function Popper() { - var _ref; - - var _temp, _this, _ret; - - _classCallCheck(this, Popper); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Popper.__proto__ || Object.getPrototypeOf(Popper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this._setArrowNode = function (node) { - _this._arrowNode = node; - }, _this._getTargetNode = function () { - return _this.context.popperManager.getTargetNode(); - }, _this._getOffsets = function (data) { - return Object.keys(data.offsets).map(function (key) { - return data.offsets[key]; - }); - }, _this._isDataDirty = function (data) { - if (_this.state.data) { - return JSON.stringify(_this._getOffsets(_this.state.data)) !== JSON.stringify(_this._getOffsets(data)); - } else { - return true; - } - }, _this._updateStateModifier = { - enabled: true, - order: 900, - fn: function fn(data) { - if (_this._isDataDirty(data)) { - _this.setState({ data: data }); - } - return data; - } - }, _this._getPopperStyle = function () { - var data = _this.state.data; - - - if (!_this._popper || !data) { - return { - position: 'absolute', - pointerEvents: 'none', - opacity: 0 - }; - } - - return _extends({ - position: data.offsets.popper.position - }, data.styles); - }, _this._getPopperPlacement = function () { - return _this.state.data ? _this.state.data.placement : undefined; - }, _this._getPopperHide = function () { - return !!_this.state.data && _this.state.data.hide ? '' : undefined; - }, _this._getArrowStyle = function () { - if (!_this.state.data || !_this.state.data.offsets.arrow) { - return {}; - } else { - var _this$state$data$offs = _this.state.data.offsets.arrow, - top = _this$state$data$offs.top, - left = _this$state$data$offs.left; - - return { top: top, left: left }; - } - }, _this._handlePopperRef = function (node) { - _this._popperNode = node; - if (node) { - _this._createPopper(); - } else { - _this._destroyPopper(); - } - if (_this.props.innerRef) { - _this.props.innerRef(node); - } - }, _this._scheduleUpdate = function () { - _this._popper && _this._popper.scheduleUpdate(); - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(Popper, [{ - key: 'getChildContext', - value: function getChildContext() { - return { - popper: { - setArrowNode: this._setArrowNode, - getArrowStyle: this._getArrowStyle - } - }; - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate(lastProps) { - if (lastProps.placement !== this.props.placement || lastProps.eventsEnabled !== this.props.eventsEnabled) { - this._destroyPopper(); - this._createPopper(); - } - if (lastProps.children !== this.props.children) { - this._scheduleUpdate(); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this._destroyPopper(); - } - }, { - key: '_createPopper', - value: function _createPopper() { - var _this2 = this; - - var _props = this.props, - placement = _props.placement, - eventsEnabled = _props.eventsEnabled; - - var modifiers = _extends({}, this.props.modifiers, { - applyStyle: { enabled: false }, - updateState: this._updateStateModifier - }); - if (this._arrowNode) { - modifiers.arrow = { - element: this._arrowNode - }; - } - this._popper = new _popper2.default(this._getTargetNode(), this._popperNode, { - placement: placement, - eventsEnabled: eventsEnabled, - modifiers: modifiers - }); - - // TODO: look into setTimeout scheduleUpdate call, without it, the popper will not position properly on creation - setTimeout(function () { - return _this2._scheduleUpdate(); - }); - } - }, { - key: '_destroyPopper', - value: function _destroyPopper() { - if (this._popper) { - this._popper.destroy(); - } - } - }, { - key: 'render', - value: function render() { - var _props2 = this.props, - component = _props2.component, - innerRef = _props2.innerRef, - placement = _props2.placement, - eventsEnabled = _props2.eventsEnabled, - modifiers = _props2.modifiers, - children = _props2.children, - restProps = _objectWithoutProperties(_props2, ['component', 'innerRef', 'placement', 'eventsEnabled', 'modifiers', 'children']); - - var popperStyle = this._getPopperStyle(); - var popperPlacement = this._getPopperPlacement(); - var popperHide = this._getPopperHide(); - - if (typeof children === 'function') { - var popperProps = { - ref: this._handlePopperRef, - style: popperStyle, - 'data-placement': popperPlacement, - 'data-x-out-of-boundaries': popperHide - }; - return children({ - popperProps: popperProps, - restProps: restProps, - scheduleUpdate: this._scheduleUpdate - }); - } - - var componentProps = _extends({}, restProps, { - style: _extends({}, restProps.style, popperStyle), - 'data-placement': popperPlacement, - 'data-x-out-of-boundaries': popperHide - }); - - if (typeof component === 'string') { - componentProps.ref = this._handlePopperRef; - } else { - componentProps.innerRef = this._handlePopperRef; - } - - return (0, _react.createElement)(component, componentProps, children); - } - }]); - - return Popper; -}(_react.Component); - -Popper.contextTypes = { - popperManager: _propTypes2.default.object.isRequired -}; -Popper.childContextTypes = { - popper: _propTypes2.default.object.isRequired -}; -Popper.propTypes = { - component: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), - innerRef: _propTypes2.default.func, - placement: _propTypes2.default.oneOf(_popper2.default.placements), - eventsEnabled: _propTypes2.default.bool, - modifiers: _propTypes2.default.object, - children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) -}; -Popper.defaultProps = { - component: 'div', - placement: 'bottom', - eventsEnabled: true, - modifiers: {} -}; -exports.default = Popper; - -/***/ }), - -/***/ "./node_modules/react-popper/lib/Target.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -var Target = function Target(props, context) { - var _props$component = props.component, - component = _props$component === undefined ? 'div' : _props$component, - innerRef = props.innerRef, - children = props.children, - restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']); - - var popperManager = context.popperManager; - - var targetRef = function targetRef(node) { - popperManager.setTargetNode(node); - if (typeof innerRef === 'function') { - innerRef(node); - } - }; - - if (typeof children === 'function') { - var targetProps = { ref: targetRef }; - return children({ targetProps: targetProps, restProps: restProps }); - } - - var componentProps = _extends({}, restProps); - - if (typeof component === 'string') { - componentProps.ref = targetRef; - } else { - componentProps.innerRef = targetRef; - } - - return (0, _react.createElement)(component, componentProps, children); -}; - -Target.contextTypes = { - popperManager: _propTypes2.default.object.isRequired -}; - -Target.propTypes = { - component: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), - innerRef: _propTypes2.default.func, - children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]) -}; - -exports.default = Target; - -/***/ }), - -/***/ "./node_modules/react-popper/lib/react-popper.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Manager = __webpack_require__("./node_modules/react-popper/lib/Manager.js"); - -Object.defineProperty(exports, 'Manager', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Manager).default; - } -}); - -var _Target = __webpack_require__("./node_modules/react-popper/lib/Target.js"); - -Object.defineProperty(exports, 'Target', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Target).default; - } -}); - -var _Popper = __webpack_require__("./node_modules/react-popper/lib/Popper.js"); - -Object.defineProperty(exports, 'Popper', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Popper).default; - } -}); - -var _Arrow = __webpack_require__("./node_modules/react-popper/lib/Arrow.js"); - -Object.defineProperty(exports, 'Arrow', { - enumerable: true, - get: function get() { - return _interopRequireDefault(_Arrow).default; - } -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ "./node_modules/react-redux-loading-bar/build/immutable.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _reactRedux = __webpack_require__("./node_modules/react-redux/es/index.js"); - -var _loading_bar = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar.js"); - -var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); - -var mapImmutableStateToProps = function mapImmutableStateToProps(state, ownProps) { - return { - loading: state.get('loadingBar')[ownProps.scope || _loading_bar_ducks.DEFAULT_SCOPE] - }; -}; - -exports.default = (0, _reactRedux.connect)(mapImmutableStateToProps)(_loading_bar.LoadingBar); - -/***/ }), - -/***/ "./node_modules/react-redux-loading-bar/build/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.showLoading = exports.resetLoading = exports.loadingBarReducer = exports.loadingBarMiddleware = exports.LoadingBar = exports.ImmutableLoadingBar = exports.hideLoading = undefined; - -var _loading_bar = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar.js"); - -var _loading_bar2 = _interopRequireDefault(_loading_bar); - -var _loading_bar_middleware = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_middleware.js"); - -var _loading_bar_middleware2 = _interopRequireDefault(_loading_bar_middleware); - -var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); - -var _immutable = __webpack_require__("./node_modules/react-redux-loading-bar/build/immutable.js"); - -var _immutable2 = _interopRequireDefault(_immutable); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.hideLoading = _loading_bar_ducks.hideLoading; -exports.ImmutableLoadingBar = _immutable2.default; -exports.LoadingBar = _loading_bar.LoadingBar; -exports.loadingBarMiddleware = _loading_bar_middleware2.default; -exports.loadingBarReducer = _loading_bar_ducks.loadingBarReducer; -exports.resetLoading = _loading_bar_ducks.resetLoading; -exports.showLoading = _loading_bar_ducks.showLoading; -exports.default = _loading_bar2.default; - -/***/ }), - -/***/ "./node_modules/react-redux-loading-bar/build/loading_bar.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.LoadingBar = exports.TERMINATING_ANIMATION_TIME = exports.ANIMATION_TIME = exports.PROGRESS_INCREASE = exports.MAX_PROGRESS = exports.UPDATE_TIME = undefined; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _reactRedux = __webpack_require__("./node_modules/react-redux/es/index.js"); - -var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var UPDATE_TIME = exports.UPDATE_TIME = 200; -var MAX_PROGRESS = exports.MAX_PROGRESS = 99; -var PROGRESS_INCREASE = exports.PROGRESS_INCREASE = 10; -var ANIMATION_TIME = exports.ANIMATION_TIME = UPDATE_TIME * 4; -var TERMINATING_ANIMATION_TIME = exports.TERMINATING_ANIMATION_TIME = UPDATE_TIME / 2; - -var initialState = { - terminatingAnimationTimeout: null, - percent: 0, - progressInterval: null -}; - -var LoadingBar = exports.LoadingBar = function (_Component) { - _inherits(LoadingBar, _Component); - - function LoadingBar() { - var _ref; - - var _temp, _this, _ret; - - _classCallCheck(this, LoadingBar); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LoadingBar.__proto__ || Object.getPrototypeOf(LoadingBar)).call.apply(_ref, [this].concat(args))), _this), _this.state = _extends({}, initialState, { - hasMounted: false - }), _this.shouldStart = function (props, nextProps) { - return props.loading === 0 && nextProps.loading > 0; - }, _this.shouldStop = function (state, nextProps) { - return state.progressInterval && nextProps.loading === 0; - }, _this.newPercent = function (percent, progressIncrease) { - // Use cos as a smoothing function - // Can be any function to slow down progress near the 100% - var smoothedProgressIncrease = progressIncrease * Math.cos(percent * (Math.PI / 2 / 100)); - - return percent + smoothedProgressIncrease; - }, _this.simulateProgress = function () { - _this.setState(function (prevState, _ref2) { - var maxProgress = _ref2.maxProgress, - progressIncrease = _ref2.progressIncrease; - var progressInterval = prevState.progressInterval, - percent = prevState.percent, - terminatingAnimationTimeout = prevState.terminatingAnimationTimeout; - - var newPercent = _this.newPercent(percent, progressIncrease); - - if (percent === 100) { - clearInterval(progressInterval); - terminatingAnimationTimeout = setTimeout(_this.resetProgress, TERMINATING_ANIMATION_TIME); - progressInterval = null; - } else if (newPercent <= maxProgress) { - percent = newPercent; - } - - return { percent: percent, progressInterval: progressInterval, terminatingAnimationTimeout: terminatingAnimationTimeout }; - }); - }, _this.resetProgress = function () { - _this.setState(initialState); - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(LoadingBar, [{ - key: 'componentDidMount', - value: function componentDidMount() { - // Re-render the component after mount to fix problems with SSR and CSP. - // - // Apps that use Server Side Rendering and has Content Security Policy - // for style that doesn't allow inline styles should render an empty div - // and replace it with the actual Loading Bar after mount - // See: https://github.com/mironov/react-redux-loading-bar/issues/39 - // - // eslint-disable-next-line react/no-did-mount-set-state - this.setState({ hasMounted: true }); - - if (this.props.loading > 0) { - this.launch(); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - var _this2 = this; - - if (this.shouldStart(this.props, nextProps)) { - this.launch(); - return; - } - - this.setState(function (prevState, props) { - if (_this2.shouldStop(prevState, nextProps)) { - if (prevState.percent === 0 && !props.showFastActions) { - // not even shown yet because the action finished quickly after start - clearInterval(prevState.progressInterval); - return initialState; - } - - // should progress to 100 percent - return { percent: 100 }; - } - - return null; - }); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearInterval(this.state.progressInterval); - clearTimeout(this.state.terminatingAnimationTimeout); - } - }, { - key: 'shouldShow', - value: function shouldShow() { - return this.state.percent > 0 && this.state.percent <= 100; - } - }, { - key: 'launch', - value: function launch() { - var _this3 = this; - - this.setState(function (prevState, _ref3) { - var updateTime = _ref3.updateTime; - var progressInterval = prevState.progressInterval; - var terminatingAnimationTimeout = prevState.terminatingAnimationTimeout, - percent = prevState.percent; - - - var loadingBarNotShown = !progressInterval; - var terminatingAnimationGoing = percent === 100; - - if (loadingBarNotShown) { - progressInterval = setInterval(_this3.simulateProgress, updateTime); - } - - if (terminatingAnimationGoing) { - clearTimeout(terminatingAnimationTimeout); - } - - return { progressInterval: progressInterval, percent: 0 }; - }); - } - }, { - key: 'buildStyle', - value: function buildStyle() { - var animationTime = this.state.percent !== 100 ? ANIMATION_TIME : TERMINATING_ANIMATION_TIME; - - var style = { - opacity: '1', - transform: 'scaleX(' + this.state.percent / 100 + ')', - transformOrigin: 'left', - transition: 'transform ' + animationTime + 'ms linear', - width: '100%', - willChange: 'transform, opacity' - - // Use default styling if there's no CSS class applied - };if (!this.props.className) { - style.height = '3px'; - style.backgroundColor = 'red'; - style.position = 'absolute'; - } - - if (this.shouldShow()) { - style.opacity = '1'; - } else { - style.opacity = '0'; - } - - return _extends({}, style, this.props.style); - } - }, { - key: 'render', - value: function render() { - // In order not to violate strict style CSP it's better to make - // an extra re-render after component mount - if (!this.state.hasMounted) { - return _react2.default.createElement('div', null); - } - - return _react2.default.createElement( - 'div', - null, - _react2.default.createElement('div', { style: this.buildStyle(), className: this.props.className }), - _react2.default.createElement('div', { style: { display: 'table', clear: 'both' } }) - ); - } - }]); - - return LoadingBar; -}(_react.Component); - -LoadingBar.propTypes = { - className: _propTypes.string, - loading: _propTypes.number, - maxProgress: _propTypes.number, - progressIncrease: _propTypes.number, - showFastActions: _propTypes.bool, - updateTime: _propTypes.number, - scope: _propTypes.string, - style: _propTypes.object -}; -LoadingBar.defaultProps = { - className: '', - loading: 0, - maxProgress: MAX_PROGRESS, - progressIncrease: PROGRESS_INCREASE, - showFastActions: false, - style: {}, - updateTime: UPDATE_TIME, - scope: _loading_bar_ducks.DEFAULT_SCOPE -}; - - -var mapStateToProps = function mapStateToProps(state, ownProps) { - return { - loading: state.loadingBar[ownProps.scope || _loading_bar_ducks.DEFAULT_SCOPE] - }; -}; - -exports.default = (0, _reactRedux.connect)(mapStateToProps)(LoadingBar); - -/***/ }), - -/***/ "./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -exports.showLoading = showLoading; -exports.hideLoading = hideLoading; -exports.resetLoading = resetLoading; -exports.loadingBarReducer = loadingBarReducer; - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var SHOW = exports.SHOW = 'loading-bar/SHOW'; -var HIDE = exports.HIDE = 'loading-bar/HIDE'; -var RESET = exports.RESET = 'loading-bar/RESET'; - -var DEFAULT_SCOPE = exports.DEFAULT_SCOPE = 'default'; - -function showLoading() { - var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; - - return { - type: SHOW, - payload: { - scope: scope - } - }; -} - -function hideLoading() { - var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; - - return { - type: HIDE, - payload: { - scope: scope - } - }; -} - -function resetLoading() { - var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; - - return { - type: RESET, - payload: { - scope: scope - } - }; -} - -function loadingBarReducer() { - var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var _ref = action.payload || {}, - _ref$scope = _ref.scope, - scope = _ref$scope === undefined ? DEFAULT_SCOPE : _ref$scope; - - switch (action.type) { - case SHOW: - return _extends({}, state, _defineProperty({}, scope, (state[scope] || 0) + 1)); - case HIDE: - return _extends({}, state, _defineProperty({}, scope, Math.max(0, (state[scope] || 1) - 1))); - case RESET: - return _extends({}, state, _defineProperty({}, scope, 0)); - default: - return state; - } -} - -/***/ }), - -/***/ "./node_modules/react-redux-loading-bar/build/loading_bar_middleware.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -exports.default = loadingBarMiddleware; - -var _loading_bar_ducks = __webpack_require__("./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); - -var defaultTypeSuffixes = ['PENDING', 'FULFILLED', 'REJECTED']; - -function loadingBarMiddleware() { - var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var promiseTypeSuffixes = config.promiseTypeSuffixes || defaultTypeSuffixes; - var scope = config.scope || _loading_bar_ducks.DEFAULT_SCOPE; - - return function (_ref) { - var dispatch = _ref.dispatch; - return function (next) { - return function (action) { - if (action.type) { - var _promiseTypeSuffixes = _slicedToArray(promiseTypeSuffixes, 3), - PENDING = _promiseTypeSuffixes[0], - FULFILLED = _promiseTypeSuffixes[1], - REJECTED = _promiseTypeSuffixes[2]; - - var isPending = new RegExp(PENDING + '$', 'g'); - var isFulfilled = new RegExp(FULFILLED + '$', 'g'); - var isRejected = new RegExp(REJECTED + '$', 'g'); - - var actionScope = action.scope || scope; - - if (action.type.match(isPending)) { - dispatch((0, _loading_bar_ducks.showLoading)(actionScope)); - } else if (action.type.match(isFulfilled) || action.type.match(isRejected)) { - dispatch((0, _loading_bar_ducks.hideLoading)(actionScope)); - } - } - - return next(action); - }; - }; - }; -} - -/***/ }), - -/***/ "./node_modules/react-responsive-modal/lib/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _reactJss = __webpack_require__("./node_modules/react-jss/lib/index.js"); - -var _reactJss2 = _interopRequireDefault(_reactJss); - -var _modal = __webpack_require__("./node_modules/react-responsive-modal/lib/modal.js"); - -var _modal2 = _interopRequireDefault(_modal); - -var _styles = __webpack_require__("./node_modules/react-responsive-modal/lib/styles.js"); - -var _styles2 = _interopRequireDefault(_styles); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = (0, _reactJss2.default)(_styles2.default)(_modal2.default); - -/***/ }), - -/***/ "./node_modules/react-responsive-modal/lib/modal.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactMinimalistPortal = __webpack_require__("./node_modules/react-minimalist-portal/lib/portal.js"); - -var _reactMinimalistPortal2 = _interopRequireDefault(_reactMinimalistPortal); - -var _CSSTransition = __webpack_require__("./node_modules/react-transition-group/CSSTransition.js"); - -var _CSSTransition2 = _interopRequireDefault(_CSSTransition); - -var _classnames = __webpack_require__("./node_modules/classnames/index.js"); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _noScroll = __webpack_require__("./node_modules/no-scroll/index.js"); - -var _noScroll2 = _interopRequireDefault(_noScroll); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var Modal = function (_Component) { - _inherits(Modal, _Component); - - function Modal(props) { - _classCallCheck(this, Modal); - - var _this = _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).call(this, props)); - - _this.onClickOverlay = function (e) { - var _this$props = _this.props, - classes = _this$props.classes, - closeOnOverlayClick = _this$props.closeOnOverlayClick; - - if (!closeOnOverlayClick || typeof e.target.className !== 'string') { - return; - } - var className = e.target.className.split(' '); - if (className.indexOf(classes.overlay) !== -1) { - e.stopPropagation(); - _this.props.onClose(); - } - }; - - _this.onClickCloseIcon = function (e) { - e.stopPropagation(); - _this.props.onClose(); - }; - - _this.handleKeydown = function (e) { - if (e.keyCode === 27) { - _this.props.onClose(); - } - }; - - _this.handleExited = function () { - _this.setState({ showPortal: false }); - _this.unblockScroll(); - }; - - _this.unblockScroll = function () { - var openedModals = document.getElementsByClassName(_this.props.classes.modal); - if (openedModals.length === 1) { - _noScroll2.default.off(); - } - }; - - _this.state = { - showPortal: props.open - }; - return _this; - } - - _createClass(Modal, [{ - key: 'componentDidMount', - value: function componentDidMount() { - if (this.props.closeOnEsc) { - document.addEventListener('keydown', this.handleKeydown); - } - // Block scroll when initial prop is open - if (this.props.open) { - this.blockScroll(); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - var _this2 = this; - - if (!this.props.open && nextProps.open) { - this.setState({ - showPortal: true - }, function () { - _this2.blockScroll(); - }); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - if (this.props.closeOnEsc) { - document.removeEventListener('keydown', this.handleKeydown); - } - this.unblockScroll(); - if (this.timeout) { - clearTimeout(this.timeout); - } - } - }, { - key: 'blockScroll', - - - // eslint-disable-next-line class-methods-use-this - value: function blockScroll() { - _noScroll2.default.on(); - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - open = _props.open, - little = _props.little, - classes = _props.classes, - classNames = _props.classNames, - styles = _props.styles, - showCloseIcon = _props.showCloseIcon, - closeIconSize = _props.closeIconSize, - closeIconSvgPath = _props.closeIconSvgPath, - animationDuration = _props.animationDuration; - var showPortal = this.state.showPortal; - - if (!showPortal) return null; - return _react2.default.createElement( - _reactMinimalistPortal2.default, - null, - _react2.default.createElement( - _CSSTransition2.default, - { - 'in': open, - appear: true, - classNames: { - appear: classNames.transitionEnter || classes.transitionEnter, - appearActive: classNames.transitionEnterActive || classes.transitionEnterActive, - enter: classNames.transitionEnter || classes.transitionEnter, - enterActive: classNames.transitionEnterActive || classes.transitionEnterActive, - exit: classNames.transitionExit || classes.transitionExit, - exitActive: classNames.transitionExitActive || classes.transitionExitActive - }, - timeout: animationDuration, - onExited: this.handleExited - }, - _react2.default.createElement( - 'div', - { - className: (0, _classnames2.default)(classes.overlay, little ? classes.overlayLittle : null, classNames.overlay), - onMouseDown: this.onClickOverlay, - style: styles.overlay - }, - _react2.default.createElement( - 'div', - { - className: (0, _classnames2.default)(classes.modal, classNames.modal), - style: styles.modal - }, - showCloseIcon ? _react2.default.createElement( - 'svg', - { - className: (0, _classnames2.default)(classes.closeIcon, classNames.closeIcon), - style: styles.closeIcon, - onClick: this.onClickCloseIcon, - xmlns: 'http://www.w3.org/2000/svg', - width: closeIconSize, - height: closeIconSize, - viewBox: '0 0 36 36' - }, - closeIconSvgPath - ) : null, - this.props.children - ) - ) - ) - ); - } - }]); - - return Modal; -}(_react.Component); - -Modal.propTypes = { - closeOnEsc: _propTypes2.default.bool, - closeOnOverlayClick: _propTypes2.default.bool, - onClose: _propTypes2.default.func.isRequired, - open: _propTypes2.default.bool.isRequired, - classNames: _propTypes2.default.object, - styles: _propTypes2.default.object, - children: _propTypes2.default.node, - classes: _propTypes2.default.object.isRequired, - little: _propTypes2.default.bool, - showCloseIcon: _propTypes2.default.bool, - closeIconSize: _propTypes2.default.number, - closeIconSvgPath: _propTypes2.default.node, - animationDuration: _propTypes2.default.number -}; - -Modal.defaultProps = { - closeOnEsc: true, - closeOnOverlayClick: true, - showCloseIcon: true, - closeIconSize: 28, - closeIconSvgPath: _react2.default.createElement('path', { d: 'M28.5 9.62L26.38 7.5 18 15.88 9.62 7.5 7.5 9.62 15.88 18 7.5 26.38l2.12 2.12L18 20.12l8.38 8.38 2.12-2.12L20.12 18z' }), - classNames: {}, - styles: {}, - children: null, - little: false, - animationDuration: 500 -}; - -exports.default = Modal; - -/***/ }), - -/***/ "./node_modules/react-responsive-modal/lib/styles.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = { - overlay: { - background: 'rgba(0, 0, 0, 0.75)', - display: 'flex', - alignItems: 'flex-start', - justifyContent: 'center', - position: 'fixed', - top: 0, - left: 0, - right: 0, - bottom: 0, - overflowY: 'auto', - overflowX: 'hidden', - zIndex: 1000, - padding: '1.2rem' - }, - overlayLittle: { - alignItems: 'center' - }, - modal: { - maxWidth: 800, - position: 'relative', - padding: '1.2rem', - background: '#ffffff', - backgroundClip: 'padding-box', - boxShadow: '0 12px 15px 0 rgba(0,0,0,0.25)' - }, - closeIcon: { - position: 'absolute', - top: '14px', - right: '14px', - cursor: 'pointer' - }, - transitionEnter: { - opacity: '0.01' - }, - transitionEnterActive: { - opacity: 1, - transition: 'opacity 500ms cubic-bezier(0.23, 1, 0.32, 1)' - }, - transitionExit: { - opacity: 1 - }, - transitionExitActive: { - opacity: '0.01', - transition: 'opacity 500ms cubic-bezier(0.23, 1, 0.32, 1)' - } -}; - -/***/ }), - -/***/ "./node_modules/react-scrollbar-size/ScrollbarSize.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getPrototypeOf = __webpack_require__("./node_modules/babel-runtime/core-js/object/get-prototype-of.js"); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__("./node_modules/babel-runtime/helpers/classCallCheck.js"); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__("./node_modules/babel-runtime/helpers/createClass.js"); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__("./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__("./node_modules/babel-runtime/helpers/inherits.js"); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactEventListener = __webpack_require__("./node_modules/react-event-listener/lib/index.js"); - -var _reactEventListener2 = _interopRequireDefault(_reactEventListener); - -var _stifle = __webpack_require__("./node_modules/stifle/index.js"); - -var _stifle2 = _interopRequireDefault(_stifle); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var styles = { - width: '100px', - height: '100px', - position: 'absolute', - top: '-100000px', - overflow: 'scroll', - msOverflowStyle: 'scrollbar' -}; - -var ScrollbarSize = function (_Component) { - (0, _inherits3.default)(ScrollbarSize, _Component); - - function ScrollbarSize() { - var _ref; - - var _temp, _this, _ret; - - (0, _classCallCheck3.default)(this, ScrollbarSize); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ScrollbarSize.__proto__ || (0, _getPrototypeOf2.default)(ScrollbarSize)).call.apply(_ref, [this].concat(args))), _this), _this.setMeasurements = function () { - _this.scrollbarHeight = _this.node.offsetHeight - _this.node.clientHeight; - _this.scrollbarWidth = _this.node.offsetWidth - _this.node.clientWidth; - }, _this.handleResize = (0, _stifle2.default)(function () { - var onChange = _this.props.onChange; - - - var prevHeight = _this.scrollbarHeight; - var prevWidth = _this.scrollbarWidth; - _this.setMeasurements(); - if (prevHeight !== _this.scrollbarHeight || prevWidth !== _this.scrollbarWidth) { - onChange({ scrollbarHeight: _this.scrollbarHeight, scrollbarWidth: _this.scrollbarWidth }); - } - }, 166), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); - } - - (0, _createClass3.default)(ScrollbarSize, [{ - key: 'componentDidMount', - value: function componentDidMount() { - var onLoad = this.props.onLoad; - - - if (onLoad) { - this.setMeasurements(); - onLoad({ scrollbarHeight: this.scrollbarHeight, scrollbarWidth: this.scrollbarWidth }); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.handleResize.cancel(); - } - }, { - key: 'render', - // Corresponds to 10 frames at 60 Hz. - - value: function render() { - var _this2 = this; - - var onChange = this.props.onChange; - - - return _react2.default.createElement( - 'div', - null, - onChange ? _react2.default.createElement(_reactEventListener2.default, { target: 'window', onResize: this.handleResize }) : null, - _react2.default.createElement('div', { - style: styles, - ref: function ref(node) { - _this2.node = node; - } - }) - ); - } - }]); - return ScrollbarSize; -}(_react.Component); - -ScrollbarSize.defaultProps = { - onLoad: null, - onChange: null -}; -exports.default = ScrollbarSize; - -/***/ }), - -/***/ "./node_modules/react-scrollbar-size/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _ScrollbarSize = __webpack_require__("./node_modules/react-scrollbar-size/ScrollbarSize.js"); - -var _ScrollbarSize2 = _interopRequireDefault(_ScrollbarSize); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _ScrollbarSize2.default; - -/***/ }), - -/***/ "./node_modules/react-transition-group/CSSTransition.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -exports.__esModule = true; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var PropTypes = _interopRequireWildcard(_propTypes); - -var _addClass = __webpack_require__("./node_modules/dom-helpers/class/addClass.js"); - -var _addClass2 = _interopRequireDefault(_addClass); - -var _removeClass = __webpack_require__("./node_modules/dom-helpers/class/removeClass.js"); - -var _removeClass2 = _interopRequireDefault(_removeClass); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _Transition = __webpack_require__("./node_modules/react-transition-group/Transition.js"); - -var _Transition2 = _interopRequireDefault(_Transition); - -var _PropTypes = __webpack_require__("./node_modules/react-transition-group/utils/PropTypes.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var addClass = function addClass(node, classes) { - return classes && classes.split(' ').forEach(function (c) { - return (0, _addClass2.default)(node, c); - }); -}; -var removeClass = function removeClass(node, classes) { - return classes && classes.split(' ').forEach(function (c) { - return (0, _removeClass2.default)(node, c); - }); -}; - -var propTypes = _extends({}, _Transition2.default.propTypes, { - - /** - * The animation classNames applied to the component as it enters or exits. - * A single name can be provided and it will be suffixed for each stage: e.g. - * - * `classNames="fade"` applies `fade-enter`, `fade-enter-active`, - * `fade-exit`, `fade-exit-active`, `fade-appear`, and `fade-appear-active`. - * Each individual classNames can also be specified independently like: - * - * ```js - * classNames={{ - * appear: 'my-appear', - * appearActive: 'my-active-appear', - * enter: 'my-enter', - * enterActive: 'my-active-enter', - * exit: 'my-exit', - * exitActive: 'my-active-exit', - * }} - * ``` - * - * @type {string | { - * appear?: string, - * appearActive?: string, - * enter?: string, - * enterActive?: string, - * exit?: string, - * exitActive?: string, - * }} - */ - classNames: _PropTypes.classNamesShape, - - /** - * A `` callback fired immediately after the 'enter' or 'appear' class is - * applied. - * - * @type Function(node: HtmlElement, isAppearing: bool) - */ - onEnter: PropTypes.func, - - /** - * A `` callback fired immediately after the 'enter-active' or - * 'appear-active' class is applied. - * - * @type Function(node: HtmlElement, isAppearing: bool) - */ - onEntering: PropTypes.func, - - /** - * A `` callback fired immediately after the 'enter' or - * 'appear' classes are **removed** from the DOM node. - * - * @type Function(node: HtmlElement, isAppearing: bool) - */ - onEntered: PropTypes.func, - - /** - * A `` callback fired immediately after the 'exit' class is - * applied. - * - * @type Function(node: HtmlElement) - */ - onExit: PropTypes.func, - - /** - * A `` callback fired immediately after the 'exit-active' is applied. - * - * @type Function(node: HtmlElement - */ - onExiting: PropTypes.func, - - /** - * A `` callback fired immediately after the 'exit' classes - * are **removed** from the DOM node. - * - * @type Function(node: HtmlElement) - */ - onExited: PropTypes.func -}); - -/** - * A `Transition` component using CSS transitions and animations. - * It's inspired by the excellent [ng-animate](http://www.nganimate.org/) library. - * - * `CSSTransition` applies a pair of class names during the `appear`, `enter`, - * and `exit` stages of the transition. The first class is applied and then a - * second "active" class in order to activate the css animation. - * - * When the `in` prop is toggled to `true` the Component will get - * the `example-enter` CSS class and the `example-enter-active` CSS class - * added in the next tick. This is a convention based on the `classNames` prop. - * - * ```js - * import CSSTransition from 'react-transition-group/CSSTransition'; - * - * const Fade = ({ children, ...props }) => ( - * - * {children} - * - * ); - * - * class FadeInAndOut extends React.Component { - * constructor(...args) { - * super(...args); - * this.state= { show: false } - * - * setInterval(() => { - * this.setState({ show: !this.state.show }) - * }, 5000) - * } - * render() { - * return ( - * - *
Hello world
- *
- * ) - * } - * } - * ``` - * - * And the coorresponding CSS for the `` component: - * - * ```css - * .fade-enter { - * opacity: 0.01; - * } - * - * .fade-enter.fade-enter-active { - * opacity: 1; - * transition: opacity 500ms ease-in; - * } - * - * .fade-exit { - * opacity: 1; - * } - * - * .fade-exit.fade-exit-active { - * opacity: 0.01; - * transition: opacity 300ms ease-in; - * } - * ``` - */ - -var CSSTransition = function (_React$Component) { - _inherits(CSSTransition, _React$Component); - - function CSSTransition() { - var _temp, _this, _ret; - - _classCallCheck(this, CSSTransition); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onEnter = function (node, appearing) { - var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'), - className = _this$getClassNames.className; - - _this.removeClasses(node, 'exit'); - addClass(node, className); - - if (_this.props.onEnter) { - _this.props.onEnter(node); - } - }, _this.onEntering = function (node, appearing) { - var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'), - activeClassName = _this$getClassNames2.activeClassName; - - _this.reflowAndAddClass(node, activeClassName); - - if (_this.props.onEntering) { - _this.props.onEntering(node); - } - }, _this.onEntered = function (node, appearing) { - _this.removeClasses(node, appearing ? 'appear' : 'enter'); - - if (_this.props.onEntered) { - _this.props.onEntered(node); - } - }, _this.onExit = function (node) { - var _this$getClassNames3 = _this.getClassNames('exit'), - className = _this$getClassNames3.className; - - _this.removeClasses(node, 'appear'); - _this.removeClasses(node, 'enter'); - addClass(node, className); - - if (_this.props.onExit) { - _this.props.onExit(node); - } - }, _this.onExiting = function (node) { - var _this$getClassNames4 = _this.getClassNames('exit'), - activeClassName = _this$getClassNames4.activeClassName; - - _this.reflowAndAddClass(node, activeClassName); - - if (_this.props.onExiting) { - _this.props.onExiting(node); - } - }, _this.onExited = function (node) { - _this.removeClasses(node, 'exit'); - - if (_this.props.onExited) { - _this.props.onExited(node); - } - }, _this.getClassNames = function (type) { - var classNames = _this.props.classNames; - - - var className = typeof classNames !== 'string' ? classNames[type] : classNames + '-' + type; - - var activeClassName = typeof classNames !== 'string' ? classNames[type + 'Active'] : className + '-active'; - - return { className: className, activeClassName: activeClassName }; - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - CSSTransition.prototype.removeClasses = function removeClasses(node, type) { - var _getClassNames = this.getClassNames(type), - className = _getClassNames.className, - activeClassName = _getClassNames.activeClassName; - - className && removeClass(node, className); - activeClassName && removeClass(node, activeClassName); - }; - - CSSTransition.prototype.reflowAndAddClass = function reflowAndAddClass(node, className) { - // This is for to force a repaint, - // which is necessary in order to transition styles when adding a class name. - /* eslint-disable no-unused-expressions */ - node.scrollTop; - /* eslint-enable no-unused-expressions */ - addClass(node, className); - }; - - CSSTransition.prototype.render = function render() { - var props = _extends({}, this.props); - - delete props.classNames; - - return _react2.default.createElement(_Transition2.default, _extends({}, props, { - onEnter: this.onEnter, - onEntered: this.onEntered, - onEntering: this.onEntering, - onExit: this.onExit, - onExiting: this.onExiting, - onExited: this.onExited - })); - }; - - return CSSTransition; -}(_react2.default.Component); - -CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {}; - -exports.default = CSSTransition; -module.exports = exports['default']; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/react-transition-group/Transition.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -exports.__esModule = true; -exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined; - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var PropTypes = _interopRequireWildcard(_propTypes); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _reactDom = __webpack_require__("./node_modules/react-dom/index.js"); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _PropTypes = __webpack_require__("./node_modules/react-transition-group/utils/PropTypes.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var UNMOUNTED = exports.UNMOUNTED = 'unmounted'; -var EXITED = exports.EXITED = 'exited'; -var ENTERING = exports.ENTERING = 'entering'; -var ENTERED = exports.ENTERED = 'entered'; -var EXITING = exports.EXITING = 'exiting'; - -/** - * The Transition component lets you describe a transition from one component - * state to another _over time_ with a simple declarative API. Most commonly - * it's used to animate the mounting and unmounting of a component, but can also - * be used to describe in-place transition states as well. - * - * By default the `Transition` component does not alter the behavior of the - * component it renders, it only tracks "enter" and "exit" states for the components. - * It's up to you to give meaning and effect to those states. For example we can - * add styles to a component when it enters or exits: - * - * ```jsx - * import Transition from 'react-transition-group/Transition'; - * - * const duration = 300; - * - * const defaultStyle = { - * transition: `opacity ${duration}ms ease-in-out`, - * opacity: 0, - * } - * - * const transitionStyles = { - * entering: { opacity: 0 }, - * entered: { opacity: 1 }, - * }; - * - * const Fade = ({ in: inProp }) => ( - * - * {(state) => ( - *
- * I'm A fade Transition! - *
- * )} - *
- * ); - * ``` - * - * As noted the `Transition` component doesn't _do_ anything by itself to its child component. - * What it does do is track transition states over time so you can update the - * component (such as by adding styles or classes) when it changes states. - * - * There are 4 main states a Transition can be in: - * - `ENTERING` - * - `ENTERED` - * - `EXITING` - * - `EXITED` - * - * Transition state is toggled via the `in` prop. When `true` the component begins the - * "Enter" stage. During this stage, the component will shift from its current transition state, - * to `'entering'` for the duration of the transition and then to the `'entered'` stage once - * it's complete. Let's take the following example: - * - * ```jsx - * state= { in: false }; - * - * toggleEnterState = () => { - * this.setState({ in: true }); - * } - * - * render() { - * return ( - *
- * - * - *
- * ); - * } - * ``` - * - * When the button is clicked the component will shift to the `'entering'` state and - * stay there for 500ms (the value of `timeout`) when finally switches to `'entered'`. - * - * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`. - */ - -var Transition = function (_React$Component) { - _inherits(Transition, _React$Component); - - function Transition(props, context) { - _classCallCheck(this, Transition); - - var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); - - var parentGroup = context.transitionGroup; - // In the context of a TransitionGroup all enters are really appears - var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear; - - var initialStatus = void 0; - _this.nextStatus = null; - - if (props.in) { - if (appear) { - initialStatus = EXITED; - _this.nextStatus = ENTERING; - } else { - initialStatus = ENTERED; - } - } else { - if (props.unmountOnExit || props.mountOnEnter) { - initialStatus = UNMOUNTED; - } else { - initialStatus = EXITED; - } - } - - _this.state = { status: initialStatus }; - - _this.nextCallback = null; - return _this; - } - - Transition.prototype.getChildContext = function getChildContext() { - return { transitionGroup: null }; // allows for nested Transitions - }; - - Transition.prototype.componentDidMount = function componentDidMount() { - this.updateStatus(true); - }; - - Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var _ref = this.pendingState || this.state, - status = _ref.status; - - if (nextProps.in) { - if (status === UNMOUNTED) { - this.setState({ status: EXITED }); - } - if (status !== ENTERING && status !== ENTERED) { - this.nextStatus = ENTERING; - } - } else { - if (status === ENTERING || status === ENTERED) { - this.nextStatus = EXITING; - } - } - }; - - Transition.prototype.componentDidUpdate = function componentDidUpdate() { - this.updateStatus(); - }; - - Transition.prototype.componentWillUnmount = function componentWillUnmount() { - this.cancelNextCallback(); - }; - - Transition.prototype.getTimeouts = function getTimeouts() { - var timeout = this.props.timeout; - - var exit = void 0, - enter = void 0, - appear = void 0; - - exit = enter = appear = timeout; - - if (timeout != null && typeof timeout !== 'number') { - exit = timeout.exit; - enter = timeout.enter; - appear = timeout.appear; - } - return { exit: exit, enter: enter, appear: appear }; - }; - - Transition.prototype.updateStatus = function updateStatus() { - var mounting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - var nextStatus = this.nextStatus; - - if (nextStatus !== null) { - this.nextStatus = null; - // nextStatus will always be ENTERING or EXITING. - this.cancelNextCallback(); - var node = _reactDom2.default.findDOMNode(this); - - if (nextStatus === ENTERING) { - this.performEnter(node, mounting); - } else { - this.performExit(node); - } - } else if (this.props.unmountOnExit && this.state.status === EXITED) { - this.setState({ status: UNMOUNTED }); - } - }; - - Transition.prototype.performEnter = function performEnter(node, mounting) { - var _this2 = this; - - var enter = this.props.enter; - - var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting; - - var timeouts = this.getTimeouts(); - - // no enter animation skip right to ENTERED - // if we are mounting and running this it means appear _must_ be set - if (!mounting && !enter) { - this.safeSetState({ status: ENTERED }, function () { - _this2.props.onEntered(node); - }); - return; - } - - this.props.onEnter(node, appearing); - - this.safeSetState({ status: ENTERING }, function () { - _this2.props.onEntering(node, appearing); - - // FIXME: appear timeout? - _this2.onTransitionEnd(node, timeouts.enter, function () { - _this2.safeSetState({ status: ENTERED }, function () { - _this2.props.onEntered(node, appearing); - }); - }); - }); - }; - - Transition.prototype.performExit = function performExit(node) { - var _this3 = this; - - var exit = this.props.exit; - - var timeouts = this.getTimeouts(); - - // no exit animation skip right to EXITED - if (!exit) { - this.safeSetState({ status: EXITED }, function () { - _this3.props.onExited(node); - }); - return; - } - this.props.onExit(node); - - this.safeSetState({ status: EXITING }, function () { - _this3.props.onExiting(node); - - _this3.onTransitionEnd(node, timeouts.exit, function () { - _this3.safeSetState({ status: EXITED }, function () { - _this3.props.onExited(node); - }); - }); - }); - }; - - Transition.prototype.cancelNextCallback = function cancelNextCallback() { - if (this.nextCallback !== null) { - this.nextCallback.cancel(); - this.nextCallback = null; - } - }; - - Transition.prototype.safeSetState = function safeSetState(nextState, callback) { - var _this4 = this; - - // We need to track pending updates for instances where a cWRP fires quickly - // after cDM and before the state flushes, which would double trigger a - // transition - this.pendingState = nextState; - - // This shouldn't be necessary, but there are weird race conditions with - // setState callbacks and unmounting in testing, so always make sure that - // we can cancel any pending setState callbacks after we unmount. - callback = this.setNextCallback(callback); - this.setState(nextState, function () { - _this4.pendingState = null; - callback(); - }); - }; - - Transition.prototype.setNextCallback = function setNextCallback(callback) { - var _this5 = this; - - var active = true; - - this.nextCallback = function (event) { - if (active) { - active = false; - _this5.nextCallback = null; - - callback(event); - } - }; - - this.nextCallback.cancel = function () { - active = false; - }; - - return this.nextCallback; - }; - - Transition.prototype.onTransitionEnd = function onTransitionEnd(node, timeout, handler) { - this.setNextCallback(handler); - - if (node) { - if (this.props.addEndListener) { - this.props.addEndListener(node, this.nextCallback); - } - if (timeout != null) { - setTimeout(this.nextCallback, timeout); - } - } else { - setTimeout(this.nextCallback, 0); - } - }; - - Transition.prototype.render = function render() { - var status = this.state.status; - if (status === UNMOUNTED) { - return null; - } - - var _props = this.props, - children = _props.children, - childProps = _objectWithoutProperties(_props, ['children']); - // filter props for Transtition - - - delete childProps.in; - delete childProps.mountOnEnter; - delete childProps.unmountOnExit; - delete childProps.appear; - delete childProps.enter; - delete childProps.exit; - delete childProps.timeout; - delete childProps.addEndListener; - delete childProps.onEnter; - delete childProps.onEntering; - delete childProps.onEntered; - delete childProps.onExit; - delete childProps.onExiting; - delete childProps.onExited; - - if (typeof children === 'function') { - return children(status, childProps); - } - - var child = _react2.default.Children.only(children); - return _react2.default.cloneElement(child, childProps); - }; - - return Transition; -}(_react2.default.Component); - -Transition.contextTypes = { - transitionGroup: PropTypes.object -}; -Transition.childContextTypes = { - transitionGroup: function transitionGroup() {} -}; - - -Transition.propTypes = process.env.NODE_ENV !== "production" ? { - /** - * A `function` child can be used instead of a React element. - * This function is called with the current transition status - * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can used - * to apply context specific props to a component. - * - * ```jsx - * - * {(status) => ( - * - * )} - * - * ``` - */ - children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired, - - /** - * Show the component; triggers the enter or exit states - */ - in: PropTypes.bool, - - /** - * By default the child component is mounted immediately along with - * the parent `Transition` component. If you want to "lazy mount" the component on the - * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay - * mounted, even on "exited", unless you also specify `unmountOnExit`. - */ - mountOnEnter: PropTypes.bool, - - /** - * By default the child component stays mounted after it reaches the `'exited'` state. - * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting. - */ - unmountOnExit: PropTypes.bool, - - /** - * Normally a component is not transitioned if it is shown when the `` component mounts. - * If you want to transition on the first mount set `appear` to `true`, and the - * component will transition in as soon as the `` mounts. - * - * > Note: there are no specific "appear" states. `appear` only adds an additional `enter` transition. - */ - appear: PropTypes.bool, - - /** - * Enable or disable enter transitions. - */ - enter: PropTypes.bool, - - /** - * Enable or disable exit transitions. - */ - exit: PropTypes.bool, - - /** - * The duration of the transition, in milliseconds. - * Required unless `addEventListener` is provided - * - * You may specify a single timeout for all transitions like: `timeout={500}`, - * or individually like: - * - * ```jsx - * timeout={{ - * enter: 300, - * exit: 500, - * }} - * ``` - * - * @type {number | { enter?: number, exit?: number }} - */ - timeout: function timeout(props) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var pt = _PropTypes.timeoutsShape; - if (!props.addEndListener) pt = pt.isRequired; - return pt.apply(undefined, [props].concat(args)); - }, - - /** - * Add a custom transition end trigger. Called with the transitioning - * DOM node and a `done` callback. Allows for more fine grained transition end - * logic. **Note:** Timeouts are still used as a fallback if provided. - * - * ```jsx - * addEndListener={(node, done) => { - * // use the css transitionend event to mark the finish of a transition - * node.addEventListener('transitionend', done, false); - * }} - * ``` - */ - addEndListener: PropTypes.func, - - /** - * Callback fired before the "entering" status is applied. An extra parameter - * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount - * - * @type Function(node: HtmlElement, isAppearing: bool) -> void - */ - onEnter: PropTypes.func, - - /** - * Callback fired after the "entering" status is applied. An extra parameter - * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount - * - * @type Function(node: HtmlElement, isAppearing: bool) - */ - onEntering: PropTypes.func, - - /** - * Callback fired after the "entered" status is applied. An extra parameter - * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount - * - * @type Function(node: HtmlElement, isAppearing: bool) -> void - */ - onEntered: PropTypes.func, - - /** - * Callback fired before the "exiting" status is applied. - * - * @type Function(node: HtmlElement) -> void - */ - onExit: PropTypes.func, - - /** - * Callback fired after the "exiting" status is applied. - * - * @type Function(node: HtmlElement) -> void - */ - onExiting: PropTypes.func, - - /** - * Callback fired after the "exited" status is applied. - * - * @type Function(node: HtmlElement) -> void - */ - onExited: PropTypes.func -} : {}; - -// Name the function so it is clearer in the documentation -function noop() {} - -Transition.defaultProps = { - in: false, - mountOnEnter: false, - unmountOnExit: false, - appear: false, - enter: true, - exit: true, - - onEnter: noop, - onEntering: noop, - onEntered: noop, - - onExit: noop, - onExiting: noop, - onExited: noop -}; - -Transition.UNMOUNTED = 0; -Transition.EXITED = 1; -Transition.ENTERING = 2; -Transition.ENTERED = 3; -Transition.EXITING = 4; - -exports.default = Transition; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/react-transition-group/TransitionGroup.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -exports.__esModule = true; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _react2 = _interopRequireDefault(_react); - -var _ChildMapping = __webpack_require__("./node_modules/react-transition-group/utils/ChildMapping.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var values = Object.values || function (obj) { - return Object.keys(obj).map(function (k) { - return obj[k]; - }); -}; - -var propTypes = { - /** - * `` renders a `
` by default. You can change this - * behavior by providing a `component` prop. - */ - component: _propTypes2.default.any, - /** - * A set of `` components, that are toggled `in` and out as they - * leave. the `` will inject specific transition props, so - * remember to spread them through if you are wrapping the `` as - * with our `` example. - */ - children: _propTypes2.default.node, - - /** - * A convenience prop that enables or disabled appear animations - * for all children. Note that specifying this will override any defaults set - * on individual children Transitions. - */ - appear: _propTypes2.default.bool, - /** - * A convenience prop that enables or disabled enter animations - * for all children. Note that specifying this will override any defaults set - * on individual children Transitions. - */ - enter: _propTypes2.default.bool, - /** - * A convenience prop that enables or disabled exit animations - * for all children. Note that specifying this will override any defaults set - * on individual children Transitions. - */ - exit: _propTypes2.default.bool, - - /** - * You may need to apply reactive updates to a child as it is exiting. - * This is generally done by using `cloneElement` however in the case of an exiting - * child the element has already been removed and not accessible to the consumer. - * - * If you do need to update a child as it leaves you can provide a `childFactory` - * to wrap every child, even the ones that are leaving. - * - * @type Function(child: ReactElement) -> ReactElement - */ - childFactory: _propTypes2.default.func -}; - -var defaultProps = { - component: 'div', - childFactory: function childFactory(child) { - return child; - } -}; - -/** - * The `` component manages a set of `` components - * in a list. Like with the `` component, ``, is a - * state machine for managing the mounting and unmounting of components over - * time. - * - * Consider the example below using the `Fade` CSS transition from before. - * As items are removed or added to the TodoList the `in` prop is toggled - * automatically by the ``. You can use _any_ `` - * component in a ``, not just css. - * - * ```jsx - * import TransitionGroup from 'react-transition-group/TransitionGroup'; - * - * class TodoList extends React.Component { - * constructor(props) { - * super(props) - * this.state = {items: ['hello', 'world', 'click', 'me']} - * } - * handleAdd() { - * const newItems = this.state.items.concat([ - * prompt('Enter some text') - * ]); - * this.setState({ items: newItems }); - * } - * handleRemove(i) { - * let newItems = this.state.items.slice(); - * newItems.splice(i, 1); - * this.setState({items: newItems}); - * } - * render() { - * return ( - *
- * - * - * {this.state.items.map((item, i) => ( - * - *
- * {item}{' '} - * - *
- *
- * ))} - *
- *
- * ); - * } - * } - * ``` - * - * Note that `` does not define any animation behavior! - * Exactly _how_ a list item animates is up to the individual `` - * components. This means you can mix and match animations across different - * list items. - */ - -var TransitionGroup = function (_React$Component) { - _inherits(TransitionGroup, _React$Component); - - function TransitionGroup(props, context) { - _classCallCheck(this, TransitionGroup); - - // Initial children should all be entering, dependent on appear - var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); - - _this.handleExited = function (key, node, originalHandler) { - var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children); - - if (key in currentChildMapping) return; - - if (originalHandler) originalHandler(node); - - _this.setState(function (state) { - var children = _extends({}, state.children); - - delete children[key]; - return { children: children }; - }); - }; - - _this.state = { - children: (0, _ChildMapping.getChildMapping)(props.children, function (child) { - var onExited = function onExited(node) { - _this.handleExited(child.key, node, child.props.onExited); - }; - - return (0, _react.cloneElement)(child, { - onExited: onExited, - in: true, - appear: _this.getProp(child, 'appear'), - enter: _this.getProp(child, 'enter'), - exit: _this.getProp(child, 'exit') - }); - }) - }; - return _this; - } - - TransitionGroup.prototype.getChildContext = function getChildContext() { - return { - transitionGroup: { isMounting: !this.appeared } - }; - }; - // use child config unless explictly set by the Group - - - TransitionGroup.prototype.getProp = function getProp(child, prop) { - var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props; - - return props[prop] != null ? props[prop] : child.props[prop]; - }; - - TransitionGroup.prototype.componentDidMount = function componentDidMount() { - this.appeared = true; - }; - - TransitionGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var _this2 = this; - - var prevChildMapping = this.state.children; - var nextChildMapping = (0, _ChildMapping.getChildMapping)(nextProps.children); - - var children = (0, _ChildMapping.mergeChildMappings)(prevChildMapping, nextChildMapping); - - Object.keys(children).forEach(function (key) { - var child = children[key]; - - if (!(0, _react.isValidElement)(child)) return; - - var onExited = function onExited(node) { - _this2.handleExited(child.key, node, child.props.onExited); - }; - - var hasPrev = key in prevChildMapping; - var hasNext = key in nextChildMapping; - - var prevChild = prevChildMapping[key]; - var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; - - // item is new (entering) - if (hasNext && (!hasPrev || isLeaving)) { - // console.log('entering', key) - children[key] = (0, _react.cloneElement)(child, { - onExited: onExited, - in: true, - exit: _this2.getProp(child, 'exit', nextProps), - enter: _this2.getProp(child, 'enter', nextProps) - }); - } - // item is old (exiting) - else if (!hasNext && hasPrev && !isLeaving) { - // console.log('leaving', key) - children[key] = (0, _react.cloneElement)(child, { in: false }); - } - // item hasn't changed transition states - // copy over the last transition props; - else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) { - // console.log('unchanged', key) - children[key] = (0, _react.cloneElement)(child, { - onExited: onExited, - in: prevChild.props.in, - exit: _this2.getProp(child, 'exit', nextProps), - enter: _this2.getProp(child, 'enter', nextProps) - }); - } - }); - - this.setState({ children: children }); - }; - - TransitionGroup.prototype.render = function render() { - var _props = this.props, - Component = _props.component, - childFactory = _props.childFactory, - props = _objectWithoutProperties(_props, ['component', 'childFactory']); - - var children = this.state.children; - - - delete props.appear; - delete props.enter; - delete props.exit; - - return _react2.default.createElement( - Component, - props, - values(children).map(childFactory) - ); - }; - - return TransitionGroup; -}(_react2.default.Component); - -TransitionGroup.childContextTypes = { - transitionGroup: _propTypes2.default.object.isRequired -}; - - -TransitionGroup.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {}; -TransitionGroup.defaultProps = defaultProps; - -exports.default = TransitionGroup; -module.exports = exports['default']; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/react-transition-group/utils/ChildMapping.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.getChildMapping = getChildMapping; -exports.mergeChildMappings = mergeChildMappings; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -/** - * Given `this.props.children`, return an object mapping key to child. - * - * @param {*} children `this.props.children` - * @return {object} Mapping of key to child - */ -function getChildMapping(children, mapFn) { - var mapper = function mapper(child) { - return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child; - }; - - var result = Object.create(null); - if (children) _react.Children.map(children, function (c) { - return c; - }).forEach(function (child) { - // run the map function here instead so that the key is the computed one - result[child.key] = mapper(child); - }); - return result; -} - -/** - * When you're adding or removing children some may be added or removed in the - * same render pass. We want to show *both* since we want to simultaneously - * animate elements in and out. This function takes a previous set of keys - * and a new set of keys and merges them with its best guess of the correct - * ordering. In the future we may expose some of the utilities in - * ReactMultiChild to make this easy, but for now React itself does not - * directly have this concept of the union of prevChildren and nextChildren - * so we implement it here. - * - * @param {object} prev prev children as returned from - * `ReactTransitionChildMapping.getChildMapping()`. - * @param {object} next next children as returned from - * `ReactTransitionChildMapping.getChildMapping()`. - * @return {object} a key set that contains all keys in `prev` and all keys - * in `next` in a reasonable order. - */ -function mergeChildMappings(prev, next) { - prev = prev || {}; - next = next || {}; - - function getValueForKey(key) { - return key in next ? next[key] : prev[key]; - } - - // For each key of `next`, the list of keys to insert before that key in - // the combined list - var nextKeysPending = Object.create(null); - - var pendingKeys = []; - for (var prevKey in prev) { - if (prevKey in next) { - if (pendingKeys.length) { - nextKeysPending[prevKey] = pendingKeys; - pendingKeys = []; - } - } else { - pendingKeys.push(prevKey); - } - } - - var i = void 0; - var childMapping = {}; - for (var nextKey in next) { - if (nextKeysPending[nextKey]) { - for (i = 0; i < nextKeysPending[nextKey].length; i++) { - var pendingNextKey = nextKeysPending[nextKey][i]; - childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey); - } - } - childMapping[nextKey] = getValueForKey(nextKey); - } - - // Finally, add the keys which didn't appear before any key in `next` - for (i = 0; i < pendingKeys.length; i++) { - childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]); - } - - return childMapping; -} - -/***/ }), - -/***/ "./node_modules/react-transition-group/utils/PropTypes.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.classNamesShape = exports.timeoutsShape = undefined; -exports.transitionTimeout = transitionTimeout; - -var _propTypes = __webpack_require__("./node_modules/prop-types/index.js"); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function transitionTimeout(transitionType) { - var timeoutPropName = 'transition' + transitionType + 'Timeout'; - var enabledPropName = 'transition' + transitionType; - - return function (props) { - // If the transition is enabled - if (props[enabledPropName]) { - // If no timeout duration is provided - if (props[timeoutPropName] == null) { - return new Error(timeoutPropName + ' wasn\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); - - // If the duration isn't a number - } else if (typeof props[timeoutPropName] !== 'number') { - return new Error(timeoutPropName + ' must be a number (in milliseconds)'); - } - } - - return null; - }; -} - -var timeoutsShape = exports.timeoutsShape = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ - enter: _propTypes2.default.number, - exit: _propTypes2.default.number -}).isRequired]); - -var classNamesShape = exports.classNamesShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({ - enter: _propTypes2.default.string, - exit: _propTypes2.default.string, - active: _propTypes2.default.string -}), _propTypes2.default.shape({ - enter: _propTypes2.default.string, - enterActive: _propTypes2.default.string, - exit: _propTypes2.default.string, - exitActive: _propTypes2.default.string -})]); - -/***/ }), - -/***/ "./node_modules/readable-stream/duplex-browser.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); - - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_duplex.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - - - -/**/ - -var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; -/**/ - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); -/**/ - -var Readable = __webpack_require__("./node_modules/readable-stream/lib/_stream_readable.js"); -var Writable = __webpack_require__("./node_modules/readable-stream/lib/_stream_writable.js"); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -Object.defineProperty(Duplex.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -Duplex.prototype._destroy = function (err, cb) { - this.push(null); - this.end(); - - processNextTick(cb, err); -}; - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - - - -module.exports = PassThrough; - -var Transform = __webpack_require__("./node_modules/readable-stream/lib/_stream_transform.js"); - -/**/ -var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_readable.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -/**/ - -var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; -/**/ - -module.exports = Readable; - -/**/ -var isArray = __webpack_require__("./node_modules/isarray/index.js"); -/**/ - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = __webpack_require__("./node_modules/events/events.js").EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); -/**/ - -/**/ - -var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -/**/ -var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); -/**/ - -/**/ -var debugUtil = __webpack_require__(2); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var BufferList = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/BufferList.js"); -var destroyImpl = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/destroy.js"); -var StringDecoder; - -util.inherits(Readable, Stream); - -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} - -function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var readableHwm = options.readableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // has it been destroyed - this.destroyed = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__("./node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options) { - if (typeof options.read === 'function') this._read = options.read; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - - Stream.call(this); -} - -Object.defineProperty(Readable.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } -}); - -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - this.push(null); - cb(err); -}; - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (addToFront) { - if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); - } else if (state.ended) { - stream.emit('error', new Error('stream.push() after EOF')); - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - } - } - - return needMoreData(state); -} - -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} - -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__("./node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { hasUnpiped: false }; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this, unpipeInfo); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - - var state = this._readableState; - var paused = false; - - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - - _this.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return this; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; -} - -// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; -} - -// Copies a specified amount of characters from the list of buffered data -// chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_transform.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - - - -module.exports = Transform; - -var Duplex = __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); - -/**/ -var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); -/**/ - -util.inherits(Transform, Duplex); - -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) { - return this.emit('error', new Error('write callback called multiple times')); - } - - ts.writechunk = null; - ts.writecb = null; - - if (data != null) // single equals check for both `null` and `undefined` - this.push(data); - - cb(er); - - var rs = this._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); -} - -function prefinish() { - var _this = this; - - if (typeof this._flush === 'function') { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); - } -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -Transform.prototype._destroy = function (err, cb) { - var _this2 = this; - - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - _this2.emit('close'); - }); -}; - -function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); - - if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/_stream_writable.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - - - -/**/ - -var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; -/**/ - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; -/**/ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = __webpack_require__("./node_modules/core-util-is/lib/util.js"); -util.inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"); -/**/ - -/**/ -var internalUtil = { - deprecate: __webpack_require__("./node_modules/util-deprecate/browser.js") -}; -/**/ - -/**/ -var Stream = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); -/**/ - -/**/ - -var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -var destroyImpl = __webpack_require__("./node_modules/readable-stream/lib/internal/streams/destroy.js"); - -util.inherits(Writable, Stream); - -function nop() {} - -function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var writableHwm = options.writableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function (object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - - if (typeof options.final === 'function') this._final = options.final; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - processNextTick(cb, er); - // this can emit finish, and it will always happen - // after error - processNextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - stream.emit('error', err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function') { - state.pendingcb++; - state.finalCalled = true; - processNextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = corkReq; - } else { - state.corkedRequestsFree = corkReq; - } -} - -Object.defineProperty(Writable.prototype, 'destroyed', { - get: function () { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); - -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - this.end(); - cb(err); -}; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"), __webpack_require__("./node_modules/timers-browserify/main.js").setImmediate, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Buffer = __webpack_require__("./node_modules/safe-buffer/index.js").Buffer; -var util = __webpack_require__(3); - -function copyBuffer(src, target, offset) { - src.copy(target, offset); -} - -module.exports = function () { - function BufferList() { - _classCallCheck(this, BufferList); - - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function push(v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function unshift(v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function clear() { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - - return BufferList; -}(); - -if (util && util.inspect && util.inspect.custom) { - module.exports.prototype[util.inspect.custom] = function () { - var obj = util.inspect({ length: this.length }); - return this.constructor.name + ' ' + obj; - }; -} - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/**/ - -var processNextTick = __webpack_require__("./node_modules/process-nextick-args/index.js").nextTick; -/**/ - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - processNextTick(emitErrorNT, this, err); - } - return this; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - - this._destroy(err || null, function (err) { - if (!cb && err) { - processNextTick(emitErrorNT, _this, err); - if (_this._writableState) { - _this._writableState.errorEmitted = true; - } - } else if (cb) { - cb(err); - } - }); - - return this; -} - -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} - -function emitErrorNT(self, err) { - self.emit('error', err); -} - -module.exports = { - destroy: destroy, - undestroy: undestroy -}; - -/***/ }), - -/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js": -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__("./node_modules/events/events.js").EventEmitter; - - -/***/ }), - -/***/ "./node_modules/readable-stream/readable-browser.js": -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__("./node_modules/readable-stream/lib/_stream_readable.js"); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = __webpack_require__("./node_modules/readable-stream/lib/_stream_writable.js"); -exports.Duplex = __webpack_require__("./node_modules/readable-stream/lib/_stream_duplex.js"); -exports.Transform = __webpack_require__("./node_modules/readable-stream/lib/_stream_transform.js"); -exports.PassThrough = __webpack_require__("./node_modules/readable-stream/lib/_stream_passthrough.js"); - - -/***/ }), - -/***/ "./node_modules/recompose/getDisplayName.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -var getDisplayName = function getDisplayName(Component) { - if (typeof Component === 'string') { - return Component; - } - - if (!Component) { - return undefined; - } - - return Component.displayName || Component.name || 'Component'; -}; - -exports.default = getDisplayName; - -/***/ }), - -/***/ "./node_modules/recompose/pure.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -exports.__esModule = true; - -var _shouldUpdate = __webpack_require__("./node_modules/recompose/shouldUpdate.js"); - -var _shouldUpdate2 = _interopRequireDefault(_shouldUpdate); - -var _shallowEqual = __webpack_require__("./node_modules/recompose/shallowEqual.js"); - -var _shallowEqual2 = _interopRequireDefault(_shallowEqual); - -var _setDisplayName = __webpack_require__("./node_modules/recompose/setDisplayName.js"); - -var _setDisplayName2 = _interopRequireDefault(_setDisplayName); - -var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); - -var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var pure = function pure(BaseComponent) { - var hoc = (0, _shouldUpdate2.default)(function (props, nextProps) { - return !(0, _shallowEqual2.default)(props, nextProps); - }); - - if (process.env.NODE_ENV !== 'production') { - return (0, _setDisplayName2.default)((0, _wrapDisplayName2.default)(BaseComponent, 'pure'))(hoc(BaseComponent)); - } - - return hoc(BaseComponent); -}; - -exports.default = pure; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/recompose/setDisplayName.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _setStatic = __webpack_require__("./node_modules/recompose/setStatic.js"); - -var _setStatic2 = _interopRequireDefault(_setStatic); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var setDisplayName = function setDisplayName(displayName) { - return (0, _setStatic2.default)('displayName', displayName); -}; - -exports.default = setDisplayName; - -/***/ }), - -/***/ "./node_modules/recompose/setStatic.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -var setStatic = function setStatic(key, value) { - return function (BaseComponent) { - /* eslint-disable no-param-reassign */ - BaseComponent[key] = value; - /* eslint-enable no-param-reassign */ - return BaseComponent; - }; -}; - -exports.default = setStatic; - -/***/ }), - -/***/ "./node_modules/recompose/shallowEqual.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _shallowEqual = __webpack_require__("./node_modules/fbjs/lib/shallowEqual.js"); - -var _shallowEqual2 = _interopRequireDefault(_shallowEqual); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _shallowEqual2.default; - -/***/ }), - -/***/ "./node_modules/recompose/shouldUpdate.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -exports.__esModule = true; - -var _react = __webpack_require__("./node_modules/react/react.js"); - -var _setDisplayName = __webpack_require__("./node_modules/recompose/setDisplayName.js"); - -var _setDisplayName2 = _interopRequireDefault(_setDisplayName); - -var _wrapDisplayName = __webpack_require__("./node_modules/recompose/wrapDisplayName.js"); - -var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var shouldUpdate = function shouldUpdate(test) { - return function (BaseComponent) { - var factory = (0, _react.createFactory)(BaseComponent); - - var ShouldUpdate = function (_Component) { - _inherits(ShouldUpdate, _Component); - - function ShouldUpdate() { - _classCallCheck(this, ShouldUpdate); - - return _possibleConstructorReturn(this, _Component.apply(this, arguments)); - } - - ShouldUpdate.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) { - return test(this.props, nextProps); - }; - - ShouldUpdate.prototype.render = function render() { - return factory(this.props); - }; - - return ShouldUpdate; - }(_react.Component); - - if (process.env.NODE_ENV !== 'production') { - return (0, _setDisplayName2.default)((0, _wrapDisplayName2.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate); - } - return ShouldUpdate; - }; -}; - -exports.default = shouldUpdate; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/node-libs-browser/node_modules/process/browser.js"))) - -/***/ }), - -/***/ "./node_modules/recompose/wrapDisplayName.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _getDisplayName = __webpack_require__("./node_modules/recompose/getDisplayName.js"); - -var _getDisplayName2 = _interopRequireDefault(_getDisplayName); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) { - return hocName + '(' + (0, _getDisplayName2.default)(BaseComponent) + ')'; -}; - -exports.default = wrapDisplayName; - -/***/ }), - -/***/ "./node_modules/redux-immutable-state-invariant/dist/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = immutableStateInvariantMiddleware; - -var _invariant = __webpack_require__("./node_modules/invariant/browser.js"); - -var _invariant2 = _interopRequireDefault(_invariant); - -var _jsonStringifySafe = __webpack_require__("./node_modules/json-stringify-safe/stringify.js"); - -var _jsonStringifySafe2 = _interopRequireDefault(_jsonStringifySafe); - -var _isImmutable = __webpack_require__("./node_modules/redux-immutable-state-invariant/dist/isImmutable.js"); - -var _isImmutable2 = _interopRequireDefault(_isImmutable); - -var _trackForMutations = __webpack_require__("./node_modules/redux-immutable-state-invariant/dist/trackForMutations.js"); - -var _trackForMutations2 = _interopRequireDefault(_trackForMutations); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var BETWEEN_DISPATCHES_MESSAGE = ['A state mutation was detected between dispatches, in the path `%s`.', 'This may cause incorrect behavior.', '(http://redux.js.org/docs/Troubleshooting.html#never-mutate-reducer-arguments)'].join(' '); - -var INSIDE_DISPATCH_MESSAGE = ['A state mutation was detected inside a dispatch, in the path: `%s`.', 'Take a look at the reducer(s) handling the action %s.', '(http://redux.js.org/docs/Troubleshooting.html#never-mutate-reducer-arguments)'].join(' '); - -function immutableStateInvariantMiddleware() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _options$isImmutable = options.isImmutable, - isImmutable = _options$isImmutable === undefined ? _isImmutable2.default : _options$isImmutable, - ignore = options.ignore; - - var track = _trackForMutations2.default.bind(null, isImmutable, ignore); - - return function (_ref) { - var getState = _ref.getState; - - var state = getState(); - var tracker = track(state); - - var result = void 0; - return function (next) { - return function (action) { - state = getState(); - - result = tracker.detectMutations(); - // Track before potentially not meeting the invariant - tracker = track(state); - - (0, _invariant2.default)(!result.wasMutated, BETWEEN_DISPATCHES_MESSAGE, (result.path || []).join('.')); - - var dispatchedAction = next(action); - state = getState(); - - result = tracker.detectMutations(); - // Track before potentially not meeting the invariant - tracker = track(state); - - (0, _invariant2.default)(!result.wasMutated, INSIDE_DISPATCH_MESSAGE, (result.path || []).join('.'), (0, _jsonStringifySafe2.default)(action)); - - return dispatchedAction; - }; - }; - }; -} - -/***/ }), - -/***/ "./node_modules/redux-immutable-state-invariant/dist/isImmutable.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports.default = isImmutableDefault; -function isImmutableDefault(value) { - return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null || typeof value === 'undefined'; -} - -/***/ }), - -/***/ "./node_modules/redux-immutable-state-invariant/dist/trackForMutations.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = trackForMutations; -function trackForMutations(isImmutable, ignore, obj) { - var trackedProperties = trackProperties(isImmutable, ignore, obj); - return { - detectMutations: function detectMutations() { - return _detectMutations(isImmutable, ignore, trackedProperties, obj); - } - }; -} - -function trackProperties(isImmutable) { - var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - var obj = arguments[2]; - var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; - - var tracked = { value: obj }; - - if (!isImmutable(obj)) { - tracked.children = {}; - - for (var key in obj) { - var childPath = path.concat(key); - if (ignore.length && ignore.indexOf(childPath.join('.')) !== -1) { - continue; - } - - tracked.children[key] = trackProperties(isImmutable, ignore, obj[key], childPath); - } - } - return tracked; -} - -function _detectMutations(isImmutable) { - var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - var trackedProperty = arguments[2]; - var obj = arguments[3]; - var sameParentRef = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - var path = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : []; - - var prevObj = trackedProperty ? trackedProperty.value : undefined; - - var sameRef = prevObj === obj; - - if (sameParentRef && !sameRef && !Number.isNaN(obj)) { - return { wasMutated: true, path: path }; - } - - if (isImmutable(prevObj) || isImmutable(obj)) { - return { wasMutated: false }; - } - - // Gather all keys from prev (tracked) and after objs - var keysToDetect = {}; - Object.keys(trackedProperty.children).forEach(function (key) { - keysToDetect[key] = true; - }); - Object.keys(obj).forEach(function (key) { - keysToDetect[key] = true; - }); - - var keys = Object.keys(keysToDetect); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var childPath = path.concat(key); - if (ignore.length && ignore.indexOf(childPath.join('.')) !== -1) { - continue; - } - - var result = _detectMutations(isImmutable, ignore, trackedProperty.children[key], obj[key], sameRef, childPath); - - if (result.wasMutated) { - return result; - } - } - return { wasMutated: false }; -} - -/***/ }), - -/***/ "./node_modules/redux-logger/dist/redux-logger.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {!function(e,t){ true?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){"use strict";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t="undefined"==typeof e?"undefined":N(e);return"object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if("undefined"!=typeof d){if(c){if("function"==typeof c&&c(g,d))return;if("object"===("undefined"==typeof c?"undefined":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}"regexp"===u(e)&&"regexp"===u(t)&&(e=e.toString(),t=t.toString());var y="undefined"==typeof e?"undefined":N(e),v="undefined"==typeof t?"undefined":N(t),b="undefined"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m="undefined"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if("date"===u(e)&&e-t!==0)r(new n(g,e,t));else if("object"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&("number"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if("undefined"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport createLogger from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if("function"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&"function"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E("0",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+":"+A(e.getMinutes(),2)+":"+A(e.getSeconds(),2)+"."+A(e.getMilliseconds(),3)},O="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return"function"==typeof t||"function"==typeof r?S()({dispatch:t,getState:r}):void console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,"__esModule",{value:!0})}); - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "./node_modules/regenerator-runtime/runtime.js": -/***/ (function(module, exports) { - -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -!(function(global) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; // More compressible than void 0. - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - var inModule = typeof module === "object"; - var runtime = global.regeneratorRuntime; - if (runtime) { - if (inModule) { - // If regeneratorRuntime is defined globally and we're in a module, - // make the exports object identical to regeneratorRuntime. - module.exports = runtime; - } - // Don't bother evaluating the rest of this file if the runtime was - // already defined globally. - return; - } - - // Define the runtime globally (as expected by generated code) as either - // module.exports (if we're in a module) or a new, empty object. - runtime = global.regeneratorRuntime = inModule ? module.exports : {}; - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - runtime.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = - GeneratorFunction.displayName = "GeneratorFunction"; - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - prototype[method] = function(arg) { - return this._invoke(method, arg); - }; - }); - } - - runtime.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - runtime.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - runtime.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function(unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. If the Promise is rejected, however, the - // result for this iteration will be rejected with the same - // reason. Note that rejections of yielded Promises are not - // thrown back into the generator function, as is the case - // when an awaited Promise is rejected. This difference in - // behavior between yield and await is important, because it - // allows the consumer to decide what to do with the yielded - // rejection (swallow it and continue, manually .throw it back - // into the generator, abandon iteration, whatever). With - // await, by contrast, there is no opportunity to examine the - // rejection reason outside the generator function, so the - // only option is to throw it from the await expression, and - // let the generator function handle the exception. - result.value = unwrapped; - resolve(result); - }, reject); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - runtime.AsyncIterator = AsyncIterator; - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - runtime.async = function(innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList) - ); - - return runtime.isGeneratorFunction(outerFn) - ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator.return) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; - - // Resume execution at the desired location (see delegateYield). - context.next = delegate.nextLoc; - - // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - - } else { - // Re-yield the result returned by the delegate method. - return info; - } - - // The delegate iterator is finished, so forget it and continue with - // the outer generator. - context.delegate = null; - return ContinueSentinel; - } - - // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - defineIteratorMethods(Gp); - - Gp[toStringTagSymbol] = "Generator"; - - // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - Gp[iteratorSymbol] = function() { - return this; - }; - - Gp.toString = function() { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - runtime.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - // Return an iterator with no values. - return { next: doneResult }; - } - runtime.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - - this.method = "next"; - this.arg = undefined; - - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && - hasOwn.call(this, name) && - !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - - stop: function() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined; - } - - return !! caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, - - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined; - } - - return ContinueSentinel; - } - }; -})( - // In sloppy mode, unbound `this` refers to the global object, fallback to - // Function constructor if we're in global strict mode. That is sadly a form - // of indirect eval which violates Content Security Policy. - (function() { return this })() || Function("return this")() -); - - -/***/ }), - -/***/ "./node_modules/reinterval/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function ReInterval (callback, interval, args) { - var self = this; - - this._callback = callback; - this._args = args; - - this._interval = setInterval(callback, interval, this._args); - - this.reschedule = function (interval) { - // if no interval entered, use the interval passed in on creation - if (!interval) - interval = self._interval; - - if (self._interval) - clearInterval(self._interval); - self._interval = setInterval(self._callback, interval, self._args); - }; - - this.clear = function () { - if (self._interval) { - clearInterval(self._interval); - self._interval = undefined; - } - }; - - this.destroy = function () { - if (self._interval) { - clearInterval(self._interval); - } - self._callback = undefined; - self._interval = undefined; - self._args = undefined; - }; -} - -function reInterval () { - if (typeof arguments[0] !== 'function') - throw new Error('callback needed'); - if (typeof arguments[1] !== 'number') - throw new Error('interval needed'); - - var args; - - if (arguments.length > 0) { - args = new Array(arguments.length - 2); - - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i + 2]; - } - } - - return new ReInterval(arguments[0], arguments[1], args); -} - -module.exports = reInterval; - - -/***/ }), - -/***/ "./node_modules/safe-buffer/index.js": -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-disable node/no-deprecated-api */ -var buffer = __webpack_require__("./node_modules/buffer/index.js") -var Buffer = buffer.Buffer - -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] - } -} -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer -} - -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) -} - -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) - -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) -} - -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf -} - -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) -} - -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) -} - - -/***/ }), - -/***/ "./node_modules/scroll/index.js": -/***/ (function(module, exports, __webpack_require__) { - -var raf = __webpack_require__("./node_modules/rafl/index.js") -var E_NOSCROLL = new Error('Element already at target scroll position') -var E_CANCELLED = new Error('Scroll cancelled') -var min = Math.min - -module.exports = { - left: make('scrollLeft'), - top: make('scrollTop') -} - -function make (prop) { - return function scroll (el, to, opts, cb) { - opts = opts || {} - - if (typeof opts == 'function') cb = opts, opts = {} - if (typeof cb != 'function') cb = noop - - var start = +new Date - var from = el[prop] - var ease = opts.ease || inOutSine - var duration = !isNaN(opts.duration) ? +opts.duration : 350 - var cancelled = false - - return from === to ? - cb(E_NOSCROLL, el[prop]) : - raf(animate), cancel - - function cancel () { - cancelled = true - } - - function animate (timestamp) { - if (cancelled) return cb(E_CANCELLED, el[prop]) - - var now = +new Date - var time = min(1, ((now - start) / duration)) - var eased = ease(time) - - el[prop] = (eased * (to - from)) + from - - time < 1 ? raf(animate) : raf(function () { - cb(null, el[prop]) - }) - } - } -} - -function inOutSine (n) { - return 0.5 * (1 - Math.cos(Math.PI * n)) -} - -function noop () {} - - -/***/ }), - -/***/ "./node_modules/setimmediate/setImmediate.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { - "use strict"; - - if (global.setImmediate) { - return; - } - - var nextHandle = 1; // Spec says greater than zero - var tasksByHandle = {}; - var currentlyRunningATask = false; - var doc = global.document; - var registerImmediate; - - function setImmediate(callback) { - // Callback can either be a function or a string - if (typeof callback !== "function") { - callback = new Function("" + callback); - } - // Copy function arguments - var args = new Array(arguments.length - 1); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i + 1]; - } - // Store and register the task - var task = { callback: callback, args: args }; - tasksByHandle[nextHandle] = task; - registerImmediate(nextHandle); - return nextHandle++; - } - - function clearImmediate(handle) { - delete tasksByHandle[handle]; - } - - function run(task) { - var callback = task.callback; - var args = task.args; - switch (args.length) { - case 0: - callback(); - break; - case 1: - callback(args[0]); - break; - case 2: - callback(args[0], args[1]); - break; - case 3: - callback(args[0], args[1], args[2]); - break; - default: - callback.apply(undefined, args); - break; - } - } - - function runIfPresent(handle) { - // From the spec: "Wait until any invocations of this algorithm started before this one have completed." - // So if we're currently running a task, we'll need to delay this invocation. - if (currentlyRunningATask) { - // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a - // "too much recursion" error. - setTimeout(runIfPresent, 0, handle); - } else { - var task = tasksByHandle[handle]; - if (task) { - currentlyRunningATask = true; - try { - run(task); - } finally { - clearImmediate(handle); - currentlyRunningATask = false; - } - } - } - } - - function installNextTickImplementation() { - registerImmediate = function(handle) { - process.nextTick(function () { runIfPresent(handle); }); - }; - } - - function canUsePostMessage() { - // The test against `importScripts` prevents this implementation from being installed inside a web worker, - // where `global.postMessage` means something completely different and can't be used for this purpose. - if (global.postMessage && !global.importScripts) { - var postMessageIsAsynchronous = true; - var oldOnMessage = global.onmessage; - global.onmessage = function() { - postMessageIsAsynchronous = false; - }; - global.postMessage("", "*"); - global.onmessage = oldOnMessage; - return postMessageIsAsynchronous; - } - } - - function installPostMessageImplementation() { - // Installs an event handler on `global` for the `message` event: see - // * https://developer.mozilla.org/en/DOM/window.postMessage - // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages - - var messagePrefix = "setImmediate$" + Math.random() + "$"; - var onGlobalMessage = function(event) { - if (event.source === global && - typeof event.data === "string" && - event.data.indexOf(messagePrefix) === 0) { - runIfPresent(+event.data.slice(messagePrefix.length)); - } - }; - - if (global.addEventListener) { - global.addEventListener("message", onGlobalMessage, false); - } else { - global.attachEvent("onmessage", onGlobalMessage); - } - - registerImmediate = function(handle) { - global.postMessage(messagePrefix + handle, "*"); - }; - } - - function installMessageChannelImplementation() { - var channel = new MessageChannel(); - channel.port1.onmessage = function(event) { - var handle = event.data; - runIfPresent(handle); - }; - - registerImmediate = function(handle) { - channel.port2.postMessage(handle); - }; - } - - function installReadyStateChangeImplementation() { - var html = doc.documentElement; - registerImmediate = function(handle) { - // Create a - diff --git a/src/build/static/image/Richard_Smith.png b/src/build/static/image/Richard_Smith.png deleted file mode 100644 index 6fc8b9b0d8f1ff6d2aa2ba0414a597b9a9f3aef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9766 zcmV+>CfV7EP)I1^s+WH6mpbR^$%8>A0p?&+lthbBlt@t&vvw6I$+9dRiqbg_Fb=&A>y`FM zHmzfs*0D_zVlXAaqDW8x34$ULi8R1qa-Qy<>G13R<(De>k6&Xj)6-*neRlVr^QM3A zRlTZrzjf=@t$S~cc=+LmxtjLx-GMptUG(V(>DFc`f)eq{5gJ3cB1}eH8p97mJZBKy zrztL8q$0+6`s5n-KX#T2ZAmlhFgF!Z_9BLc#sNW+^e6=ZPB{Mfub-&^RiF&iH@j{E z?c3&tSJT{(7J!t5N-;GYQx8K#Ua-*YU`i3o>kaZkb71!l=7)zd#&TfK9-e*nDaJ=? zOizyU+Sk9HoqOicB|%iKGPUPUtQi3*kaE!J=RWs20KBU~2!a43BV0cvh-VnRL| zX9RwV$rri#mV|yT+5gI0xp4d_Sckkpzt;d!_Dd)Y9g&b1ZTvi?l($KTZzD}Aj898k zF-mXs6xI2ID606AyE*jbM_I`gm%9lIom2pC20j412iS2Vrf)z2aL4BL619%6b{_`5 z2K>d&>5;C<3%n?zopiB6(pul3-|12DJSK;0tTuZbJ$;UFa*o+V5eG3g?_<1Se5tPM z^csLFV|A=Zuy%=hR8Y+hkcs_>$U}NDMKXd2r!b~ZE=%-reEF;2;=w15@YF&pTIi&| z3Y-8Q0evl*wUDCY33quwgZNj+9<4^v8 z_C|w#YaLGsoRv6F-~i_w&bjS@2m^(~Ap4i0-KTTr>$Fe)DelCh#Cj2T@;h`%s7&vG zyvuVZpXby6*T0L7t~7rKI0t+d*!TYu^EaX@@GHQvBNyBEJ#l7j-=2{gqrPOO8sXW3 zgZp+9MIN3C0 ztmckdv>#8+qO-pupDh#lKJ#yQ@9^$7fB27q_y3QXw&abAhS#y7MNt-f6RQdV-@TPjTm^RjRLm8$o&nh*3St zM(j~D7Nu9|E-Nv~e{k|Fb5mm+JARJa-rPY}%UB0Oh-+TFqAZP9AcaF_O#-GoJz zUFH67eglNW89n%>tMsM>C{^kdp2WwYn|*9Ci%n)oR~m{ML3o9eMFEA9(NE zdHj11F*;PIwZ6vc@)F%%m#`G!`yN)CLC4NwO%BFxj)TKF3r2&J>x+ zc%>?q03Q!+E+exIyoIy8`W?UVA>f~F*Tc8J^#C7v|9e<(tbof&+N%uLhX`aqJuG3h z##zwXfO9Az@q|NBU`;vz#AG;~V~PT+Gq4(rfxw%~UM@)v)Ik^vgv&8IM-hZo*^4|ku zYs+7`?+g5+-}x=D24^g_xPo>@{OmH&A=mMNWD1oyUTNGGR;Ov00 zfu!UJtHD}?bKoSxTAVEg44MM0K{$=DgDK>!!8(HzhW_OMDP9fv!~t^gdsS6-RR14d9VyQ6i!*RH-hwn zdx4v_wv?nj{`v3yTf8X7@zw#j8clC&{tLqCm7fZ0Ln)O zC0s1AaRtw-AW?t=>jqNq9M+h+Yb{n6*i8TjYk($cEO6=ZKi^Jg zDBuep`<36SxNY=_tkr5)Zj3R^&(GZr{KnRbrpRe-Y_Q&H;zu!+N`*YlvBt5!-lSTs zGFGcGH9kySj&L{xpgbQ>c{pitQs9J#5D}6Jo*P0@Mfd@D5l$#T<6IxB`$%hX&fuIw zNdY*l)rca)6d5K@!5E|*0HKXRDM_+$gd^YnFWX7QPT(^_`Uqzb?&YnPl=9^pV+>Nt z&u*f3g`9INFP>%N+)?swizLY)*Yw&Q7FX6-yxd@YqeGxzW@?V=sjX;SIPelkXL8u?1P$$GHrXcPM&2@@^NGrMP0#*s>O9VW8Rt&J8YM2W?~XK^+kw z{Sp#|a+bgq6h?!yq`7AC!g=od6r+_2)yfcIRK*w%r6g%uAf#gH+yYV?R##T34%NtnqC7Ip z#KbJ4Bcnt?h$$q>4{=ff1F;8((3^_Z8ic0?wuaSMYXOZEfaf7yfz>Iw6{NGsR*<5=tHcGh|7 z*~83tTkP34$J9`Tv}K8gCeXr1Ym4W=7Xu}jcROTxf)ikHWO;@kD8kS~T8p+4V+u@` zVQ?h5!A1pt`Db6{=Rf)D)av!C*()>fr~JtkAb@uO;nlUQwe)&j0F1RL<%8>SY56iw zeETVeChFXF-~cBsUZUS@(rm7v(*#`<4Am>_o0})ga$3y}lfw~Sk>Vqn7_HN6_IdL8 zQ#4u$6JvE=JaUf4dXs%SXBi(V6Q>px__(BpaG<=HrAsR`);B1$CN~=C`IPHr%GDU( zS4@voAg*F`hVOZ3D`|Dxtgm;N-!;zzfBENp;3J>dI@Uk46^OTOtN#Gtc&zwR@;3t5s_z_?>z90?SOd8J@?#Gy7%6D6K~h9Jz_f` zy4^0;T9n!}DV!ki%7mUzBy(PI^8`y5FH)=3*)uiD%tQ^5wt3Zo9X$E;3(Srmc zESx*ba<8Bl#++R5(#kZwtl$-+B}&Fn4|C;8g_UHZmSs??~D zj^Tw>f~-kWIA$isDGEnnQtFjaO2fk(Ilstvo;l3qXv`~a-h&rZF;dNnP$D0k@j-RCZjr3C!=6&tjhe@G)2j4`j>#XYimiCWo)&_t#vqZ_P_QnntF+5W0|V( z={u;`%M`|fGemJjJ4qQG8)fJ2S$1!%v%IuQ==+o_6;_jkzL1PnD{QnAZu`0S5Ew@< z>+sztp5g-^`T+Y6-ikBwWm&da^sW zttCZKZ2l5g{`xv62V`X&FRoCl4zp`wf`-l+E=Ra5N1_o2b!!O1yre!eXj< z-Ov3fr`OsnURp=@42{bdIeh*sZQbM*x9=w&uFy*QWX94qhH8;eYP8vR%N@*(O>76m z{+EE5-CCmcwVod5>>vQ-d^9nt95OQ%@vh0cxtJLIQVCb&NY9|t478yfcnpUT)#?aV zNO~EpwQ|}^tAt_547mtRuE4PBl|5z>t(dl1fBrt(ET3Okvh9~&vWGY z=a`Hm=BEy@BP%$0>=eh&p2jl&T*w;DYYaRm&>l!lVS`Uv@9=gzYMw28PxY7_p7MRX5{XC%>M}R;ZP)=YAgH8+j ziAEL%-x)kVz*89}>*K6PWvGT;>2P{sfl{T6_I!|#=RHc1LV5x#U}&h$uKjzc57)W4 zx=I`b-17Rn$a)FgjV8hucu|ZW`S^k4nWvuP?wb$L+OUk4OWZU+O(+!m-*^|@%yNzE z`emwm4E#aY(bcPl6AI}xfznW_6HV==SUb(`eY<$}# z&xwX{{!VPmB`=g3G-YGrnM`QldULPj$~Ol0x19hk=ghZha_(co_&G zuz)WzjDs8nVT^W~c9x@jNxRd=_k0Wn;Vf85rZbe2XsZdLh{73kp%H<@$;y_7(>*mzT70Pi1Weud7!e}B3z8?}O@RUF)N3Ja+^%Bb)P3rX; zho1Wmckh`atk>B0ciu@7j!+UlLSE;K2IzZ0YwOc1)+C@+P9YpYRzkThsjE_{4kMk$ zNslNB=qEXaDL@;7P$7gwV31M}_yNXPN}i7l0<429&xm{vDJ7Q|R><-VHr7|kI~ype z2umUL(Gl`IW4vA?o*p6T=2X3a*bng%hj5Z+r$`n>S; z^LSCfLkr8y?%v5wyCw+($;{LgVH~6Lf+#4HnVdAsNwPk@0&Ex~M8d%xlc*@5yk|eD z^YFb8-@5B!o2lC3Fsp z#VLU>V5J&_{Dnj+iI9pwDL^8m2P$NIW|nuo_w8I-yv)&)XUV!L7cZ@H_S{)q;4{B# zAAZqhVz|us#5k2|mFDtgHa416OA!<~+GvtOkQ1U5NY6tFO}$p8r>cm`5IH_&z>mVM ztOC3M17-Q*){-cS0MHbKB7#mEKPXr!0$k+t!ud8|c*OG511)~~O|u*vD)4niU>rdK zMioc`oB)Tz+YDJ0u7pBhtORLEg~e4OruWPeMLw$wmk~BaYe%_OWo&Aa;aW_&662R+ zWI4twg%rA=*VRbpNUjqQ9 zIETnGl&{I0py;iG6j)~oV-Hg(My4m(IXBPb%rtqPgA|O8kD|54DurJu(=H5gEoOaX z4P98IlsHdPXp2%3i6b`|u_=*inB2LCMgZ0tJR(ZvZPP@a0`N|qIBxeHxakoFIR!6I zk8;Gu_rJ^h`30&=E4&~#xcyac;I8>uUOaq^qGov2t8b!KD(F+7)aJ%4&!_}t`bkRU z9Ln=>+E5f-I_-6&49N=yK^>_ENu@(WOzob*bS!sH%z)Npwm^~7Xm{x5IqhCbr6duy zAPN+DZpd_wa2}~Hh{`e6Xv&^sLWuCt#Lw76dID0 zAdE1cM=m^)c8|2LsRU)56I3fTigur~=i02VuTw9ViM=w$ICTFaHj1fDPSZ1*X1j^d zUBsb(rw9t5-kB|!Ab7&14J@Cd$jFjv6S`iALa{aoU1i+*B-g|Esz}pOL{2B0v zz?J2~4~a@Bmh23Nh-*U}?P>B}pN=SDw2v_@vZA=M z@(3vjN+Ih>&U&lQnX{K^Zlu^k(d%ZE9E_IgwU7NGJD)kqxxg{{?I+mPIL1Hz?O){kkDs8|XtA<%nZ`=Su=OZf zO?u%7)l3lt4(CIXWrNki^Qe^!mlivmI(?F(r`Jgf@Vo$%L1aOPy`iB4hliJ z9&cwzY3JOZz6^vjbR!4wAGZQg{*fPHcxZ}j=>@tfB{{!DRc5^D?ka)Z&%gh|cNp`A z$&6(+%c_Y@+z0s8eCdk zA;~gU(-z%Mf-MBfT9$i#7F%oh%CKkOPNr&#QsC1n22rg+j)kB!GD{McF`2~AJP-yU z1tVia+eyP;o;h>o(iI^3%2G=0OVi^7aNtT+At+DO@VWr;g) z+C`;0f*+PJg{GPG=&v>Db~|*6jPpy2#3f1A?Gh?O7#UNp3_KDOi|OCGI`ChOU|~4ul6!pFaKls~!yvXAE1$sI~dkPav>NBGRV^yZ+rx_g?#<@Xsy_2M*xy5t};%d^|t#5g8i90_1PpF70vqu*Bub=-< zi2Mi>=6NcjgO^!?z$Z01>#ZJZy*~ZIl4{3BC&Orkl7pnvLT4CbamEt*f-v^zXI&b- z6>?I%NFquW8|27RPMT~`5v-tSK_XGEDtvGS>9k|cj!{gR*as2{C>kQrH zlc*>llU3#`3eV=O_j_DgZ*gg(%W6;4Of;Q#k8Zb5zu!e{`XnPiKq-&RIMO_)6qo4a z3FlWASrmKgoC(AuiGVUwTMw{tU6XN_gQYVX(c&hR?o5ZG6U-@co{nfw6hKq5LKncb4zTMkx zw*h|r#EBD&aJ^sF^R)-sQ7WKNnxY(Y`uW4ld+)gIqrd}fNh5mmPrjF*|Nck#cYpjP zmiiv27dLqAh)))J%#IDSt|1jEMQ&N#Xwu39%Dn_vt5B*Y3|mXJRED5VIj&KyP9Xxx zw6LH&Y@T2WO_ue^vjnYEl&9!)+GL$R%WEALSDUo*9O}dT)W?4b>mmvRbt3ld-92#g zT~D7oapJ`1w<`cpzw&o~87UQgli~#t=T4j^szzMAaQe*b?9Lqcv8!K@Qu1SOdnf%Q z;mN~Cm^4l9ny6D?iApiKDM)fdqthp|(AN&FE!G<9YwGN3Bbd#Ld9JrY@GfYp8 zGrwc@M$=&d_{kF|PNX-Ih5--;w9|xv&)UiY6XV02K6Q!*zVTONgG8)fXAmTQ@79+; z{^5`Csyko7(_i>!*v1kyslcS{8>`XjrEFx7Y3Oz{j8Q!C;(3BnmBsZkw=^>j?3Fm< z5V0jHl?N{Dq)DbzT8$M(M}}B$YtCF);HhI5S>DK4Y4<^ANSCtbz(H=>zlY(W`qoc- zi7o>_e(cz>g{ueg>c3Z>A3u7C70)Y4me8dO7{Pz&Sx2`RpF6v#(lWer}eju@P$J zm{58+YYC;Hkdn$sjoiTTORKza@+?nX*r3(xF_d)~A1?C~AN$|=-+ucaqqesi0WJb> zJ9g~Yu^Y<)eEG{?9su#$SKSHLu(G;LwOj`0&_+`f7V9k5ScHVr7giMTe>0GfZ7J(E zIrXjkc<$?8q0vgY+-Y-uwasdhv(kgrW{1KFDxP4^XoZ^ZQ;&S6hld!7L)KPTnH;K8 zAD_bbJ}bS9qYF!%TUleZoe&B5$j`o?kNo{lGrRA)*!9))0`RV*M~_~(!F0JEh@G?J z_)1WzmN9vO)|#x)1Yty$7ijASUH51xJK_~?!UoaYn1Q_aJz)0XRR;|$NXS9=yg>Fh)J7#vw^8WY#4DbKg zCz#oJUCeqb-3R>gv17-(&b_=u-UyH@K*HCXKsL4dIWW6U6Mip3$p z2^N=E?qF~R^Nwv>zlxg6iyVIZF@E^{?{VnaA9CUR8BVXXX{I?sDU5ZLLPa1zN*`e? zL$x}0+;ul^{M&Eg^>6tRZhz$~Z)7T8OSHAKU0Hif~u#+na3SD4~Ax*Q*MkGoNLUTe5;uF?c zq_Q|s;3U+C>KE!06CVR^20q6&vDE($=zG9V0i$MgGA1cGdN(jt-brdK&OB&0$(f%aWeHQ)GHqKN(4gi6L0?sKKaRCK}jDWByO7{ zja%=PQdcBG9NasNwFaU5D=9+*)LsH&5UMK*jZ{8n^LfAD0~sNOKuL%12Ph>_Qi9Wr z_?G9-H%1tk=zohrp7-ti&*_s4I1M}td>8ocKX~K8Q+;H1GNWi@hR;56Y=*)A zA~4S2U~YxMbZP^AU=cX~Yj^H2rBG4X4AW%}*86>$Nsf^Mi3X=|&eH4kadE`@y5XZA z{wP2F(;ws=?|28*Y8B7-aYDdmpy}Eq+L!6S0gy-m66i?CYybcN07*qoM6N<$f{;_3 ADF6Tf diff --git a/src/build/static/image/favicon.ico b/src/build/static/image/favicon.ico deleted file mode 100644 index b23103d069cc626457356c8c2c149e65145ff3a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3182 zcmcJRTS!z<6oz-bn2ruiNJSS@D(GT8RP<8RL!m`PLOmE%1mROPYMPf&(`>TL%)FN4 zWo%NBN|P`$lZ+rLLPVj5us|U)j4octbZqsnefANJn$8($OKly#8JMi{cqS=8Bui$HsHc%(k4Xpf>52BoSj zp^ng%|M88Q`bOhsCNgb)SzxA1wngMh7Bj80ohDq&r5=lE zk$*>v$U(dU<~68{BDXf1GcuU%EbEl(X%UwZ^T8^FilGu2V-B?$bTXc15f{PAg9^YX zqK&KT6qC6{P@!=%FPXb{xG6QUjcRMU!OESQ-@u1aSv5B1nZ~_Jj?8D2p4>ruBO7RP z@~0Q)KR;TxqFC*h48*hGU6`8V^a^c#3*~sUah*qgHigbFn4b2}-_w$wpe_|kQIYp* zwwh-dZCF)Dov#LQCYvzNQaKil=Rh9sZ60SD9X)95%yxAS;`}8;+*eOR38+s|Yv@GO z_A2jJ=4sd05lfJFMzZuX%s!7=`@GI^e4O8n+~1fL3)yj zT_JlQ_a}c5uf#s7c*llbI)Lghc&>T=c{Q=SiRy^N~S(OULSvP zLi){}bMcSN=%~AjbsQe0sArbWt5JScH1zGqjQWX*N#rw+`!4r;UK6dB*I(n>Y5V4x z@7dgtin0}f+!e05mKV<*cJtI_I{*Ltj=l^&71uMaSSO5S3 diff --git a/src/core/protocols/Index.protocol.js b/src/core/protocols/Index.protocol.js index 72bd7969f..6227ef444 100644 --- a/src/core/protocols/Index.protocol.js +++ b/src/core/protocols/Index.protocol.js @@ -44,6 +44,7 @@ const factory = (name = '', utils = {}, eventFormer = null, ...args) => { return prepareEvent(eventFormerCopy(res)); } } + console.log(name,) return { name, ...utils, diff --git a/src/core/protocols/Validator.protocol.js b/src/core/protocols/Validator.protocol.js index fae615d81..2e50d4649 100644 --- a/src/core/protocols/Validator.protocol.js +++ b/src/core/protocols/Validator.protocol.js @@ -1,19 +1,19 @@ import * as protocols from './Index.protocol'; -const isCorrespond = (x, num, name) => ( // TODO: Rename variables , x? что делает эта функция?? Если вернет null? +const isCorrespond = (x, num, name) => ( x == undefined - ? false - : (x.t == 106 ? false : (x.v.length === num && x.v[0].v.toLowerCase() === name)) + ? false + : (x.t == 106 ? false : (x.v.length === num && x.v[0].v.toLowerCase() === name)) ); const validate = (res) => { - for(let protocol in protocols) { + for(let protocol in protocols) { let node = protocols[protocol](); - if(isCorrespond(res, node.len(), node.name)) { - const response = node.decode(res); - const event = node.eventFormer(response); - return { + if(isCorrespond(res, node.len(), node.name)) { + const response = node.decode(res); + const event = node.eventFormer(response); + return { response, event } diff --git a/src/core/resource/messages/utils/FormatConverter.message.js b/src/core/resource/messages/utils/FormatConverter.message.js index 8d96ff4e1..406ee8f0e 100644 --- a/src/core/resource/messages/utils/FormatConverter.message.js +++ b/src/core/resource/messages/utils/FormatConverter.message.js @@ -1,12 +1,16 @@ import { decode, convertToBert } from 'Core/bert/Converter.bert'; const formatter = (packet = {}) => { - const bert = convertToBert(packet.payload); - try { - return decode(bert); + const bert = convertToBert(packet.payload); + try { + return decode(bert); } catch(e) { //notify store, user, server } + + + + }; export { formatter }; \ No newline at end of file diff --git a/src/core/sagas/Auth.saga.js b/src/core/sagas/Auth.saga.js deleted file mode 100644 index 19285034f..000000000 --- a/src/core/sagas/Auth.saga.js +++ /dev/null @@ -1,72 +0,0 @@ -import { fork, call, put, takeEvery, take, takeLatest } from 'redux-saga/effects'; -import { getProvider } from '../services/MqttClient.service'; -import { authUtils } from '../bert/SignatureGenerator.bert'; -import { setupClientEntry, setupDevEntry } from '../store'; -import { binPayload } from '../../../tools/ErlangDebugger.tools' -import { - actions, - actionsType -} from '../resource/Auth.resource'; -//worker -function* authHandler(action) { - const { phone } = action; - - const client = getProvider(); - if(!client.connected) { - return; - } - try { - const encoded = authUtils.encode({ - "type": "reg", - "token": "", - "phone": phone, - "client_id": setupClientEntry(), - "dev_key": setupDevEntry() - }); - const data = yield call(client.send,'events', encoded); - yield put(actions.codeRequestSuccess()); - return data - } catch(e) { - console.log(e); - } -} - - -//function* authVerifyHandler() { -// -//} -// -//function* authCompletionHandler(action) { -// let { firstName, lastName } = action; -//} - -//watchers -function* authRequest(params) { - while(true) { - const action = yield take(actionsType.CODE_REQUEST); - const token = yield call(authHandler, action); - } -} - -function* authResponse(params) { - while(true) { - const data = yield take(actionsType.SERVER_CODE_RESPONSE); - yield put(actions.codeResponseSuccess(data)) - } -} -//function* authVerify(param) { -// while(true) { -// const action = yield take(actionsType.PHONE_VERIFY_REQUEST) -// } -//} -// -// -//function* authCompletion(param) { -// while(true) { -// const action = yield take(actionsType.AUTH_COMPLETION); -// yield call() -// } -// -//} - -export { authRequest, authResponse }; \ No newline at end of file diff --git a/src/core/sagas/Connector.saga.js b/src/core/sagas/Connector.saga.js deleted file mode 100644 index 15ac54288..000000000 --- a/src/core/sagas/Connector.saga.js +++ /dev/null @@ -1,21 +0,0 @@ -import { takeEvery, takeLatest, fork } from 'redux-saga/effects'; -import { effects } from 'redux-saga' -import { providerEventChannel } from '../services'; -import { actionsType } from '../resource/Init.resource'; -const { call, put, take } = effects; - - -const mqttSaga = function* (action) { - const socketChannel = yield call(providerEventChannel, action); - while (true) { - const eventAction = yield take(socketChannel); - yield put(eventAction); - } -}; - -const connector = function* (params) { - yield take(actionsType.CONNECTING); - yield call(mqttSaga); -}; - -export { connector }; \ No newline at end of file diff --git a/src/core/sagas/Root.saga.js b/src/core/sagas/Root.saga.js deleted file mode 100644 index 3d6c58016..000000000 --- a/src/core/sagas/Root.saga.js +++ /dev/null @@ -1,11 +0,0 @@ -import { fork } from 'redux-saga/effects'; -import { connector } from './Connector.saga'; -import { authRequest, authResponse } from './Auth.saga'; - -function* rootSaga() { - yield fork(connector); - yield fork(authRequest); //TODO: ??????? Move to auth saga - yield fork(authResponse); //TODO: ??????? -} - -export { rootSaga }; \ No newline at end of file diff --git a/src/core/sagas/index.js b/src/core/sagas/index.js deleted file mode 100644 index beb1f8347..000000000 --- a/src/core/sagas/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import { rootSaga } from './Root.saga'; -import { connector } from './Connector.saga'; - -export { rootSaga }; \ No newline at end of file diff --git a/src/core/services/MqttEventChannel.service.js b/src/core/services/MqttEventChannel.service.js index c24df32cd..2473bce75 100644 --- a/src/core/services/MqttEventChannel.service.js +++ b/src/core/services/MqttEventChannel.service.js @@ -10,7 +10,6 @@ import { initSupplier } from './MqttClient.service'; import mqttConfig from '../configs/MqttInit.config'; import * as eventTypes from '../configs/MqttEvents.config'; import { supplierActions } from '../resource/supplier'; - const bufferSize = 100; const supplierEventChannel = () => eventChannel( @@ -35,7 +34,7 @@ const supplierEventChannel = () => eventChannel( //boundEventHandlers.publish(topic, message, packet) }); client.on(eventTypes.PACKETRECEIVE, function (packet = {}) { - if(!packet.payload) { + if(!packet.payload) { return; } const processedResponse = formatter(packet); @@ -43,6 +42,8 @@ const supplierEventChannel = () => eventChannel( boundEventHandlers.serverResponse(event, response, packet); console.log('PACKETRECEIVE', packet); + boundEventHandlers.serverResponse(event, response, packet); + // put(event,response); console.log("PACKETRECEIVE", event, response); }); client.on(eventTypes.PACKETSEND, function(packet) { diff --git a/src/core/store/Configure.dev.store.js b/src/core/store/Configure.dev.store.js index 708ce6dd7..f7e04abec 100644 --- a/src/core/store/Configure.dev.store.js +++ b/src/core/store/Configure.dev.store.js @@ -6,9 +6,10 @@ import logger from 'redux-logger'; import trottle from 'lodash/throttle'; import { STORAGE_NAME, SAVE_TIME_DELAY } from '../configs/BrowserStorage.config'; import { crashReporter } from '../middlewares' -import { rootSaga } from '../sagas'; import { rootReducer } from '../resource'; import { rootSaga } from '../resource'; +import { browserStorage } from './index'; + const configureStore = () => { const sagaMiddleware = createSagaMiddleware(); diff --git a/src/pages/NinjaApp/NinjaApp.js b/src/pages/NinjaApp/NinjaApp.js index 7a3fafa25..78fec5b10 100644 --- a/src/pages/NinjaApp/NinjaApp.js +++ b/src/pages/NinjaApp/NinjaApp.js @@ -14,6 +14,7 @@ const styles = theme => ({ }) + export class Dashboard extends Component { constructor(props) { -- GitLab From 6e1ea5714c24c9079db6b766666366995be1947a Mon Sep 17 00:00:00 2001 From: Segeydev Date: Mon, 26 Feb 2018 14:52:54 +0200 Subject: [PATCH 7/9] merge conflicts --- src/core/bert/SignatureGenerator.bert.js | 3 --- src/core/configs/MqttInit.config.js | 4 ---- src/index.js | 2 -- src/modules/index.js | 1 - src/pages/App/App.js | 6 +++--- src/root.js | 2 +- src/routes.js | 2 -- 7 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/core/bert/SignatureGenerator.bert.js b/src/core/bert/SignatureGenerator.bert.js index 215db3660..434a3ec29 100644 --- a/src/core/bert/SignatureGenerator.bert.js +++ b/src/core/bert/SignatureGenerator.bert.js @@ -1,6 +1,4 @@ import { utf8_dec, utf8_toByteArray } from '../utils/Utf8.util'; -<<<<<<< HEAD -======= import { uc, ar, @@ -14,7 +12,6 @@ import { run, big } from './Converter.bert'; ->>>>>>> wip function clean(r) { for(var k in r) if(!r[k]) delete r[k]; return r; } function check_len(x) { try { return (eval('len'+utf8_dec(x.v[0].v))() == x.v.length) ? true : false } diff --git a/src/core/configs/MqttInit.config.js b/src/core/configs/MqttInit.config.js index 4343c1455..abc5e89d1 100644 --- a/src/core/configs/MqttInit.config.js +++ b/src/core/configs/MqttInit.config.js @@ -14,10 +14,6 @@ export default ({ will : { topic: 'version/2', payload:'version/2', -<<<<<<< HEAD qos: '2' -======= - qos: 2 ->>>>>>> wip } }); diff --git a/src/index.js b/src/index.js index 7240844dd..c98a85ddb 100644 --- a/src/index.js +++ b/src/index.js @@ -13,9 +13,7 @@ require('./favicon.ico'); render(
-
, - document.getElementById('app') ); diff --git a/src/modules/index.js b/src/modules/index.js index da9641796..2e5a0197d 100644 --- a/src/modules/index.js +++ b/src/modules/index.js @@ -3,7 +3,6 @@ import { combineReducers } from 'redux'; import Home from './Home/Home'; import Dashboard from './Dashboard/Dashboard'; import Chats from './Chats/Chats'; - import { AuthInit, CompletionAuth, diff --git a/src/pages/App/App.js b/src/pages/App/App.js index eb114ee57..ced4fa4f9 100644 --- a/src/pages/App/App.js +++ b/src/pages/App/App.js @@ -1,6 +1,6 @@ import React, { Component, PropTypes } from 'react'; import { MuiThemeProvider } from 'material-ui'; -import {createMuiTheme} from "material-ui/styles/index"; +import { createMuiTheme } from "material-ui/styles/index"; export default class App extends Component { @@ -28,10 +28,10 @@ export default class App extends Component { } }, }); - console.log(theme); + return ( - { this.renderChildren(this.props.children, {}) } + { this.renderChildren(this.props.children, {}) } ) } diff --git a/src/root.js b/src/root.js index c0ac63af8..ecc34e77f 100644 --- a/src/root.js +++ b/src/root.js @@ -18,7 +18,7 @@ class Root extends Component { return ( - { routes() } + { routes() } ) diff --git a/src/routes.js b/src/routes.js index b00ba59ed..5112accae 100644 --- a/src/routes.js +++ b/src/routes.js @@ -28,8 +28,6 @@ export default () => { - - ); }; \ No newline at end of file -- GitLab From c170aa8ee22bc83ce3e478a6a6a48b28760fb0fc Mon Sep 17 00:00:00 2001 From: Segeydev Date: Mon, 26 Feb 2018 16:01:42 +0200 Subject: [PATCH 8/9] wip --- src/componets/ChatListItem/ChatListItem.js | 3 ++- src/componets/PaperWithDrop/PaperWithDrop.js | 3 ++- src/core/resource/auth/completion/index.js | 0 .../profile/sagas/ProfileInit.saga.js | 1 + .../resource/supplier/data/Supplier.action.js | 4 ++-- .../supplier/sagas/SupplierConnector.saga.js | 8 +++---- src/core/services/ConfigureClient.service.js | 23 +++++++++++++++++++ src/core/services/MqttClient.service.js | 23 +++++++++---------- src/index.js | 1 + 9 files changed, 45 insertions(+), 21 deletions(-) create mode 100644 src/core/resource/auth/completion/index.js create mode 100644 src/core/resource/profile/sagas/ProfileInit.saga.js create mode 100644 src/core/services/ConfigureClient.service.js diff --git a/src/componets/ChatListItem/ChatListItem.js b/src/componets/ChatListItem/ChatListItem.js index dabbea0f7..b0425b62c 100644 --- a/src/componets/ChatListItem/ChatListItem.js +++ b/src/componets/ChatListItem/ChatListItem.js @@ -58,7 +58,8 @@ class ChatListItem extends Component { - + /* remove variant caused error*/ + diff --git a/src/componets/PaperWithDrop/PaperWithDrop.js b/src/componets/PaperWithDrop/PaperWithDrop.js index dc409f2ff..bbaae3179 100644 --- a/src/componets/PaperWithDrop/PaperWithDrop.js +++ b/src/componets/PaperWithDrop/PaperWithDrop.js @@ -36,7 +36,8 @@ class PaperWithDrop extends React.Component { { data } - diff --git a/src/core/resource/auth/completion/index.js b/src/core/resource/auth/completion/index.js new file mode 100644 index 000000000..e69de29bb diff --git a/src/core/resource/profile/sagas/ProfileInit.saga.js b/src/core/resource/profile/sagas/ProfileInit.saga.js new file mode 100644 index 000000000..cd12a9b3d --- /dev/null +++ b/src/core/resource/profile/sagas/ProfileInit.saga.js @@ -0,0 +1 @@ +import { } diff --git a/src/core/resource/supplier/data/Supplier.action.js b/src/core/resource/supplier/data/Supplier.action.js index a1ec509a0..507fe8dba 100644 --- a/src/core/resource/supplier/data/Supplier.action.js +++ b/src/core/resource/supplier/data/Supplier.action.js @@ -7,9 +7,9 @@ const serverResponse = (action, response, packet = {}) => { } }; -const connecting = (time) =>({ +const connecting = (config) =>({ type: actionTypes.CONNECTING, - time + config }); const connected = () => ({ diff --git a/src/core/resource/supplier/sagas/SupplierConnector.saga.js b/src/core/resource/supplier/sagas/SupplierConnector.saga.js index 6680b4aa1..2dbee2be1 100644 --- a/src/core/resource/supplier/sagas/SupplierConnector.saga.js +++ b/src/core/resource/supplier/sagas/SupplierConnector.saga.js @@ -1,6 +1,6 @@ import { takeEvery, takeLatest, fork } from 'redux-saga/effects'; import { effects } from 'redux-saga' -import { supplierEventChannel } from '../../../services'; +import { supplierEventChannel } from 'Core/services'; import { CONNECTING } from '../data/Supplier.constant'; const { call, put, take } = effects; @@ -14,9 +14,7 @@ const mqttSaga = function* (action) { }; const connectInitiator = function* (params) { - while(true) { - const action = yield take(CONNECTING); - yield call(mqttSaga, action) - }}; + yield takeLatest(CONNECTING, mqttSaga); +} export { connectInitiator }; \ No newline at end of file diff --git a/src/core/services/ConfigureClient.service.js b/src/core/services/ConfigureClient.service.js new file mode 100644 index 000000000..51e7ee45d --- /dev/null +++ b/src/core/services/ConfigureClient.service.js @@ -0,0 +1,23 @@ +import mqttConfig from '../configs/MqttInit.config'; +import { setupClientEntry, browserStorage } from '../store'; + +let config, customConfig; + +const formatPath = ({ protocol, host, port, supplier }) => { + return `${ protocol }://${ host }:${ port }/${ supplier }`; +}; + + +const getConfig = () => { + config = { + clientId: setupClientEntry(), + password: browserStorage.getItem('token'), + ...mqttConfig + } +}; + +const setConfig = (customConfig) => { + +}; + +export { getConfig, setConfig, formatPath }; \ No newline at end of file diff --git a/src/core/services/MqttClient.service.js b/src/core/services/MqttClient.service.js index afba22066..ccb3d17ec 100644 --- a/src/core/services/MqttClient.service.js +++ b/src/core/services/MqttClient.service.js @@ -5,8 +5,8 @@ import { topic } from '../protocols'; import { MqttLocaforageStore } from '../store'; import { incomeDB, browserStorage } from '../store'; import { setupClientEntry } from '../store/Browser.store'; -import mqttConfig from '../configs/MqttInit.config'; - +import { getConfig } from './ConfigureClient.service'; +import { formatPath } from './ConfigureClient.service'; let client; const formatPath = ({ protocol, host, port, supplier }) => { @@ -16,19 +16,18 @@ const formatPath = ({ protocol, host, port, supplier }) => { const getSupplier = () => client ? client : null; const setSupplier = c => client = c; -const initSupplier = () => { - - let config = { - clientId: setupClientEntry(), - password: browserStorage.getItem('token'), - ...mqttConfig - }; - - let client = mqtt.connect(formatPath(mqttConfig), config); +const initSupplier = (config = getConfig(), url) => { + if(!config) { + return; + } + if(!url) { + url = formatPath(config); + } + let parentClient = mqtt.connect(url, config); - const xtendedClient = Object.assign(client, { + const xtendedClient = Object.assign(parentClient, { onClose: () => { }, diff --git a/src/index.js b/src/index.js index c98a85ddb..8091cb139 100644 --- a/src/index.js +++ b/src/index.js @@ -13,6 +13,7 @@ require('./favicon.ico'); render(
+
, document.getElementById('app') -- GitLab From 861a8085a73ad48a19afebb6af398fd5a6ca9e45 Mon Sep 17 00:00:00 2001 From: Segeydev Date: Mon, 26 Feb 2018 17:46:39 +0200 Subject: [PATCH 9/9] wip --- src/core/configs/ProtocolHandlers.config.js | 2 +- src/core/protocols/Topic.protocol.js | 4 +- src/core/protocols/index.js | 4 +- src/core/resource/auth/init/index.js | 1 + src/core/resource/auth/login/index.js | 3 + .../resource/auth/login/sagas/Login.saga.js | 20 ++++++ .../sagas/VerifyCredentials.saga.js | 15 +++-- .../resource/supplier/data/Initial.state.js | 4 +- src/core/services/ConfigureClient.service.js | 23 ------- src/core/services/MqttClient.service.js | 64 ++++++++++++------- src/core/services/MqttEventChannel.service.js | 6 +- 11 files changed, 83 insertions(+), 63 deletions(-) create mode 100644 src/core/resource/auth/login/index.js create mode 100644 src/core/resource/auth/login/sagas/Login.saga.js delete mode 100644 src/core/services/ConfigureClient.service.js diff --git a/src/core/configs/ProtocolHandlers.config.js b/src/core/configs/ProtocolHandlers.config.js index 5d70b2471..609e02112 100644 --- a/src/core/configs/ProtocolHandlers.config.js +++ b/src/core/configs/ProtocolHandlers.config.js @@ -6,4 +6,4 @@ export const MESSAGE = 'message'; export const PERSON = 'person'; export const PROFILE = 'profile'; export const ROSTER = 'roster'; -export const SERVER = 'server'; //TODO: в чем смысл? где используется? \ No newline at end of file +export const SERVER = 'server'; \ No newline at end of file diff --git a/src/core/protocols/Topic.protocol.js b/src/core/protocols/Topic.protocol.js index 56222143b..ad93347c2 100644 --- a/src/core/protocols/Topic.protocol.js +++ b/src/core/protocols/Topic.protocol.js @@ -6,7 +6,7 @@ const generateNumber = () => ( Math.floor((Math.random() * config.NODES) + 1) ); -const topic = (prefix = 'events', ...args) => { //TODO: ?? +const buildTopic = (prefix = 'events', ...args) => { //TODO: ?? let pipe = [ prefix, ...args, @@ -18,4 +18,4 @@ const topic = (prefix = 'events', ...args) => { //TODO: ?? return pipe.join('/') + '/'; }; -export { topic }; \ No newline at end of file +export { buildTopic }; \ No newline at end of file diff --git a/src/core/protocols/index.js b/src/core/protocols/index.js index e168f8dda..6d6e3eafc 100644 --- a/src/core/protocols/index.js +++ b/src/core/protocols/index.js @@ -1,3 +1,3 @@ -import { topic } from './Topic.protocol'; +import { buildTopic } from './Topic.protocol'; -export { topic }; \ No newline at end of file +export { buildTopic }; \ No newline at end of file diff --git a/src/core/resource/auth/init/index.js b/src/core/resource/auth/init/index.js index b49c12d8d..fe8b5be86 100644 --- a/src/core/resource/auth/init/index.js +++ b/src/core/resource/auth/init/index.js @@ -8,6 +8,7 @@ const authInitReducers = { }; export { + authInitApi, authInitSagas, authInitActions, authInitReducers diff --git a/src/core/resource/auth/login/index.js b/src/core/resource/auth/login/index.js new file mode 100644 index 000000000..c71d9f18f --- /dev/null +++ b/src/core/resource/auth/login/index.js @@ -0,0 +1,3 @@ +import { login } from './sagas/Login.saga'; + +export { login }; \ No newline at end of file diff --git a/src/core/resource/auth/login/sagas/Login.saga.js b/src/core/resource/auth/login/sagas/Login.saga.js new file mode 100644 index 000000000..be2e0f61d --- /dev/null +++ b/src/core/resource/auth/login/sagas/Login.saga.js @@ -0,0 +1,20 @@ +import { take, call } from 'redux-saga/effects'; +import { getSupplier } from 'Core/services'; +import { setupClientEntry } from 'Core/store'; +import { supplierActions } from 'Core/resource/supplier'; + +function * login() { + const supplier = getSupplier(); + yield call(supplier.close); + if(!supplier.connected) { + yield put( + supplierActions.connecting, + { + clientId: setupClientEntry('emqttd_'), + cleanSession: false + } + ) + } +} + +export { login }; \ No newline at end of file diff --git a/src/core/resource/auth/verification/sagas/VerifyCredentials.saga.js b/src/core/resource/auth/verification/sagas/VerifyCredentials.saga.js index 08843c877..3702356f4 100644 --- a/src/core/resource/auth/verification/sagas/VerifyCredentials.saga.js +++ b/src/core/resource/auth/verification/sagas/VerifyCredentials.saga.js @@ -1,12 +1,13 @@ -import { fork, call, put, takeEvery, take, takeLatest } from 'redux-saga/effects'; +import { all, fork, call, put, takeEvery, take, takeLatest } from 'redux-saga/effects'; import { getProvider } from 'Core/services'; -import { api } from '../../init'; +import { authInitApi as api } from '../../init'; import { binPayload } from 'Tools/ErlangDebugger.tools'; import { sagas as logoutSagas } from '../../logout'; -import { getSupplier } from 'Core/services'; import * as actions from '../data/VerifyCredentials.action'; import * as actionsType from '../data/Verification.constant'; import * as selectors from '../data/Credentials.selector'; +import { login } from '../../login'; + function * verifyCodeHandler(data, client) { const request = { @@ -21,7 +22,7 @@ function * verifyCodeHandler(data, client) { try { const encoded = api.codeProcessConverter(request); - yield call(client.onPublish, encoded); + yield call(client.send, encoded); } catch (e) { yield put(actions.verifyCodeError()) @@ -37,11 +38,13 @@ function * verifyCode() { //call specific action and redirects to dashboard return; } - const supplier = getSupplier(); yield call(verifyCodeHandler, data, client); const response = yield take(actionsType.SERVER_CODE_VERFIY); yield put(actions.verifyCodeSuccess(response)); - yield call(supplier.onReopen); + yield all({ + reconnect: login, + + }); } } diff --git a/src/core/resource/supplier/data/Initial.state.js b/src/core/resource/supplier/data/Initial.state.js index 173fbaad8..74bf59b1d 100644 --- a/src/core/resource/supplier/data/Initial.state.js +++ b/src/core/resource/supplier/data/Initial.state.js @@ -1,11 +1,11 @@ -import { topic } from 'Core/protocols/Topic.protocol'; +import { buildTopic } from 'Core/protocols/Topic.protocol'; const deliveryInfo = (data) => { return Object.assign( {}, { updated: new Date().toLocaleString(), - topic: topic(), + topic: buildTopic(), isError: false, isLoading: false, isSuccess: false diff --git a/src/core/services/ConfigureClient.service.js b/src/core/services/ConfigureClient.service.js deleted file mode 100644 index 51e7ee45d..000000000 --- a/src/core/services/ConfigureClient.service.js +++ /dev/null @@ -1,23 +0,0 @@ -import mqttConfig from '../configs/MqttInit.config'; -import { setupClientEntry, browserStorage } from '../store'; - -let config, customConfig; - -const formatPath = ({ protocol, host, port, supplier }) => { - return `${ protocol }://${ host }:${ port }/${ supplier }`; -}; - - -const getConfig = () => { - config = { - clientId: setupClientEntry(), - password: browserStorage.getItem('token'), - ...mqttConfig - } -}; - -const setConfig = (customConfig) => { - -}; - -export { getConfig, setConfig, formatPath }; \ No newline at end of file diff --git a/src/core/services/MqttClient.service.js b/src/core/services/MqttClient.service.js index ccb3d17ec..16efde278 100644 --- a/src/core/services/MqttClient.service.js +++ b/src/core/services/MqttClient.service.js @@ -3,48 +3,64 @@ import localForage from 'localforage'; import { encode, decode } from '../bert/Converter.bert'; import { topic } from '../protocols'; import { MqttLocaforageStore } from '../store'; -import { incomeDB, browserStorage } from '../store'; -import { setupClientEntry } from '../store/Browser.store'; -import { getConfig } from './ConfigureClient.service'; -import { formatPath } from './ConfigureClient.service'; -let client; +import { incomeDB, setupClientEntry, browserStorage } from '../store'; +import mqttConfig from '../configs/MqttInit.config'; -const formatPath = ({ protocol, host, port, supplier }) => { - return `${ protocol }://${ host }:${ port }/${ supplier }`; +let config, client; + +const configure = () => { + return config = Object.assign({}, { + clientId: setupClientEntry(), + password: browserStorage.getItem('token') + }, mqttConfig); +}; + +const getConfig = () => { + return config || configure(); +}; + +const setConfig = (customConfig) => { + return config ? Object.assign(config, customConfig) : customConfig; }; const getSupplier = () => client ? client : null; const setSupplier = c => client = c; -const initSupplier = (config = getConfig(), url) => { - if(!config) { - return; +const formatPath = ({ protocol, host, port, supplier }) => { + return `${ protocol }://${ host }:${ port }/${ supplier }`; +}; + +const initSupplier = (customConfig, url) => { + let config = configure(); + + if(customConfig) { + config = setConfig(customConfig); } if(!url) { url = formatPath(config); } - let parentClient = mqtt.connect(url, config); + let client = mqtt.connect(url, config); - const xtendedClient = Object.assign(parentClient, { - onClose: () => { + const send = (m, t = 'events', ...args) => { + m = encode(m); + t = topic(t); + binPayload(m); + return client.publish(t, m, ...args) + }; - }, + const close = () => { + return client.end(); + }; - send: (...args) => { - args[0] = topic(args[0]); - const message = args[1]; - if(message) { - args[1] = encode(message) - } - binPayload(args[1]); - return client.publish(...args); - } + const xtendedClient = Object.assign(client, { + send, + close }); setSupplier(xtendedClient); return xtendedClient; }; -export { initSupplier, getSupplier}; +export { initSupplier, getSupplier, setConfig, getConfig}; diff --git a/src/core/services/MqttEventChannel.service.js b/src/core/services/MqttEventChannel.service.js index 2473bce75..df9422fe8 100644 --- a/src/core/services/MqttEventChannel.service.js +++ b/src/core/services/MqttEventChannel.service.js @@ -2,7 +2,6 @@ import mqtt from 'mqtt'; import { buffers, eventChannel } from 'redux-saga' import { put } from 'redux-saga/effects'; import { bindActionCreators } from 'redux' -import { topic } from '../protocols'; //import { Store as MQTTLocalForageStore } from 'mqtt-localforage-store'; import { formatter } from '../resource/messages'; import { validate } from '../protocols/Validator.protocol'; @@ -12,9 +11,10 @@ import * as eventTypes from '../configs/MqttEvents.config'; import { supplierActions } from '../resource/supplier'; const bufferSize = 100; -const supplierEventChannel = () => eventChannel( +const supplierEventChannel = (action) => eventChannel( emitter => { - const client = initSupplier(); + const { config } = action; + const client = initSupplier(config); const boundEventHandlers = bindActionCreators(supplierActions, emitter); client.on(eventTypes.CONNECT, function() { -- GitLab