From d33cb77d264adc9c5fe68bb3d21f53d4c8a81d47 Mon Sep 17 00:00:00 2001 From: AllenFang Date: Tue, 11 Apr 2017 21:35:36 +0800 Subject: [PATCH 001/108] replace react-toastr with react-s-alert --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 0a7abcbad..3366989b0 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,6 @@ "react-router": "^3.0.0", "style-loader": "^0.13.0", "styled-components": "^1.2.1", - "toastr": "^2.1.2", "vinyl-source-stream": "^1.1.0", "watchify": "^3.0.0", "webpack": "^1.12.4", @@ -69,7 +68,7 @@ "dependencies": { "classnames": "^2.1.2", "react-modal": "^1.4.0", - "@allenfang/react-toastr": "2.8.2" + "react-s-alert": "^1.3.0" }, "peerDependencies": { "react": "^0.14.3 || ^15.0.0" From 0ae0f9c3c8d50a799831c52f3359841e1ef5b5ef Mon Sep 17 00:00:00 2001 From: AllenFang Date: Tue, 11 Apr 2017 21:36:28 +0800 Subject: [PATCH 002/108] use default s-alert css --- examples/js/components/App.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/js/components/App.js b/examples/js/components/App.js index f0cf1bec0..418a698af 100644 --- a/examples/js/components/App.js +++ b/examples/js/components/App.js @@ -1,6 +1,6 @@ /* eslint max-len: 0 */ import React from 'react'; -import 'toastr/build/toastr.min.css'; +import 'react-s-alert/dist/s-alert-default.css'; import '../../../css/react-bootstrap-table.css'; import { Grid, From 21afa1b450ad9262682699581f021d522233cc62 Mon Sep 17 00:00:00 2001 From: AllenFang Date: Tue, 11 Apr 2017 22:35:22 +0800 Subject: [PATCH 003/108] replace react-toastr with react-s-alert --- src/BootstrapTable.js | 2 ++ src/Const.js | 1 - src/Notification.js | 41 ++++++++++++++--------------------------- src/TableEditColumn.js | 8 +++----- src/toolbar/ToolBar.js | 17 ++++++++--------- 5 files changed, 27 insertions(+), 42 deletions(-) diff --git a/src/BootstrapTable.js b/src/BootstrapTable.js index d765e78d9..553db7e90 100644 --- a/src/BootstrapTable.js +++ b/src/BootstrapTable.js @@ -12,6 +12,7 @@ import { TableDataStore } from './store/TableDataStore'; import Util from './util'; import exportCSVUtil from './csv_export_util'; import { Filter } from './Filter'; +import Alert from 'react-s-alert'; class BootstrapTable extends Component { @@ -417,6 +418,7 @@ class BootstrapTable extends Component { { tableFilter } { showPaginationOnBottom ? pagination : null } + ); } diff --git a/src/Const.js b/src/Const.js index 19423dd2c..663a1edab 100644 --- a/src/Const.js +++ b/src/Const.js @@ -46,7 +46,6 @@ const CONST_VAR = { FILTER_COND_LIKE: 'like', EXPAND_BY_ROW: 'row', EXPAND_BY_COL: 'column', - CANCEL_TOASTR: 'Pressed ESC can cancel', REMOTE_SORT: 'sort', REMOTE_PAGE: 'pagination', REMOTE_CELL_EDIT: 'cellEdit', diff --git a/src/Notification.js b/src/Notification.js index 5a24d249a..e2ddc1e05 100644 --- a/src/Notification.js +++ b/src/Notification.js @@ -1,31 +1,18 @@ -import React, { Component } from 'react'; +import Alert from 'react-s-alert'; -import { ToastContainer, ToastMessage } from '@allenfang/react-toastr'; +const notice = (type, msg, title) => { + const titleHTML = title ? `

${ title }

` : ''; + const bodyHTML = ` + ${ titleHTML } + ${ msg } + `; -const ToastrMessageFactory = React.createFactory(ToastMessage.animation); + Alert.error(bodyHTML, { + position: 'top-right', + timeout: 3500, + html: true + }); +}; -class Notification extends Component { - // allow type is success,info,warning,error - notice(type, msg, title) { - this.refs.toastr[type]( - msg, title, { - mode: 'single', - timeOut: 5000, - extendedTimeOut: 1000, - showAnimation: 'animated bounceIn', - hideAnimation: 'animated bounceOut' - }); - } - - render() { - return ( - - ); - } -} - -export default Notification; +export { notice }; diff --git a/src/TableEditColumn.js b/src/TableEditColumn.js index 42379c1e1..673acae54 100644 --- a/src/TableEditColumn.js +++ b/src/TableEditColumn.js @@ -1,9 +1,8 @@ import React, { Component, PropTypes } from 'react'; import ReactDOM from 'react-dom'; import editor from './Editor'; -import Notifier from './Notification.js'; +import { notice } from './Notification.js'; import classSet from 'classnames'; -import Const from './Const'; class TableEditColumn extends Component { constructor(props) { @@ -73,7 +72,7 @@ class TableEditColumn extends Component { const responseType = typeof checkVal; if (responseType !== 'object' && checkVal !== true) { valid = false; - this.notifyToastr('error', checkVal, Const.CANCEL_TOASTR); + this.notifyToastr('error', checkVal, ''); } else if (responseType === 'object' && checkVal.isValid !== true) { valid = false; this.notifyToastr(checkVal.notification.type, @@ -106,7 +105,7 @@ class TableEditColumn extends Component { toastr = beforeShowError(type, message, title); } if (toastr) { - this.refs.notifier.notice(type, message, title); + notice(type, message, title); } } @@ -201,7 +200,6 @@ class TableEditColumn extends Component { className={ className } onClick={ this.handleClick }> { cellEditor } - ); } diff --git a/src/toolbar/ToolBar.js b/src/toolbar/ToolBar.js index 3bddefbdd..d8a0b1d37 100644 --- a/src/toolbar/ToolBar.js +++ b/src/toolbar/ToolBar.js @@ -5,7 +5,7 @@ import Modal from 'react-modal'; // import classSet from 'classnames'; import Const from '../Const'; // import editor from '../Editor'; -import Notifier from '../Notification.js'; +import { notice } from '../Notification.js'; import InsertModal from './InsertModal'; import InsertButton from './InsertButton'; import DeleteButton from './DeleteButton'; @@ -65,10 +65,10 @@ class ToolBar extends Component { } displayCommonMessage = () => { - this.refs.notifier.notice( + notice( 'error', 'Form validate errors, please checking!', - 'Pressed ESC can cancel'); + ''); } validateNewRow(newRow) { @@ -93,10 +93,10 @@ class ToolBar extends Component { isValid = false; validateState[column.field] = tempMsg; } else if (responseType === 'object' && tempMsg.isValid !== true) { - this.refs.notifier.notice( - tempMsg.notification.type, - tempMsg.notification.msg, - tempMsg.notification.title); + notice( + tempMsg.notification.type, + tempMsg.notification.msg, + tempMsg.notification.title); isValid = false; validateState[column.field] = tempMsg.notification.msg; } @@ -122,7 +122,7 @@ class ToolBar extends Component { } const msg = this.props.onAddRow(newRow); if (msg) { - this.refs.notifier.notice('error', msg, 'Pressed ESC can cancel'); + notice('error', msg, ''); this.clearTimeout(); // shake form and hack prevent modal hide this.setState({ @@ -321,7 +321,6 @@ class ToolBar extends Component { return (
{ toolbar } - { modal }
); From 7c8a91e8fd5436755ab0dad94e363ccf0b00d380 Mon Sep 17 00:00:00 2001 From: AllenFang Date: Tue, 11 Apr 2017 22:38:42 +0800 Subject: [PATCH 004/108] use react-s-alert default css --- css/s-alert-default.css | 163 ++++++++++++++++++++++++++++++++ css/toastr.css | 201 ---------------------------------------- gulpfile.js | 2 +- 3 files changed, 164 insertions(+), 202 deletions(-) create mode 100644 css/s-alert-default.css delete mode 100644 css/toastr.css diff --git a/css/s-alert-default.css b/css/s-alert-default.css new file mode 100644 index 000000000..9e8360eec --- /dev/null +++ b/css/s-alert-default.css @@ -0,0 +1,163 @@ +/* Common, default styles for the notification box */ + +.s-alert-box, +.s-alert-box * { + box-sizing: border-box; +} + +.s-alert-box { + position: fixed; + background: rgba(42,45,50,0.85); + padding: 22px; + line-height: 1.4; + z-index: 1000; + pointer-events: none; + color: rgba(250,251,255,0.95); + font-size: 100%; + font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif; + max-width: 300px; + -webkit-transition: top .4s, bottom .4s; + transition: top .4s, bottom .4s; +} + +.s-alert-box.s-alert-show { + pointer-events: auto; +} + +.s-alert-box a { + color: inherit; + opacity: 0.7; + font-weight: 700; +} + +.s-alert-box a:hover, +.s-alert-box a:focus { + opacity: 1; +} + +.s-alert-box p { + margin: 0; +} + +.s-alert-box.s-alert-show, +.s-alert-box.s-alert-visible { + pointer-events: auto; +} + +.s-alert-close { + width: 20px; + height: 20px; + position: absolute; + right: 4px; + top: 4px; + overflow: hidden; + text-indent: 100%; + cursor: pointer; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.s-alert-close:hover, +.s-alert-close:focus { + outline: none; +} + +.s-alert-close::before, +.s-alert-close::after { + content: ''; + position: absolute; + width: 3px; + height: 60%; + top: 50%; + left: 50%; + background: #fff; +} + +.s-alert-close:hover::before, +.s-alert-close:hover::after { + background: #fff; +} + +.s-alert-close::before { + -webkit-transform: translate(-50%,-50%) rotate(45deg); + transform: translate(-50%,-50%) rotate(45deg); +} + +.s-alert-close::after { + -webkit-transform: translate(-50%,-50%) rotate(-45deg); + transform: translate(-50%,-50%) rotate(-45deg); +} + +/* positions */ + +.s-alert-bottom-left { + top: auto; + right: auto; + bottom: 30px; + left: 30px; +} +.s-alert-top-left { + top: 30px; + right: auto; + bottom: auto; + left: 30px; +} +.s-alert-top-right { + top: 30px; + right: 30px; + bottom: auto; + left: auto; +} +.s-alert-bottom-right { /*default*/ + top: auto; + right: 30px; + bottom: 30px; + left: auto; +} +.s-alert-bottom { + width: 100%; + max-width: 100%; + bottom: 0; + left: 0; + right: 0; + top: auto; +} +.s-alert-top { + width: 100%; + max-width: 100%; + top: 0; + left: 0; + right: 0; + bottom: auto; +} + +/* conditions */ + +.s-alert-info { + background: #00A2D3; + color: #fff; +} +.s-alert-success { + background: #27AE60; + color: #fff; +} +.s-alert-warning { + background: #F1C40F; + color: #fff; +} +.s-alert-error { + background: #E74C3C; + color: #fff; +} + +[class^="s-alert-effect-"].s-alert-hide, +[class*=" s-alert-effect-"].s-alert-hide { + -webkit-animation-direction: reverse; + animation-direction: reverse; +} + +/* height measurement helper */ +.s-alert-box-height { + visibility: hidden; + position: fixed; +} diff --git a/css/toastr.css b/css/toastr.css deleted file mode 100644 index 8ac8faef8..000000000 --- a/css/toastr.css +++ /dev/null @@ -1,201 +0,0 @@ -/* - from https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.css -*/ - -.toast-title { - font-weight: bold; -} -.toast-message { - -ms-word-wrap: break-word; - word-wrap: break-word; -} -.toast-message a, -.toast-message label { - color: #ffffff; -} -.toast-message a:hover { - color: #cccccc; - text-decoration: none; -} -.toast-close-button { - position: relative; - right: -0.3em; - top: -0.3em; - float: right; - font-size: 20px; - font-weight: bold; - color: #ffffff; - -webkit-text-shadow: 0 1px 0 #ffffff; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.8; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); - filter: alpha(opacity=80); -} -.toast-close-button:hover, -.toast-close-button:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); - filter: alpha(opacity=40); -} -/*Additional properties for button version - iOS requires the button element instead of an anchor tag. - If you want the anchor version, it requires `href="#"`.*/ -button.toast-close-button { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.toast-top-center { - top: 0; - right: 0; - width: 100%; -} -.toast-bottom-center { - bottom: 0; - right: 0; - width: 100%; -} -.toast-top-full-width { - top: 0; - right: 0; - width: 100%; -} -.toast-bottom-full-width { - bottom: 0; - right: 0; - width: 100%; -} -.toast-top-left { - top: 12px; - left: 12px; -} -.toast-top-right { - top: 12px; - right: 12px; -} -.toast-bottom-right { - right: 12px; - bottom: 12px; -} -.toast-bottom-left { - bottom: 12px; - left: 12px; -} -#toast-container { - position: fixed; - z-index: 999999; - /*overrides*/ - -} -#toast-container * { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} -#toast-container > div { - position: relative; - overflow: hidden; - margin: 0 0 6px; - padding: 15px 15px 15px 50px; - width: 300px; - -moz-border-radius: 3px 3px 3px 3px; - -webkit-border-radius: 3px 3px 3px 3px; - border-radius: 3px 3px 3px 3px; - background-position: 15px center; - background-repeat: no-repeat; - -moz-box-shadow: 0 0 12px #999999; - -webkit-box-shadow: 0 0 12px #999999; - box-shadow: 0 0 12px #999999; - color: #ffffff; - opacity: 0.8; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); - filter: alpha(opacity=80); -} -#toast-container > :hover { - -moz-box-shadow: 0 0 12px #000000; - -webkit-box-shadow: 0 0 12px #000000; - box-shadow: 0 0 12px #000000; - opacity: 1; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); - filter: alpha(opacity=100); - cursor: pointer; -} -#toast-container > .toast-info { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; -} -#toast-container > .toast-error { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; -} -#toast-container > .toast-success { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; -} -#toast-container > .toast-warning { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; -} -#toast-container.toast-top-center > div, -#toast-container.toast-bottom-center > div { - width: 300px; - margin: auto; -} -#toast-container.toast-top-full-width > div, -#toast-container.toast-bottom-full-width > div { - width: 96%; - margin: auto; -} -.toast { - background-color: #030303; -} -.toast-success { - background-color: #51a351; -} -.toast-error { - background-color: #bd362f; -} -.toast-info { - background-color: #2f96b4; -} -.toast-warning { - background-color: #f89406; -} -.toast-progress { - position: absolute; - left: 0; - bottom: 0; - height: 4px; - background-color: #000000; - opacity: 0.4; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); - filter: alpha(opacity=40); -} -/*Responsive Design*/ -@media all and (max-width: 240px) { - #toast-container > div { - padding: 8px 8px 8px 50px; - width: 11em; - } - #toast-container .toast-close-button { - right: -0.2em; - top: -0.2em; - } -} -@media all and (min-width: 241px) and (max-width: 480px) { - #toast-container > div { - padding: 8px 8px 8px 50px; - width: 18em; - } - #toast-container .toast-close-button { - right: -0.2em; - top: -0.2em; - } -} -@media all and (min-width: 481px) and (max-width: 768px) { - #toast-container > div { - padding: 15px 15px 15px 50px; - width: 25em; - } -} diff --git a/gulpfile.js b/gulpfile.js index 0e7d3c466..a2a7a0ead 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -46,7 +46,7 @@ gulp.task('prod', ['umdBuild'], function() { .pipe(concatCss("./react-bootstrap-table.min.css")) .pipe(cssmin()) .pipe(gulp.dest('./dist')); - gulp.src(['./css/react-bootstrap-table.css', './css/toastr.css']) + gulp.src(['./css/react-bootstrap-table.css', './css/s-alert-default.css']) .pipe(concatCss('./react-bootstrap-table-all.min.css')) .pipe(cssmin()) .pipe(gulp.dest('./dist')); From 6be946209912b6586cddc175f1d80acbf1fcf6ea Mon Sep 17 00:00:00 2001 From: AllenFang Date: Tue, 11 Apr 2017 22:38:53 +0800 Subject: [PATCH 005/108] prod --- dist/react-bootstrap-table-all.min.css | 2 +- dist/react-bootstrap-table.js | 7472 ++++++------------------ dist/react-bootstrap-table.js.map | 2 +- dist/react-bootstrap-table.min.js | 21 +- 4 files changed, 1660 insertions(+), 5837 deletions(-) diff --git a/dist/react-bootstrap-table-all.min.css b/dist/react-bootstrap-table-all.min.css index 5fbb65ade..483013e4a 100644 --- a/dist/react-bootstrap-table-all.min.css +++ b/dist/react-bootstrap-table-all.min.css @@ -1 +1 @@ -.react-bs-table-container .react-bs-table-search-form{margin-bottom:0}.react-bs-table table{margin-bottom:0;table-layout:fixed}.react-bs-table table td,.react-bs-table table th{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.react-bs-table{border:1px solid #ddd;border-radius:5px;margin:5px 10px}.react-bs-table-pagination{margin:10px}.react-bs-table-tool-bar{margin:10px 10px 0}.react-bs-container-header{overflow:hidden;width:100%}.react-bs-container-body{overflow:auto;width:100%}.react-bootstrap-table-page-btns-ul{float:right;margin-top:0}.react-bs-table .table-bordered{border:0;outline:0!important}.react-bs-table .table-bordered>thead>tr>td,.react-bs-table .table-bordered>thead>tr>th{border-bottom-width:2px}.react-bs-table .table-bordered>tbody>tr>td{outline:0!important}.react-bs-table .table-bordered>tbody>tr>td.default-focus-cell{outline:#6495ed solid 3px!important;outline-offset:-1px}.react-bs-table .table-bordered>tfoot>tr>td,.react-bs-table .table-bordered>tfoot>tr>th{border-top-width:2px;border-bottom-width:0}.react-bs-table .table-bordered>tbody>tr>td:first-child,.react-bs-table .table-bordered>tbody>tr>th:first-child,.react-bs-table .table-bordered>tfoot>tr>td:first-child,.react-bs-table .table-bordered>tfoot>tr>th:first-child,.react-bs-table .table-bordered>thead>tr>td:first-child,.react-bs-table .table-bordered>thead>tr>th:first-child{border-left-width:0}.react-bs-table .table-bordered>tbody>tr>td:last-child,.react-bs-table .table-bordered>tbody>tr>th:last-child,.react-bs-table .table-bordered>tfoot>tr>td:last-child,.react-bs-table .table-bordered>tfoot>tr>th:last-child,.react-bs-table .table-bordered>thead>tr>td:last-child,.react-bs-table .table-bordered>thead>tr>th:last-child{border-right-width:0}.react-bs-table .table-bordered>thead>tr:first-child>td,.react-bs-table .table-bordered>thead>tr:first-child>th{border-top-width:0}.react-bs-table .table-bordered>tfoot>tr:last-child>td,.react-bs-table .table-bordered>tfoot>tr:last-child>th{border-bottom-width:0}.react-bs-table .react-bs-container-header>table>thead>tr>th{vertical-align:middle}.react-bs-table .react-bs-container-header>table>thead>tr>th .filter{font-weight:400}.react-bs-table .react-bs-container-header>table>thead>tr>th .filter::-webkit-input-placeholder,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter-input::-webkit-input-placeholder,.react-bs-table .react-bs-container-header>table>thead>tr>th .select-filter option[value=''],.react-bs-table .react-bs-container-header>table>thead>tr>th .select-filter.placeholder-selected{color:#d3d3d3;font-style:italic}.react-bs-table .react-bs-container-header>table>thead>tr>th .select-filter.placeholder-selected option:not([value='']){color:initial;font-style:initial}.react-bs-table .react-bs-container-header>table>thead>tr>th .date-filter,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter{display:flex}.react-bs-table .react-bs-container-header>table>thead>tr>th .date-filter-input,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter-input{margin-left:5px;float:left;width:calc(100% - 67px - 5px)}.react-bs-table .react-bs-container-header>table>thead>tr>th .date-filter-comparator,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter-comparator{width:67px;float:left}.react-bs-table .react-bs-container-header .sort-column{cursor:pointer}.react-bs-container .textarea-save-btn{position:absolute;z-index:100;right:0;top:-21px}.react-bs-table-no-data{text-align:center}.ReactModal__Overlay{-webkit-perspective:600;perspective:600;opacity:0;overflow-x:hidden;overflow-y:auto;background-color:rgba(0,0,0,.5);z-index:101}.ReactModal__Overlay--after-open{opacity:1;transition:opacity 150ms ease-out}.ReactModal__Content{-webkit-transform:scale(.5) rotateX(-30deg);transform:scale(.5) rotateX(-30deg)}.ReactModal__Content--after-open{-webkit-transform:scale(1) rotateX(0);transform:scale(1) rotateX(0);transition:all 150ms ease-in}.ReactModal__Overlay--before-close{opacity:0}.ReactModal__Content--before-close{-webkit-transform:scale(.5) rotateX(30deg);transform:scale(.5) rotateX(30deg);transition:all 150ms ease-in}.ReactModal__Content.modal-dialog{border:none;background-color:transparent}.animated{animation-fill-mode:both}.animated.bounceIn,.animated.bounceOut{animation-duration:.75s}.animated.shake{animation-duration:.3s}td.react-bs-table-expand-cell{cursor:pointer}@keyframes shake{from,to{transform:translate3d(0,0,0)}10%,50%,90%{transform:translate3d(-10px,0,0)}30%,70%{transform:translate3d(10px,0,0)}}.shake{animation-name:shake}@keyframes bounceIn{20%,40%,60%,80%,from,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scale3d(1,1,1)}}.bounceIn{animation-name:bounceIn}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.bounceOut{animation-name:bounceOut}.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}.toast-top-center,.toast-top-full-width{top:0;right:0;width:100%}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}} \ No newline at end of file +.react-bs-table .react-bs-container-header .sort-column,.s-alert-close,td.react-bs-table-expand-cell{cursor:pointer}.react-bs-table-container .react-bs-table-search-form{margin-bottom:0}.react-bs-table table{margin-bottom:0;table-layout:fixed}.react-bs-table table td,.react-bs-table table th{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.react-bs-table{border:1px solid #ddd;border-radius:5px;margin:5px 10px}.react-bs-table-pagination{margin:10px}.react-bs-table-tool-bar{margin:10px 10px 0}.react-bs-container-header{overflow:hidden;width:100%}.react-bs-container-body{overflow:auto;width:100%}.react-bootstrap-table-page-btns-ul{float:right;margin-top:0}.react-bs-table .table-bordered{border:0;outline:0!important}.react-bs-table .table-bordered>thead>tr>td,.react-bs-table .table-bordered>thead>tr>th{border-bottom-width:2px}.react-bs-table .table-bordered>tbody>tr>td{outline:0!important}.react-bs-table .table-bordered>tbody>tr>td.default-focus-cell{outline:#6495ed solid 3px!important;outline-offset:-1px}.react-bs-table .table-bordered>tfoot>tr>td,.react-bs-table .table-bordered>tfoot>tr>th{border-top-width:2px;border-bottom-width:0}.react-bs-table .table-bordered>tbody>tr>td:first-child,.react-bs-table .table-bordered>tbody>tr>th:first-child,.react-bs-table .table-bordered>tfoot>tr>td:first-child,.react-bs-table .table-bordered>tfoot>tr>th:first-child,.react-bs-table .table-bordered>thead>tr>td:first-child,.react-bs-table .table-bordered>thead>tr>th:first-child{border-left-width:0}.react-bs-table .table-bordered>tbody>tr>td:last-child,.react-bs-table .table-bordered>tbody>tr>th:last-child,.react-bs-table .table-bordered>tfoot>tr>td:last-child,.react-bs-table .table-bordered>tfoot>tr>th:last-child,.react-bs-table .table-bordered>thead>tr>td:last-child,.react-bs-table .table-bordered>thead>tr>th:last-child{border-right-width:0}.react-bs-table .table-bordered>thead>tr:first-child>td,.react-bs-table .table-bordered>thead>tr:first-child>th{border-top-width:0}.react-bs-table .table-bordered>tfoot>tr:last-child>td,.react-bs-table .table-bordered>tfoot>tr:last-child>th{border-bottom-width:0}.react-bs-table .react-bs-container-header>table>thead>tr>th{vertical-align:middle}.react-bs-table .react-bs-container-header>table>thead>tr>th .filter{font-weight:400}.react-bs-table .react-bs-container-header>table>thead>tr>th .filter::-webkit-input-placeholder,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter-input::-webkit-input-placeholder,.react-bs-table .react-bs-container-header>table>thead>tr>th .select-filter option[value=''],.react-bs-table .react-bs-container-header>table>thead>tr>th .select-filter.placeholder-selected{color:#d3d3d3;font-style:italic}.react-bs-table .react-bs-container-header>table>thead>tr>th .select-filter.placeholder-selected option:not([value='']){color:initial;font-style:initial}.react-bs-table .react-bs-container-header>table>thead>tr>th .date-filter,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter{display:flex}.react-bs-table .react-bs-container-header>table>thead>tr>th .date-filter-input,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter-input{margin-left:5px;float:left;width:calc(100% - 67px - 5px)}.react-bs-table .react-bs-container-header>table>thead>tr>th .date-filter-comparator,.react-bs-table .react-bs-container-header>table>thead>tr>th .number-filter-comparator{width:67px;float:left}.react-bs-container .textarea-save-btn{position:absolute;z-index:100;right:0;top:-21px}.react-bs-table-no-data{text-align:center}.ReactModal__Overlay{-webkit-perspective:600;perspective:600;opacity:0;overflow-x:hidden;overflow-y:auto;background-color:rgba(0,0,0,.5);z-index:101}.ReactModal__Overlay--after-open{opacity:1;transition:opacity 150ms ease-out}.ReactModal__Content{-webkit-transform:scale(.5) rotateX(-30deg);transform:scale(.5) rotateX(-30deg)}.ReactModal__Content--after-open{-webkit-transform:scale(1) rotateX(0);transform:scale(1) rotateX(0);transition:all 150ms ease-in}.ReactModal__Overlay--before-close{opacity:0}.ReactModal__Content--before-close{-webkit-transform:scale(.5) rotateX(30deg);transform:scale(.5) rotateX(30deg);transition:all 150ms ease-in}.ReactModal__Content.modal-dialog{border:none;background-color:transparent}.animated{animation-fill-mode:both}.animated.bounceIn,.animated.bounceOut{animation-duration:.75s}.animated.shake{animation-duration:.3s}@keyframes shake{from,to{transform:translate3d(0,0,0)}10%,50%,90%{transform:translate3d(-10px,0,0)}30%,70%{transform:translate3d(10px,0,0)}}.shake{animation-name:shake}@keyframes bounceIn{20%,40%,60%,80%,from,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scale3d(1,1,1)}}.bounceIn{animation-name:bounceIn}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.bounceOut{animation-name:bounceOut}.s-alert-box,.s-alert-box *{box-sizing:border-box}.s-alert-box{position:fixed;background:rgba(42,45,50,.85);padding:22px;line-height:1.4;z-index:1000;pointer-events:none;color:rgba(250,251,255,.95);font-size:100%;font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,sans-serif;max-width:300px;-webkit-transition:top .4s,bottom .4s;transition:top .4s,bottom .4s}.s-alert-box.s-alert-show,.s-alert-box.s-alert-visible{pointer-events:auto}.s-alert-box a{color:inherit;opacity:.7;font-weight:700}.s-alert-box a:focus,.s-alert-box a:hover{opacity:1}.s-alert-box p{margin:0}.s-alert-close{width:20px;height:20px;position:absolute;right:4px;top:4px;overflow:hidden;text-indent:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.s-alert-close:focus,.s-alert-close:hover{outline:0}.s-alert-close::after,.s-alert-close::before{content:'';position:absolute;width:3px;height:60%;top:50%;left:50%;background:#fff}.s-alert-close:hover::after,.s-alert-close:hover::before{background:#fff}.s-alert-close::before{-webkit-transform:translate(-50%,-50%) rotate(45deg);transform:translate(-50%,-50%) rotate(45deg)}.s-alert-close::after{-webkit-transform:translate(-50%,-50%) rotate(-45deg);transform:translate(-50%,-50%) rotate(-45deg)}.s-alert-bottom-left{top:auto;right:auto;bottom:30px;left:30px}.s-alert-top-left{top:30px;right:auto;bottom:auto;left:30px}.s-alert-top-right{top:30px;right:30px;bottom:auto;left:auto}.s-alert-bottom-right{top:auto;right:30px;bottom:30px;left:auto}.s-alert-bottom,.s-alert-top{width:100%;max-width:100%;left:0;right:0}.s-alert-bottom{bottom:0;top:auto}.s-alert-top{top:0;bottom:auto}.s-alert-info{background:#00A2D3;color:#fff}.s-alert-success{background:#27AE60;color:#fff}.s-alert-warning{background:#F1C40F;color:#fff}.s-alert-error{background:#E74C3C;color:#fff}[class*=" s-alert-effect-"].s-alert-hide,[class^=s-alert-effect-].s-alert-hide{-webkit-animation-direction:reverse;animation-direction:reverse}.s-alert-box-height{visibility:hidden;position:fixed} \ No newline at end of file diff --git a/dist/react-bootstrap-table.js b/dist/react-bootstrap-table.js index ea8bf15db..37062386c 100644 --- a/dist/react-bootstrap-table.js +++ b/dist/react-bootstrap-table.js @@ -65,51 +65,51 @@ return /******/ (function(modules) { // webpackBootstrap var _BootstrapTable2 = _interopRequireDefault(_BootstrapTable); - var _TableHeaderColumn = __webpack_require__(212); + var _TableHeaderColumn = __webpack_require__(63); var _TableHeaderColumn2 = _interopRequireDefault(_TableHeaderColumn); - var _InsertModalHeader = __webpack_require__(195); + var _InsertModalHeader = __webpack_require__(46); var _InsertModalHeader2 = _interopRequireDefault(_InsertModalHeader); - var _InsertModalBody = __webpack_require__(197); + var _InsertModalBody = __webpack_require__(48); var _InsertModalBody2 = _interopRequireDefault(_InsertModalBody); - var _InsertModalFooter = __webpack_require__(196); + var _InsertModalFooter = __webpack_require__(47); var _InsertModalFooter2 = _interopRequireDefault(_InsertModalFooter); - var _InsertButton = __webpack_require__(198); + var _InsertButton = __webpack_require__(49); var _InsertButton2 = _interopRequireDefault(_InsertButton); - var _DeleteButton = __webpack_require__(199); + var _DeleteButton = __webpack_require__(50); var _DeleteButton2 = _interopRequireDefault(_DeleteButton); - var _ExportCSVButton = __webpack_require__(200); + var _ExportCSVButton = __webpack_require__(51); var _ExportCSVButton2 = _interopRequireDefault(_ExportCSVButton); - var _ShowSelectedOnlyButton = __webpack_require__(201); + var _ShowSelectedOnlyButton = __webpack_require__(52); var _ShowSelectedOnlyButton2 = _interopRequireDefault(_ShowSelectedOnlyButton); - var _ClearSearchButton = __webpack_require__(203); + var _ClearSearchButton = __webpack_require__(54); var _ClearSearchButton2 = _interopRequireDefault(_ClearSearchButton); - var _SearchField = __webpack_require__(202); + var _SearchField = __webpack_require__(53); var _SearchField2 = _interopRequireDefault(_SearchField); - var _ButtonGroup = __webpack_require__(218); + var _ButtonGroup = __webpack_require__(69); var _ButtonGroup2 = _interopRequireDefault(_ButtonGroup); - var _SizePerPageDropDown = __webpack_require__(182); + var _SizePerPageDropDown = __webpack_require__(33); var _SizePerPageDropDown2 = _interopRequireDefault(_SizePerPageDropDown); @@ -189,29 +189,33 @@ return /******/ (function(modules) { // webpackBootstrap var _TableBody2 = _interopRequireDefault(_TableBody); - var _PaginationList = __webpack_require__(180); + var _PaginationList = __webpack_require__(31); var _PaginationList2 = _interopRequireDefault(_PaginationList); - var _ToolBar = __webpack_require__(183); + var _ToolBar = __webpack_require__(34); var _ToolBar2 = _interopRequireDefault(_ToolBar); - var _TableFilter = __webpack_require__(204); + var _TableFilter = __webpack_require__(55); var _TableFilter2 = _interopRequireDefault(_TableFilter); - var _TableDataStore = __webpack_require__(205); + var _TableDataStore = __webpack_require__(56); var _util = __webpack_require__(9); var _util2 = _interopRequireDefault(_util); - var _csv_export_util = __webpack_require__(206); + var _csv_export_util = __webpack_require__(57); var _csv_export_util2 = _interopRequireDefault(_csv_export_util); - var _Filter = __webpack_require__(210); + var _Filter = __webpack_require__(61); + + var _reactSAlert = __webpack_require__(15); + + var _reactSAlert2 = _interopRequireDefault(_reactSAlert); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -753,7 +757,8 @@ return /******/ (function(modules) { // webpackBootstrap y: this.state.y }) ), tableFilter, - showPaginationOnBottom ? pagination : null + showPaginationOnBottom ? pagination : null, + _react2.default.createElement(_reactSAlert2.default, { stack: { limit: 3 } }) ); } }, { @@ -2080,7 +2085,6 @@ return /******/ (function(modules) { // webpackBootstrap FILTER_COND_LIKE: 'like', EXPAND_BY_ROW: 'row', EXPAND_BY_COL: 'column', - CANCEL_TOASTR: 'Pressed ESC can cancel', REMOTE_SORT: 'sort', REMOTE_PAGE: 'pagination', REMOTE_CELL_EDIT: 'cellEdit', @@ -2501,7 +2505,7 @@ return /******/ (function(modules) { // webpackBootstrap var _classnames2 = _interopRequireDefault(_classnames); - var _ExpandComponent = __webpack_require__(179); + var _ExpandComponent = __webpack_require__(30); var _ExpandComponent2 = _interopRequireDefault(_ExpandComponent); @@ -3719,16 +3723,10 @@ return /******/ (function(modules) { // webpackBootstrap var _Notification = __webpack_require__(14); - var _Notification2 = _interopRequireDefault(_Notification); - var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); - var _Const = __webpack_require__(4); - - var _Const2 = _interopRequireDefault(_Const); - 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"); } } @@ -3838,7 +3836,7 @@ return /******/ (function(modules) { // webpackBootstrap var responseType = typeof checkVal === 'undefined' ? 'undefined' : _typeof(checkVal); if (responseType !== 'object' && checkVal !== true) { valid = false; - this.notifyToastr('error', checkVal, _Const2.default.CANCEL_TOASTR); + this.notifyToastr('error', checkVal, ''); } else if (responseType === 'object' && checkVal.isValid !== true) { valid = false; this.notifyToastr(checkVal.notification.type, checkVal.notification.msg, checkVal.notification.title); @@ -3873,7 +3871,7 @@ return /******/ (function(modules) { // webpackBootstrap toastr = beforeShowError(type, message, title); } if (toastr) { - this.refs.notifier.notice(type, message, title); + (0, _Notification.notice)(type, message, title); } } }, { @@ -3980,8 +3978,7 @@ return /******/ (function(modules) { // webpackBootstrap style: style, className: className, onClick: this.handleClick }, - cellEditor, - _react2.default.createElement(_Notification2.default, { ref: 'notifier' }) + cellEditor ); } }, { @@ -4177,62 +4174,27 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, "__esModule", { value: true }); + exports.notice = undefined; - 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__(2); - - var _react2 = _interopRequireDefault(_react); + var _reactSAlert = __webpack_require__(15); - var _reactToastr = __webpack_require__(15); + var _reactSAlert2 = _interopRequireDefault(_reactSAlert); 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 ToastrMessageFactory = _react2.default.createFactory(_reactToastr.ToastMessage.animation); - - var Notification = function (_Component) { - _inherits(Notification, _Component); - - function Notification() { - _classCallCheck(this, Notification); + var notice = function notice(type, msg, title) { + var titleHTML = title ? '

' + title + '

' : ''; - return _possibleConstructorReturn(this, (Notification.__proto__ || Object.getPrototypeOf(Notification)).apply(this, arguments)); - } - - _createClass(Notification, [{ - key: 'notice', - - // allow type is success,info,warning,error - value: function notice(type, msg, title) { - this.refs.toastr[type](msg, title, { - mode: 'single', - timeOut: 5000, - extendedTimeOut: 1000, - showAnimation: 'animated bounceIn', - hideAnimation: 'animated bounceOut' - }); - } - }, { - key: 'render', - value: function render() { - return _react2.default.createElement(_reactToastr.ToastContainer, { ref: 'toastr', - toastMessageFactory: ToastrMessageFactory, - id: 'toast-container', - className: 'toast-top-right' }); - } - }]); + var bodyHTML = '\n ' + titleHTML + '\n ' + msg + '\n '; - return Notification; - }(_react.Component); + _reactSAlert2.default.error(bodyHTML, { + position: 'top-right', + timeout: 3500, + html: true + }); + }; - var _default = Notification; - exports.default = _default; + exports.notice = notice; ; var _temp = function () { @@ -4240,11 +4202,7 @@ return /******/ (function(modules) { // webpackBootstrap return; } - __REACT_HOT_LOADER__.register(ToastrMessageFactory, 'ToastrMessageFactory', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/Notification.js'); - - __REACT_HOT_LOADER__.register(Notification, 'Notification', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/Notification.js'); - - __REACT_HOT_LOADER__.register(_default, 'default', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/Notification.js'); + __REACT_HOT_LOADER__.register(notice, 'notice', '/Users/allen/Node/react-bootstrap-table-new/react-bootstrap-table/src/Notification.js'); }(); ; @@ -4253,4971 +4211,1057 @@ return /******/ (function(modules) { // webpackBootstrap /* 15 */ /***/ function(module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.ToastMessage = exports.ToastContainer = undefined; - - var _ToastContainer = __webpack_require__(16); + module.exports = __webpack_require__(16); - var _ToastContainer2 = _interopRequireDefault(_ToastContainer); +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { - var _ToastMessage = __webpack_require__(172); + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(17), __webpack_require__(18), __webpack_require__(27), __webpack_require__(26), __webpack_require__(29)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports !== "undefined") { + factory(exports, require('react'), require('./SAlertContent'), require('prop-types'), require('./s-alert-parts/s-alert-store'), require('./s-alert-parts/s-alert-tools'), require('./s-alert-parts/s-alert-data-prep')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, global.react, global.SAlertContent, global.propTypes, global.sAlertStore, global.sAlertTools, global.sAlertDataPrep); + global.SAlert = mod.exports; + } + })(this, function (exports, _react, _SAlertContent, _propTypes, _sAlertStore, _sAlertTools, _sAlertDataPrep) { + 'use strict'; - var _ToastMessage2 = _interopRequireDefault(_ToastMessage); + Object.defineProperty(exports, "__esModule", { + value: true + }); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _react2 = _interopRequireDefault(_react); - exports.ToastContainer = _ToastContainer2.default; - exports.ToastMessage = _ToastMessage2.default; + var _SAlertContent2 = _interopRequireDefault(_SAlertContent); -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { + var _propTypes2 = _interopRequireDefault(_propTypes); - "use strict"; + var _sAlertStore2 = _interopRequireDefault(_sAlertStore); - Object.defineProperty(exports, "__esModule", { - value: true - }); + var _sAlertTools2 = _interopRequireDefault(_sAlertTools); - var _omit2 = __webpack_require__(17); + var _sAlertDataPrep2 = _interopRequireDefault(_sAlertDataPrep); - var _omit3 = _interopRequireDefault(_omit2); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } - var _includes2 = __webpack_require__(154); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } - var _includes3 = _interopRequireDefault(_includes2); + 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); + } + } - 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; }; + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); - 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 _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } - var _react = __webpack_require__(2); + return call && (typeof call === "object" || typeof call === "function") ? call : self; + } - var _react2 = _interopRequireDefault(_react); + 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); + } - var _reactAddonsUpdate = __webpack_require__(165); + 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 insertFunc = function insertFunc(msg, data, condition) { + var id = _sAlertTools2.default.randomId(); + _sAlertStore2.default.dispatch({ + type: 'INSERT', + data: Object.assign({}, data, { + id: id, + condition: condition, + message: msg + }) + }); + return id; + }; - var _reactAddonsUpdate2 = _interopRequireDefault(_reactAddonsUpdate); + var SAlert = function (_React$Component) { + _inherits(SAlert, _React$Component); - var _ToastMessage = __webpack_require__(172); + function SAlert(props) { + _classCallCheck(this, SAlert); - var _ToastMessage2 = _interopRequireDefault(_ToastMessage); + var _this = _possibleConstructorReturn(this, (SAlert.__proto__ || Object.getPrototypeOf(SAlert)).call(this, props)); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + _this.state = { + dataRight: [], + dataLeft: [], + dataTop: [], + dataBottom: [] + }; + return _this; + } - 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; } + _createClass(SAlert, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + var storeStateLeft = void 0; + var storeStateRight = void 0; + var storeStateTop = void 0; + var storeStateBottom = void 0; + + var addToStoreRight = function addToStoreRight() { + var length = void 0; + storeStateRight = (0, _sAlertDataPrep2.default)('right') || []; + length = storeStateRight.length; + if (_this2.props.stack && _this2.props.stack.limit && length > _this2.props.stack.limit) { + var id = storeStateRight[0].id; + _sAlertStore2.default.dispatch({ type: 'REMOVE', data: { id: id } }); + storeStateRight = (0, _sAlertDataPrep2.default)('right') || []; + } + _this2.setState({ dataRight: storeStateRight }); + }; + this.unsubStoreRight = _sAlertStore2.default.subscribe(addToStoreRight); + + var addToStoreLeft = function addToStoreLeft() { + var length = void 0; + storeStateLeft = (0, _sAlertDataPrep2.default)('left') || []; + length = storeStateLeft.length; + if (_this2.props.stack && _this2.props.stack.limit && length > _this2.props.stack.limit) { + var id = storeStateLeft[0].id; + _sAlertStore2.default.dispatch({ type: 'REMOVE', data: { id: id } }); + storeStateLeft = (0, _sAlertDataPrep2.default)('left') || []; + } + _this2.setState({ dataLeft: storeStateLeft }); + }; + this.unsubStoreLeft = _sAlertStore2.default.subscribe(addToStoreLeft); + + var addToStoreTop = function addToStoreTop() { + var length = void 0; + storeStateTop = (0, _sAlertDataPrep2.default)('full-top') || []; + length = storeStateTop.length; + if (_this2.props.stack && _this2.props.stack.limit && length > _this2.props.stack.limit) { + var id = storeStateTop[0].id; + _sAlertStore2.default.dispatch({ type: 'REMOVE', data: { id: id } }); + storeStateTop = (0, _sAlertDataPrep2.default)('full-top') || []; + } + _this2.setState({ dataTop: storeStateTop }); + }; + this.unsubStoreTop = _sAlertStore2.default.subscribe(addToStoreTop); + + var addToStoreBottom = function addToStoreBottom() { + var length = void 0; + storeStateBottom = (0, _sAlertDataPrep2.default)('full-bottom') || []; + length = storeStateBottom.length; + if (_this2.props.stack && _this2.props.stack.limit && length > _this2.props.stack.limit) { + var id = storeStateBottom[0].id; + _sAlertStore2.default.dispatch({ type: 'REMOVE', data: { id: id } }); + storeStateBottom = (0, _sAlertDataPrep2.default)('full-bottom') || []; + } + _this2.setState({ dataBottom: storeStateBottom }); + }; + this.unsubStoreBottom = _sAlertStore2.default.subscribe(addToStoreBottom); + + // set up global config from global SAlert props + // only stuff needed for getAlertData + var globalConfig = { + contentTemplate: this.props.contentTemplate, + offset: this.props.offset, + message: this.props.message, + stack: this.props.stack, + html: this.props.html, + customFields: this.props.customFields, + position: this.props.position || 'top-right' + }; + _sAlertTools2.default.setGlobalConfig(globalConfig); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.unsubStoreTop(); + this.unsubStoreBottom(); + this.unsubStoreLeft(); + this.unsubStoreRight(); + } + }, { + key: 'render', + value: function render() { + var _this3 = this; + + var mapFunc = function mapFunc(alert, index) { + var customKey = 'alert-key-' + alert.id + '-' + alert.position; + var id = alert.id; + var condition = _sAlertTools2.default.returnFirstDefined(alert.condition, 'info'); + var message = _sAlertTools2.default.returnFirstDefined(alert.message, _this3.props.message, ''); + var position = _sAlertTools2.default.returnFirstDefined(alert.position, _this3.props.position, 'top-right'); + var offset = _sAlertTools2.default.returnFirstDefined(alert.offset, _this3.props.offset, 0); + var effect = _sAlertTools2.default.returnFirstDefined(alert.effect, _this3.props.effect); + var boxPosition = alert.boxPosition; + var beep = _sAlertTools2.default.returnFirstDefined(alert.beep, _this3.props.beep, false); + var timeout = _sAlertTools2.default.returnFirstDefined(alert.timeout, _this3.props.timeout, 5000); + var html = _sAlertTools2.default.returnFirstDefined(alert.html, _this3.props.html); + var onClose = _sAlertTools2.default.returnFirstDefined(alert.onClose, _this3.props.onClose); + var onShow = _sAlertTools2.default.returnFirstDefined(alert.onShow, _this3.props.onShow); + var customFields = _sAlertTools2.default.returnFirstDefined(alert.customFields, _this3.props.customFields); + var contentTemplate = _this3.props.contentTemplate; + return _react2.default.createElement(_SAlertContent2.default, { + key: customKey, + id: id, + customFields: customFields, + condition: condition, + message: message, + position: position, + effect: effect, + boxPosition: boxPosition, + beep: beep, + timeout: timeout, + html: html, + onClose: onClose, + onShow: onShow, + contentTemplate: contentTemplate }); + }; + var sAlertElemsRight = this.state.dataRight.map(mapFunc); + var sAlertElemsLeft = this.state.dataLeft.map(mapFunc); + var sAlertElemsTop = this.state.dataTop.map(mapFunc); + var sAlertElemsBottom = this.state.dataBottom.map(mapFunc); + return _react2.default.createElement( + 'div', + { className: 's-alert-wrapper' }, + sAlertElemsRight, + sAlertElemsLeft, + sAlertElemsTop, + sAlertElemsBottom + ); + } + }], [{ + key: 'info', + value: function info(msg, data) { + return insertFunc(msg, data, 'info'); + } + }, { + key: 'error', + value: function error(msg, data) { + return insertFunc(msg, data, 'error'); + } + }, { + key: 'warning', + value: function warning(msg, data) { + return insertFunc(msg, data, 'warning'); + } + }, { + key: 'success', + value: function success(msg, data) { + return insertFunc(msg, data, 'success'); + } + }, { + key: 'close', + value: function close(id) { + _sAlertStore2.default.dispatch({ type: 'REMOVE', data: { id: id } }); + } + }, { + key: 'closeAll', + value: function closeAll() { + _sAlertStore2.default.dispatch({ type: 'REMOVEALL' }); + } + }]); + + return SAlert; + }(_react2.default.Component); + + SAlert.propTypes = { + message: _propTypes2.default.string, + position: _propTypes2.default.string, + offset: _propTypes2.default.number, + stack: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]), + effect: _propTypes2.default.string, + beep: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object, _propTypes2.default.bool]), + timeout: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['none']), _propTypes2.default.number]), + html: _propTypes2.default.bool, + onClose: _propTypes2.default.func, + onShow: _propTypes2.default.func, + customFields: _propTypes2.default.object, + contentTemplate: _propTypes2.default.func + }; - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + exports.default = SAlert; + }); - 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; } +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { - 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 __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(6), __webpack_require__(18), __webpack_require__(26), __webpack_require__(27), __webpack_require__(28)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports !== "undefined") { + factory(exports, require('react'), require('react-dom'), require('prop-types'), require('./s-alert-parts/s-alert-tools'), require('./s-alert-parts/s-alert-store'), require('./SAlertContentTmpl')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, global.react, global.reactDom, global.propTypes, global.sAlertTools, global.sAlertStore, global.SAlertContentTmpl); + global.SAlertContent = mod.exports; + } + })(this, function (exports, _react, _reactDom, _propTypes, _sAlertTools, _sAlertStore, _SAlertContentTmpl) { + 'use strict'; - var ToastContainer = function (_Component) { - _inherits(ToastContainer, _Component); + Object.defineProperty(exports, "__esModule", { + value: true + }); - function ToastContainer() { - var _ref; + var _react2 = _interopRequireDefault(_react); - var _temp, _this, _ret; + var _reactDom2 = _interopRequireDefault(_reactDom); - _classCallCheck(this, ToastContainer); + var _propTypes2 = _interopRequireDefault(_propTypes); - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } + var _sAlertTools2 = _interopRequireDefault(_sAlertTools); - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ToastContainer.__proto__ || Object.getPrototypeOf(ToastContainer)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - toasts: [], - toastId: 0, - messageList: [] - }, _this._handle_toast_remove = _this._handle_toast_remove.bind(_this), _temp), _possibleConstructorReturn(_this, _ret); - } + var _sAlertStore2 = _interopRequireDefault(_sAlertStore); - _createClass(ToastContainer, [{ - key: "error", - value: function error(message, title, optionsOverride) { - this._notify(this.props.toastType.error, message, title, optionsOverride); - } - }, { - key: "info", - value: function info(message, title, optionsOverride) { - this._notify(this.props.toastType.info, message, title, optionsOverride); - } - }, { - key: "success", - value: function success(message, title, optionsOverride) { - this._notify(this.props.toastType.success, message, title, optionsOverride); - } - }, { - key: "warning", - value: function warning(message, title, optionsOverride) { - this._notify(this.props.toastType.warning, message, title, optionsOverride); - } - }, { - key: "clear", - value: function clear() { - var _this2 = this; + var _SAlertContentTmpl2 = _interopRequireDefault(_SAlertContentTmpl); - Object.keys(this.refs).forEach(function (key) { - _this2.refs[key].hideToast(false); - }); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; } - }, { - key: "_notify", - value: function _notify(type, message, title) { - var _this3 = this; - var optionsOverride = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + 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; + }; - if (this.props.preventDuplicates) { - if ((0, _includes3.default)(this.state.messageList, message)) { - return; + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } - } - var key = this.state.toastId++; - var toastId = key; - var newToast = (0, _reactAddonsUpdate2.default)(optionsOverride, { - $merge: { - type: type, - title: title, - message: message, - toastId: toastId, - key: key, - ref: "toasts__" + key, - handleOnClick: function handleOnClick(e) { - if ("function" === typeof optionsOverride.handleOnClick) { - optionsOverride.handleOnClick(); + } + + 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 _this3._handle_toast_on_click(e); - }, - handleRemove: this._handle_toast_remove } - }); - var toastOperation = _defineProperty({}, "" + (this.props.newestOnTop ? "$unshift" : "$push"), [newToast]); - var messageOperation = _defineProperty({}, "" + (this.props.newestOnTop ? "$unshift" : "$push"), [message]); - - var nextState = (0, _reactAddonsUpdate2.default)(this.state, { - toasts: toastOperation, - messageList: messageOperation - }); - this.setState(nextState); - } - }, { - key: "_handle_toast_on_click", - value: function _handle_toast_on_click(event) { - this.props.onClick(event); - if (event.defaultPrevented) { - return; - } - event.preventDefault(); - event.stopPropagation(); - } - }, { - key: "_handle_toast_remove", - value: function _handle_toast_remove(toastId) { - var _this4 = this; + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); - if (this.props.preventDuplicates) { - this.state.previousMessage = ""; - } - var operationName = "" + (this.props.newestOnTop ? "reduceRight" : "reduce"); - this.state.toasts[operationName](function (found, toast, index) { - if (found || toast.toastId !== toastId) { - return false; + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } - _this4.setState((0, _reactAddonsUpdate2.default)(_this4.state, { - toasts: { $splice: [[index, 1]] }, - messageList: { $splice: [[index, 1]] } - })); - return true; - }, false); + + return call && (typeof call === "object" || typeof call === "function") ? call : self; } - }, { - key: "render", - value: function render() { - var _this5 = this; - var divProps = (0, _omit3.default)(this.props, ["toastType", "toastMessageFactory", "preventDuplicates", "newestOnTop"]); + 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); + } - return _react2.default.createElement( - "div", - _extends({}, divProps, { "aria-live": "polite", role: "alert" }), - this.state.toasts.map(function (toast) { - return _this5.props.toastMessageFactory(toast); - }) - ); + 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; } - }]); - - return ToastContainer; - }(_react.Component); - ToastContainer.propTypes = { - toastType: _react.PropTypes.shape({ - error: _react.PropTypes.string, - info: _react.PropTypes.string, - success: _react.PropTypes.string, - warning: _react.PropTypes.string - }).isRequired, - id: _react.PropTypes.string.isRequired, - toastMessageFactory: _react.PropTypes.func.isRequired, - preventDuplicates: _react.PropTypes.bool.isRequired, - newestOnTop: _react.PropTypes.bool.isRequired, - onClick: _react.PropTypes.func.isRequired - }; - ToastContainer.defaultProps = { - toastType: { - error: "error", - info: "info", - success: "success", - warning: "warning" - }, - id: "toast-container", - toastMessageFactory: _react2.default.createFactory(_ToastMessage2.default.animation), - preventDuplicates: true, - newestOnTop: true, - onClick: function onClick() {} - }; - exports.default = ToastContainer; + var SAlertContent = function (_React$Component) { + _inherits(SAlertContent, _React$Component); -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { + function SAlertContent(props) { + _classCallCheck(this, SAlertContent); - var arrayMap = __webpack_require__(18), - baseClone = __webpack_require__(19), - baseUnset = __webpack_require__(129), - castPath = __webpack_require__(130), - copyObject = __webpack_require__(69), - flatRest = __webpack_require__(143), - getAllKeysIn = __webpack_require__(106); + return _possibleConstructorReturn(this, (SAlertContent.__proto__ || Object.getPrototypeOf(SAlertContent)).call(this, props)); + } - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG = 4; + _createClass(SAlertContent, [{ + key: 'handleCloseAlert', + value: function handleCloseAlert() { + var closingTimeout = void 0; + var alertId = this.props.id; + var currentAlertElem = _reactDom2.default.findDOMNode(this); + var animationClose = function animationClose() { + currentAlertElem.style.display = 'none'; + _sAlertStore2.default.dispatch({ type: 'REMOVE', data: { id: alertId } }); + clearTimeout(closingTimeout); + }; + if (document.hidden || document.webkitHidden || !currentAlertElem.classList.contains('s-alert-is-effect')) { + _sAlertStore2.default.dispatch({ type: 'REMOVE', data: { id: alertId } }); + } else { + currentAlertElem.classList.remove('s-alert-show'); + closingTimeout = setTimeout(function () { + currentAlertElem.classList.add('s-alert-hide'); + }, 100); + currentAlertElem.removeEventListener('webkitAnimationEnd', animationClose, false); + currentAlertElem.removeEventListener('animationend', animationClose, false); + currentAlertElem.addEventListener('webkitAnimationEnd', animationClose, false); + currentAlertElem.addEventListener('animationend', animationClose, false); + } + // stop audio when closing + this.alertAudio && this.alertAudio.load(); + } + }, { + key: 'componentWillMount', + value: function componentWillMount() { + var beep = this.props.beep; + var condition = this.props.condition; + if (beep && typeof beep === 'string') { + this.alertAudio = new Audio(beep); + this.alertAudio.load(); + this.alertAudio.play(); + } + if (beep && (typeof beep === 'undefined' ? 'undefined' : _typeof(beep)) === 'object' && condition === 'info') { + this.alertAudio = new Audio(beep.info); + this.alertAudio.load(); + this.alertAudio.play(); + } + if (beep && (typeof beep === 'undefined' ? 'undefined' : _typeof(beep)) === 'object' && condition === 'error') { + this.alertAudio = new Audio(beep.error); + this.alertAudio.load(); + this.alertAudio.play(); + } + if (beep && (typeof beep === 'undefined' ? 'undefined' : _typeof(beep)) === 'object' && condition === 'success') { + this.alertAudio = new Audio(beep.success); + this.alertAudio.load(); + this.alertAudio.play(); + } + if (beep && (typeof beep === 'undefined' ? 'undefined' : _typeof(beep)) === 'object' && condition === 'warning') { + this.alertAudio = new Audio(beep.warning); + this.alertAudio.load(); + this.alertAudio.play(); + } + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + if (typeof this.props.timeout === 'number') { + this.closeTimer = setTimeout(function () { + _this2.handleCloseAlert(); + }, this.props.timeout); + } + if (this.props.onShow) { + this.props.onShow(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.closeTimer) { + clearTimeout(this.closeTimer); + } + if (this.props.onClose) { + this.props.onClose(); + } + } + }, { + key: 'render', + value: function render() { + var classNames = 's-alert-box s-alert-' + this.props.condition + ' s-alert-' + this.props.position + ' ' + (this.props.effect ? 's-alert-is-effect s-alert-effect-' + this.props.effect : '') + ' s-alert-show'; + var message = this.props.html ? _react2.default.createElement('span', { dangerouslySetInnerHTML: { __html: this.props.message } }) : this.props.message; + var styles = this.props.boxPosition ? _sAlertTools2.default.styleToObj(this.props.boxPosition) : {}; + var id = this.props.id; + var handleClose = this.handleCloseAlert.bind(this); + var contentTemplate = this.props.contentTemplate || _SAlertContentTmpl2.default; + var customFields = this.props.customFields || {}; + + return _react2.default.createElement(contentTemplate, { classNames: classNames, id: id, styles: styles, message: message, handleClose: handleClose, customFields: customFields }); + } + }]); + + return SAlertContent; + }(_react2.default.Component); + + SAlertContent.propTypes = { + condition: _propTypes2.default.string.isRequired, + message: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]), + position: _propTypes2.default.string.isRequired, + boxPosition: _propTypes2.default.string, + id: _propTypes2.default.string.isRequired, + effect: _propTypes2.default.string, + beep: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object, _propTypes2.default.bool]), + timeout: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['none']), _propTypes2.default.number]), + html: _propTypes2.default.bool, + onClose: _propTypes2.default.func, + onShow: _propTypes2.default.func, + customFields: _propTypes2.default.object, + contentTemplate: _propTypes2.default.func + }; - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable property paths of `object` that are not omitted. - * - * **Note:** This method is considerably slower than `_.pick`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to omit. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omit(object, ['a', 'c']); - * // => { 'b': '2' } - */ - var omit = flatRest(function(object, paths) { - var result = {}; - if (object == null) { - return result; - } - var isDeep = false; - paths = arrayMap(paths, function(path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result); - if (isDeep) { - result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG); - } - var length = paths.length; - while (length--) { - baseUnset(result, paths[length]); - } - return result; + exports.default = SAlertContent; }); - module.exports = omit; - - /***/ }, /* 18 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. */ - function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; + var factory = __webpack_require__(19); + + var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && + Symbol.for && + Symbol.for('react.element')) || + 0xeac7; + + function isValidElement(object) { + return typeof object === 'object' && + object !== null && + object.$$typeof === REACT_ELEMENT_TYPE; } - module.exports = arrayMap; + module.exports = factory(isValidElement); /***/ }, /* 19 */ /***/ function(module, exports, __webpack_require__) { - var Stack = __webpack_require__(20), - arrayEach = __webpack_require__(64), - assignValue = __webpack_require__(65), - baseAssign = __webpack_require__(68), - baseAssignIn = __webpack_require__(91), - cloneBuffer = __webpack_require__(95), - copyArray = __webpack_require__(96), - copySymbols = __webpack_require__(97), - copySymbolsIn = __webpack_require__(100), - getAllKeys = __webpack_require__(104), - getAllKeysIn = __webpack_require__(106), - getTag = __webpack_require__(107), - initCloneArray = __webpack_require__(112), - initCloneByTag = __webpack_require__(113), - initCloneObject = __webpack_require__(127), - isArray = __webpack_require__(76), - isBuffer = __webpack_require__(77), - isObject = __webpack_require__(44), - keys = __webpack_require__(70); - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG = 4; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = - cloneableTags[boolTag] = cloneableTags[dateTag] = - cloneableTags[float32Tag] = cloneableTags[float64Tag] = - cloneableTags[int8Tag] = cloneableTags[int16Tag] = - cloneableTags[int32Tag] = cloneableTags[mapTag] = - cloneableTags[numberTag] = cloneableTags[objectTag] = - cloneableTags[regexpTag] = cloneableTags[setTag] = - cloneableTags[stringTag] = cloneableTags[symbolTag] = - cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = - cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = - cloneableTags[weakMapTag] = false; - - /** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. * - * @private - * @param {*} value The value to clone. - * @param {boolean} bitmask The bitmask flags. - * 1 - Deep clone - * 2 - Flatten inherited properties - * 4 - Clone symbols - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. */ - function baseClone(value, bitmask, customizer, key, object, stack) { - var result, - isDeep = bitmask & CLONE_DEEP_FLAG, - isFlat = bitmask & CLONE_FLAT_FLAG, - isFull = bitmask & CLONE_SYMBOLS_FLAG; - - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } + + 'use strict'; + + var emptyFunction = __webpack_require__(21); + var invariant = __webpack_require__(22); + var warning = __webpack_require__(23); + + var ReactPropTypesSecret = __webpack_require__(24); + var checkPropTypes = __webpack_require__(25); + + module.exports = function (isValidElement) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + var ReactPropTypes; + + if (process.env.NODE_ENV !== 'production') { + // Keep in sync with production version below + ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = (isFlat || isFunc) ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat - ? copySymbolsIn(value, baseAssignIn(result, value)) - : copySymbols(value, baseAssign(result, value)); - } + var productionTypeChecker = function () { + invariant(false, 'React.PropTypes type checking code is stripped in production.'); + }; + productionTypeChecker.isRequired = productionTypeChecker; + var getProductionTypeChecker = function () { + return productionTypeChecker; + }; + // Keep in sync with development version above + ReactPropTypes = { + array: productionTypeChecker, + bool: productionTypeChecker, + func: productionTypeChecker, + number: productionTypeChecker, + object: productionTypeChecker, + string: productionTypeChecker, + symbol: productionTypeChecker, + + any: productionTypeChecker, + arrayOf: getProductionTypeChecker, + element: productionTypeChecker, + instanceOf: getProductionTypeChecker, + node: productionTypeChecker, + objectOf: getProductionTypeChecker, + oneOf: getProductionTypeChecker, + oneOfType: getProductionTypeChecker, + shape: getProductionTypeChecker + }; + } + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; } else { - if (!cloneableTags[tag]) { - return object ? value : {}; + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + if (process.env.NODE_ENV !== 'production') { + if (secret !== ReactPropTypesSecret && typeof console !== 'undefined') { + var cacheKey = componentName + ':' + propName; + if (!manualPropTypeCallCache[cacheKey]) { + process.env.NODE_ENV !== 'production' ? warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will not work in production with the next major version. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', propFullName, componentName) : void 0; + manualPropTypeCallCache[cacheKey] = true; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); } - result = initCloneByTag(value, tag, baseClone, isDeep); } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - var keysFunc = isFull - ? (isFlat ? getAllKeysIn : getAllKeys) - : (isFlat ? keysIn : keys); + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); - var props = isArr ? undefined : keysFunc(value); - arrayEach(props || value, function(subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; } - // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - return result; - } - - module.exports = baseClone; + return createChainableTypeChecker(validate); + } + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturnsNull); + } -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { - - var ListCache = __webpack_require__(21), - stackClear = __webpack_require__(29), - stackDelete = __webpack_require__(30), - stackGet = __webpack_require__(31), - stackHas = __webpack_require__(32), - stackSet = __webpack_require__(33); - - /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - - // Add methods to `Stack`. - Stack.prototype.clear = stackClear; - Stack.prototype['delete'] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - - module.exports = Stack; - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var listCacheClear = __webpack_require__(22), - listCacheDelete = __webpack_require__(23), - listCacheGet = __webpack_require__(26), - listCacheHas = __webpack_require__(27), - listCacheSet = __webpack_require__(28); - - /** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - // Add methods to `ListCache`. - ListCache.prototype.clear = listCacheClear; - ListCache.prototype['delete'] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - - module.exports = ListCache; - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - /** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - - module.exports = listCacheClear; - - -/***/ }, -/* 23 */ -/***/ function(module, exports, __webpack_require__) { - - var assocIndexOf = __webpack_require__(24); - - /** Used for built-in method references. */ - var arrayProto = Array.prototype; - - /** Built-in value references. */ - var splice = arrayProto.splice; - - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - - module.exports = listCacheDelete; - - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - var eq = __webpack_require__(25); - - /** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - - module.exports = assocIndexOf; - - -/***/ }, -/* 25 */ -/***/ function(module, exports) { - - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || (value !== value && other !== other); - } - - module.exports = eq; - - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - var assocIndexOf = __webpack_require__(24); - - /** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; - } - - module.exports = listCacheGet; - - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - var assocIndexOf = __webpack_require__(24); - - /** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - - module.exports = listCacheHas; - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - var assocIndexOf = __webpack_require__(24); - - /** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ - function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - - module.exports = listCacheSet; - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - var ListCache = __webpack_require__(21); - - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear() { - this.__data__ = new ListCache; - this.size = 0; - } - - module.exports = stackClear; - - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - /** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - - this.size = data.size; - return result; - } - - module.exports = stackDelete; - - -/***/ }, -/* 31 */ -/***/ function(module, exports) { - - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function stackGet(key) { - return this.__data__.get(key); - } - - module.exports = stackGet; - - -/***/ }, -/* 32 */ -/***/ function(module, exports) { - - /** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function stackHas(key) { - return this.__data__.has(key); - } - - module.exports = stackHas; - - -/***/ }, -/* 33 */ -/***/ function(module, exports, __webpack_require__) { - - var ListCache = __webpack_require__(21), - Map = __webpack_require__(34), - MapCache = __webpack_require__(49); - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } - - module.exports = stackSet; - - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(35), - root = __webpack_require__(40); - - /* Built-in method references that are verified to be native. */ - var Map = getNative(root, 'Map'); - - module.exports = Map; - - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIsNative = __webpack_require__(36), - getValue = __webpack_require__(48); - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; - } - - module.exports = getNative; - - -/***/ }, -/* 36 */ -/***/ function(module, exports, __webpack_require__) { - - var isFunction = __webpack_require__(37), - isMasked = __webpack_require__(45), - isObject = __webpack_require__(44), - toSource = __webpack_require__(47); - - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used for built-in method references. */ - var funcProto = Function.prototype, - objectProto = Object.prototype; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - - module.exports = baseIsNative; - - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGetTag = __webpack_require__(38), - isObject = __webpack_require__(44); - - /** `Object#toString` result references. */ - var asyncTag = '[object AsyncFunction]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - proxyTag = '[object Proxy]'; - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - module.exports = isFunction; - - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var Symbol = __webpack_require__(39), - getRawTag = __webpack_require__(42), - objectToString = __webpack_require__(43); - - /** `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; - } - value = Object(value); - return (symToStringTag && symToStringTag in value) - ? getRawTag(value) - : objectToString(value); - } - - module.exports = baseGetTag; - - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var root = __webpack_require__(40); - - /** Built-in value references. */ - var Symbol = root.Symbol; - - module.exports = Symbol; - - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - - var freeGlobal = __webpack_require__(41); - - /** 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; - - -/***/ }, -/* 41 */ -/***/ function(module, exports) { - - /* 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, (function() { return this; }()))) - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - var Symbol = __webpack_require__(39); - - /** 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; - - -/***/ }, -/* 43 */ -/***/ 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; - - -/***/ }, -/* 44 */ -/***/ 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; - - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - var coreJsData = __webpack_require__(46); - - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); - - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); - } - - module.exports = isMasked; - - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - var root = __webpack_require__(40); - - /** Used to detect overreaching core-js shims. */ - var coreJsData = root['__core-js_shared__']; - - module.exports = coreJsData; - - -/***/ }, -/* 47 */ -/***/ function(module, exports) { - - /** Used for built-in method references. */ - var funcProto = Function.prototype; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; - - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; - } - - module.exports = toSource; - - -/***/ }, -/* 48 */ -/***/ function(module, exports) { - - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function getValue(object, key) { - return object == null ? undefined : object[key]; - } - - module.exports = getValue; - - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var mapCacheClear = __webpack_require__(50), - mapCacheDelete = __webpack_require__(58), - mapCacheGet = __webpack_require__(61), - mapCacheHas = __webpack_require__(62), - mapCacheSet = __webpack_require__(63); - - /** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - // Add methods to `MapCache`. - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype['delete'] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - - module.exports = MapCache; - - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - var Hash = __webpack_require__(51), - ListCache = __webpack_require__(21), - Map = __webpack_require__(34); - - /** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ - function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; - } - - module.exports = mapCacheClear; - - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - var hashClear = __webpack_require__(52), - hashDelete = __webpack_require__(54), - hashGet = __webpack_require__(55), - hashHas = __webpack_require__(56), - hashSet = __webpack_require__(57); - - /** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - // Add methods to `Hash`. - Hash.prototype.clear = hashClear; - Hash.prototype['delete'] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - - module.exports = Hash; - - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - var nativeCreate = __webpack_require__(53); - - /** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - - module.exports = hashClear; - - -/***/ }, -/* 53 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(35); - - /* Built-in method references that are verified to be native. */ - var nativeCreate = getNative(Object, 'create'); - - module.exports = nativeCreate; - - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - /** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - - module.exports = hashDelete; - - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - var nativeCreate = __webpack_require__(53); - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; - } - - module.exports = hashGet; - - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - var nativeCreate = __webpack_require__(53); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); - } - - module.exports = hashHas; - - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - var nativeCreate = __webpack_require__(53); - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; - } - - module.exports = hashSet; - - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var getMapData = __webpack_require__(59); - - /** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; - } - - module.exports = mapCacheDelete; - - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var isKeyable = __webpack_require__(60); - - /** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; - } - - module.exports = getMapData; - - -/***/ }, -/* 60 */ -/***/ function(module, exports) { - - /** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ - function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); - } - - module.exports = isKeyable; - - -/***/ }, -/* 61 */ -/***/ function(module, exports, __webpack_require__) { - - var getMapData = __webpack_require__(59); - - /** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - - module.exports = mapCacheGet; - - -/***/ }, -/* 62 */ -/***/ function(module, exports, __webpack_require__) { - - var getMapData = __webpack_require__(59); - - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - - module.exports = mapCacheHas; - - -/***/ }, -/* 63 */ -/***/ function(module, exports, __webpack_require__) { - - var getMapData = __webpack_require__(59); - - /** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ - function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; - - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; - } - - module.exports = mapCacheSet; - - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - module.exports = arrayEach; - - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - var baseAssignValue = __webpack_require__(66), - eq = __webpack_require__(25); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - module.exports = assignValue; - - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var defineProperty = __webpack_require__(67); - - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - if (key == '__proto__' && defineProperty) { - defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; - } - } - - module.exports = baseAssignValue; - - -/***/ }, -/* 67 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(35); - - var defineProperty = (function() { - try { - var func = getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} - }()); - - module.exports = defineProperty; - - -/***/ }, -/* 68 */ -/***/ function(module, exports, __webpack_require__) { - - var copyObject = __webpack_require__(69), - keys = __webpack_require__(70); - - /** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - - module.exports = baseAssign; - - -/***/ }, -/* 69 */ -/***/ function(module, exports, __webpack_require__) { - - var assignValue = __webpack_require__(65), - baseAssignValue = __webpack_require__(66); - - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; - - if (newValue === undefined) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - - module.exports = copyObject; - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayLikeKeys = __webpack_require__(71), - baseKeys = __webpack_require__(86), - isArrayLike = __webpack_require__(90); - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - module.exports = keys; - - -/***/ }, -/* 71 */ -/***/ function(module, exports, __webpack_require__) { - - var baseTimes = __webpack_require__(72), - isArguments = __webpack_require__(73), - isArray = __webpack_require__(76), - isBuffer = __webpack_require__(77), - isIndex = __webpack_require__(80), - isTypedArray = __webpack_require__(81); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; - } - - module.exports = arrayLikeKeys; - - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - module.exports = baseTimes; - - -/***/ }, -/* 73 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIsArguments = __webpack_require__(74), - isObjectLike = __webpack_require__(75); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Built-in value references. */ - var propertyIsEnumerable = objectProto.propertyIsEnumerable; - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; - - module.exports = isArguments; - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGetTag = __webpack_require__(38), - isObjectLike = __webpack_require__(75); - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]'; - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - module.exports = baseIsArguments; - - -/***/ }, -/* 75 */ -/***/ 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; - - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - module.exports = isArray; - - -/***/ }, -/* 77 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(40), - stubFalse = __webpack_require__(79); - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Built-in value references. */ - var Buffer = moduleExports ? root.Buffer : undefined; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - module.exports = isBuffer; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(78)(module))) - -/***/ }, -/* 78 */ -/***/ function(module, exports) { - - module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - module.webpackPolyfill = 1; - } - return module; - } - - -/***/ }, -/* 79 */ -/***/ function(module, exports) { - - /** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ - function stubFalse() { - return false; - } - - module.exports = stubFalse; - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && - (typeof value == 'number' || reIsUint.test(value)) && - (value > -1 && value % 1 == 0 && value < length); - } - - module.exports = isIndex; - - -/***/ }, -/* 81 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIsTypedArray = __webpack_require__(82), - baseUnary = __webpack_require__(84), - nodeUtil = __webpack_require__(85); - - /* Node.js helper references. */ - var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - module.exports = isTypedArray; - - -/***/ }, -/* 82 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGetTag = __webpack_require__(38), - isLength = __webpack_require__(83), - isObjectLike = __webpack_require__(75); - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - module.exports = baseIsTypedArray; - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - module.exports = isLength; - - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - - module.exports = baseUnary; - - -/***/ }, -/* 85 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(41); - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - module.exports = nodeUtil; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(78)(module))) - -/***/ }, -/* 86 */ -/***/ function(module, exports, __webpack_require__) { - - var isPrototype = __webpack_require__(87), - nativeKeys = __webpack_require__(88); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - module.exports = baseKeys; - - -/***/ }, -/* 87 */ -/***/ function(module, exports) { - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - - return value === proto; - } - - module.exports = isPrototype; - - -/***/ }, -/* 88 */ -/***/ function(module, exports, __webpack_require__) { - - var overArg = __webpack_require__(89); - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeKeys = overArg(Object.keys, Object); - - module.exports = nativeKeys; - - -/***/ }, -/* 89 */ -/***/ function(module, exports) { - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - - module.exports = overArg; - - -/***/ }, -/* 90 */ -/***/ function(module, exports, __webpack_require__) { - - var isFunction = __webpack_require__(37), - isLength = __webpack_require__(83); - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - module.exports = isArrayLike; - - -/***/ }, -/* 91 */ -/***/ function(module, exports, __webpack_require__) { - - var copyObject = __webpack_require__(69), - keysIn = __webpack_require__(92); - - /** - * The base implementation of `_.assignIn` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - - module.exports = baseAssignIn; - - -/***/ }, -/* 92 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayLikeKeys = __webpack_require__(71), - baseKeysIn = __webpack_require__(93), - isArrayLike = __webpack_require__(90); - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - - module.exports = keysIn; - - -/***/ }, -/* 93 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(44), - isPrototype = __webpack_require__(87), - nativeKeysIn = __webpack_require__(94); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), - result = []; - - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - module.exports = baseKeysIn; - - -/***/ }, -/* 94 */ -/***/ function(module, exports) { - - /** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; - } - - module.exports = nativeKeysIn; - - -/***/ }, -/* 95 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(40); - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Built-in value references. */ - var Buffer = moduleExports ? root.Buffer : undefined, - allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; - - /** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, - result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - - buffer.copy(result); - return result; - } - - module.exports = cloneBuffer; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(78)(module))) - -/***/ }, -/* 96 */ -/***/ function(module, exports) { - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - module.exports = copyArray; - - -/***/ }, -/* 97 */ -/***/ function(module, exports, __webpack_require__) { - - var copyObject = __webpack_require__(69), - getSymbols = __webpack_require__(98); - - /** - * Copies own symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - - module.exports = copySymbols; - - -/***/ }, -/* 98 */ -/***/ function(module, exports, __webpack_require__) { - - var overArg = __webpack_require__(89), - stubArray = __webpack_require__(99); - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeGetSymbols = Object.getOwnPropertySymbols; - - /** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray; - - module.exports = getSymbols; - - -/***/ }, -/* 99 */ -/***/ function(module, exports) { - - /** - * This method returns a new empty array. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. - * @example - * - * var arrays = _.times(2, _.stubArray); - * - * console.log(arrays); - * // => [[], []] - * - * console.log(arrays[0] === arrays[1]); - * // => false - */ - function stubArray() { - return []; - } - - module.exports = stubArray; - - -/***/ }, -/* 100 */ -/***/ function(module, exports, __webpack_require__) { - - var copyObject = __webpack_require__(69), - getSymbolsIn = __webpack_require__(101); - - /** - * Copies own and inherited symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - - module.exports = copySymbolsIn; - - -/***/ }, -/* 101 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayPush = __webpack_require__(102), - getPrototype = __webpack_require__(103), - getSymbols = __webpack_require__(98), - stubArray = __webpack_require__(99); - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeGetSymbols = Object.getOwnPropertySymbols; - - /** - * Creates an array of the own and inherited enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result = []; - while (object) { - arrayPush(result, getSymbols(object)); - object = getPrototype(object); - } - return result; - }; - - module.exports = getSymbolsIn; - - -/***/ }, -/* 102 */ -/***/ function(module, exports) { - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - module.exports = arrayPush; - - -/***/ }, -/* 103 */ -/***/ function(module, exports, __webpack_require__) { - - var overArg = __webpack_require__(89); - - /** Built-in value references. */ - var getPrototype = overArg(Object.getPrototypeOf, Object); - - module.exports = getPrototype; - - -/***/ }, -/* 104 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGetAllKeys = __webpack_require__(105), - getSymbols = __webpack_require__(98), - keys = __webpack_require__(70); - - /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - - module.exports = getAllKeys; - - -/***/ }, -/* 105 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayPush = __webpack_require__(102), - isArray = __webpack_require__(76); - - /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); - } - - module.exports = baseGetAllKeys; - - -/***/ }, -/* 106 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGetAllKeys = __webpack_require__(105), - getSymbolsIn = __webpack_require__(101), - keysIn = __webpack_require__(92); - - /** - * Creates an array of own and inherited enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - - module.exports = getAllKeysIn; - - -/***/ }, -/* 107 */ -/***/ function(module, exports, __webpack_require__) { - - var DataView = __webpack_require__(108), - Map = __webpack_require__(34), - Promise = __webpack_require__(109), - Set = __webpack_require__(110), - WeakMap = __webpack_require__(111), - baseGetTag = __webpack_require__(38), - toSource = __webpack_require__(47); - - /** `Object#toString` result references. */ - var mapTag = '[object Map]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - setTag = '[object Set]', - weakMapTag = '[object WeakMap]'; - - var dataViewTag = '[object DataView]'; - - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); - - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - var getTag = baseGetTag; - - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; - - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; - } - - module.exports = getTag; - - -/***/ }, -/* 108 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(35), - root = __webpack_require__(40); - - /* Built-in method references that are verified to be native. */ - var DataView = getNative(root, 'DataView'); - - module.exports = DataView; - - -/***/ }, -/* 109 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(35), - root = __webpack_require__(40); - - /* Built-in method references that are verified to be native. */ - var Promise = getNative(root, 'Promise'); - - module.exports = Promise; - - -/***/ }, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(35), - root = __webpack_require__(40); - - /* Built-in method references that are verified to be native. */ - var Set = getNative(root, 'Set'); - - module.exports = Set; - - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(35), - root = __webpack_require__(40); - - /* Built-in method references that are verified to be native. */ - var WeakMap = getNative(root, 'WeakMap'); - - module.exports = WeakMap; - - -/***/ }, -/* 112 */ -/***/ function(module, exports) { - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - module.exports = initCloneArray; - - -/***/ }, -/* 113 */ -/***/ function(module, exports, __webpack_require__) { - - var cloneArrayBuffer = __webpack_require__(114), - cloneDataView = __webpack_require__(116), - cloneMap = __webpack_require__(117), - cloneRegExp = __webpack_require__(121), - cloneSet = __webpack_require__(122), - cloneSymbol = __webpack_require__(125), - cloneTypedArray = __webpack_require__(126); - - /** `Object#toString` result references. */ - var boolTag = '[object Boolean]', - dateTag = '[object Date]', - mapTag = '[object Map]', - numberTag = '[object Number]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, cloneFunc, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case dataViewTag: - return cloneDataView(object, isDeep); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - return cloneTypedArray(object, isDeep); - - case mapTag: - return cloneMap(object, isDeep, cloneFunc); - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - return cloneRegExp(object); - - case setTag: - return cloneSet(object, isDeep, cloneFunc); - - case symbolTag: - return cloneSymbol(object); - } - } - - module.exports = initCloneByTag; - - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var Uint8Array = __webpack_require__(115); - - /** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; - } - - module.exports = cloneArrayBuffer; - - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - var root = __webpack_require__(40); - - /** Built-in value references. */ - var Uint8Array = root.Uint8Array; - - module.exports = Uint8Array; - - -/***/ }, -/* 116 */ -/***/ function(module, exports, __webpack_require__) { - - var cloneArrayBuffer = __webpack_require__(114); - - /** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - - module.exports = cloneDataView; - - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - var addMapEntry = __webpack_require__(118), - arrayReduce = __webpack_require__(119), - mapToArray = __webpack_require__(120); - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1; - - /** - * Creates a clone of `map`. - * - * @private - * @param {Object} map The map to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned map. - */ - function cloneMap(map, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map); - return arrayReduce(array, addMapEntry, new map.constructor); - } - - module.exports = cloneMap; - - -/***/ }, -/* 118 */ -/***/ function(module, exports) { - - /** - * Adds the key-value `pair` to `map`. - * - * @private - * @param {Object} map The map to modify. - * @param {Array} pair The key-value pair to add. - * @returns {Object} Returns `map`. - */ - function addMapEntry(map, pair) { - // Don't return `map.set` because it's not chainable in IE 11. - map.set(pair[0], pair[1]); - return map; - } - - module.exports = addMapEntry; - - -/***/ }, -/* 119 */ -/***/ function(module, exports) { - - /** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array == null ? 0 : array.length; - - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - module.exports = arrayReduce; - - -/***/ }, -/* 120 */ -/***/ function(module, exports) { - - /** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ - function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - - module.exports = mapToArray; - - -/***/ }, -/* 121 */ -/***/ function(module, exports) { - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ - function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; - } - - module.exports = cloneRegExp; - - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - var addSetEntry = __webpack_require__(123), - arrayReduce = __webpack_require__(119), - setToArray = __webpack_require__(124); - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1; - - /** - * Creates a clone of `set`. - * - * @private - * @param {Object} set The set to clone. - * @param {Function} cloneFunc The function to clone values. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned set. - */ - function cloneSet(set, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set); - return arrayReduce(array, addSetEntry, new set.constructor); - } - - module.exports = cloneSet; - - -/***/ }, -/* 123 */ -/***/ function(module, exports) { - - /** - * Adds `value` to `set`. - * - * @private - * @param {Object} set The set to modify. - * @param {*} value The value to add. - * @returns {Object} Returns `set`. - */ - function addSetEntry(set, value) { - // Don't return `set.add` because it's not chainable in IE 11. - set.add(value); - return set; - } - - module.exports = addSetEntry; - - -/***/ }, -/* 124 */ -/***/ function(module, exports) { - - /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ - function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; - } - - module.exports = setToArray; - - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - var Symbol = __webpack_require__(39); - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; - - /** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ - function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; - } - - module.exports = cloneSymbol; - - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - var cloneArrayBuffer = __webpack_require__(114); - - /** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - - module.exports = cloneTypedArray; - - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - var baseCreate = __webpack_require__(128), - getPrototype = __webpack_require__(103), - isPrototype = __webpack_require__(87); - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototype(object)) - : {}; - } - - module.exports = initCloneObject; - - -/***/ }, -/* 128 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(44); - - /** Built-in value references. */ - var objectCreate = Object.create; - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object; - object.prototype = undefined; - return result; - }; - }()); - - module.exports = baseCreate; - - -/***/ }, -/* 129 */ -/***/ function(module, exports, __webpack_require__) { - - var castPath = __webpack_require__(130), - last = __webpack_require__(138), - parent = __webpack_require__(139), - toKey = __webpack_require__(141); - - /** - * The base implementation of `_.unset`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The property path to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - */ - function baseUnset(object, path) { - path = castPath(path, object); - object = parent(object, path); - return object == null || delete object[toKey(last(path))]; - } - - module.exports = baseUnset; - - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - var isArray = __webpack_require__(76), - isKey = __webpack_require__(131), - stringToPath = __webpack_require__(133), - toString = __webpack_require__(136); - - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - - module.exports = castPath; - - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - var isArray = __webpack_require__(76), - isSymbol = __webpack_require__(132); - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/; - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); - } - - module.exports = isKey; - - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGetTag = __webpack_require__(38), - isObjectLike = __webpack_require__(75); - - /** `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; - - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - var memoizeCapped = __webpack_require__(134); - - /** Used to match property names within property paths. */ - var reLeadingDot = /^\./, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath = memoizeCapped(function(string) { - var result = []; - if (reLeadingDot.test(string)) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, string) { - result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - }); - - module.exports = stringToPath; - - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var memoize = __webpack_require__(135); - - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; - - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - - var cache = result.cache; - return result; - } - - module.exports = memoizeCapped; - - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var MapCache = __webpack_require__(49); - - /** Error message constants. */ - var FUNC_ERROR_TEXT = 'Expected a function'; - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache); - return memoized; - } - - // Expose `MapCache`. - memoize.Cache = MapCache; - - module.exports = memoize; - - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var baseToString = __webpack_require__(137); - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } - - module.exports = toString; - - -/***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - - var Symbol = __webpack_require__(39), - arrayMap = __webpack_require__(18), - isArray = __webpack_require__(76), - isSymbol = __webpack_require__(132); - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0; - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - module.exports = baseToString; - - -/***/ }, -/* 138 */ -/***/ function(module, exports) { - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined; - } - - module.exports = last; - - -/***/ }, -/* 139 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGet = __webpack_require__(140), - baseSlice = __webpack_require__(142); - - /** - * Gets the parent value at `path` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path to get the parent value of. - * @returns {*} Returns the parent value. - */ - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - - module.exports = parent; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - var castPath = __webpack_require__(130), - toKey = __webpack_require__(141); - - /** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path) { - path = castPath(path, object); - - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return (index && index == length) ? object : undefined; - } - - module.exports = baseGet; - - -/***/ }, -/* 141 */ -/***/ function(module, exports, __webpack_require__) { - - var isSymbol = __webpack_require__(132); - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0; - - /** - * Converts `value` to a string key if it's not a string or symbol. - * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. - */ - function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - module.exports = toKey; - - -/***/ }, -/* 142 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - module.exports = baseSlice; - - -/***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - var flatten = __webpack_require__(144), - overRest = __webpack_require__(147), - setToString = __webpack_require__(149); - - /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ''); - } - - module.exports = flatRest; - - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - var baseFlatten = __webpack_require__(145); - - /** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - - module.exports = flatten; - - -/***/ }, -/* 145 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayPush = __webpack_require__(102), - isFlattenable = __webpack_require__(146); - - /** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - - predicate || (predicate = isFlattenable); - result || (result = []); - - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - module.exports = baseFlatten; - - -/***/ }, -/* 146 */ -/***/ function(module, exports, __webpack_require__) { - - var Symbol = __webpack_require__(39), - isArguments = __webpack_require__(73), - isArray = __webpack_require__(76); - - /** Built-in value references. */ - var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; - - /** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ - function isFlattenable(value) { - return isArray(value) || isArguments(value) || - !!(spreadableSymbol && value && value[spreadableSymbol]); - } - - module.exports = isFlattenable; - - -/***/ }, -/* 147 */ -/***/ function(module, exports, __webpack_require__) { - - var apply = __webpack_require__(148); - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - module.exports = overRest; - - -/***/ }, -/* 148 */ -/***/ function(module, exports) { - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - module.exports = apply; - - -/***/ }, -/* 149 */ -/***/ function(module, exports, __webpack_require__) { - - var baseSetToString = __webpack_require__(150), - shortOut = __webpack_require__(153); - - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = shortOut(baseSetToString); - - module.exports = setToString; - - -/***/ }, -/* 150 */ -/***/ function(module, exports, __webpack_require__) { - - var constant = __webpack_require__(151), - defineProperty = __webpack_require__(67), - identity = __webpack_require__(152); - - /** - * The base implementation of `setToString` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(string), - 'writable': true - }); - }; - - module.exports = baseSetToString; - - -/***/ }, -/* 151 */ -/***/ function(module, exports) { - - /** - * Creates a function that returns `value`. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new constant function. - * @example - * - * var objects = _.times(2, _.constant({ 'a': 1 })); - * - * console.log(objects); - * // => [{ 'a': 1 }, { 'a': 1 }] - * - * console.log(objects[0] === objects[1]); - * // => true - */ - function constant(value) { - return function() { - return value; - }; - } - - module.exports = constant; - - -/***/ }, -/* 152 */ -/***/ function(module, exports) { - - /** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; - * - * console.log(_.identity(object) === object); - * // => true - */ - function identity(value) { - return value; - } - - module.exports = identity; - - -/***/ }, -/* 153 */ -/***/ function(module, exports) { - - /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 800, - HOT_SPAN = 16; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeNow = Date.now; - - /** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. - */ - function shortOut(func) { - var count = 0, - lastCalled = 0; - - return function() { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined, arguments); - }; - } - - module.exports = shortOut; - - -/***/ }, -/* 154 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIndexOf = __webpack_require__(155), - isArrayLike = __webpack_require__(90), - isString = __webpack_require__(159), - toInteger = __webpack_require__(160), - values = __webpack_require__(163); - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; - - /** - * Checks if `value` is in `collection`. If `collection` is a string, it's - * checked for a substring of `value`, otherwise - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * is used for equality comparisons. If `fromIndex` is negative, it's used as - * the offset from the end of `collection`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {boolean} Returns `true` if `value` is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'a': 1, 'b': 2 }, 1); - * // => true - * - * _.includes('abcd', 'bc'); - * // => true - */ - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values(collection); - fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; - - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString(collection) - ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) - : (!!length && baseIndexOf(collection, value, fromIndex) > -1); - } - - module.exports = includes; - - -/***/ }, -/* 155 */ -/***/ function(module, exports, __webpack_require__) { - - var baseFindIndex = __webpack_require__(156), - baseIsNaN = __webpack_require__(157), - strictIndexOf = __webpack_require__(158); - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); - } - - module.exports = baseIndexOf; - - -/***/ }, -/* 156 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - module.exports = baseFindIndex; - - -/***/ }, -/* 157 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - module.exports = baseIsNaN; - - -/***/ }, -/* 158 */ -/***/ function(module, exports) { - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - module.exports = strictIndexOf; - - -/***/ }, -/* 159 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGetTag = __webpack_require__(38), - isArray = __webpack_require__(76), - isObjectLike = __webpack_require__(75); - - /** `Object#toString` result references. */ - var stringTag = '[object String]'; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); - } - - module.exports = isString; - - -/***/ }, -/* 160 */ -/***/ function(module, exports, __webpack_require__) { - - var toFinite = __webpack_require__(161); - - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; - } - - module.exports = toInteger; - - -/***/ }, -/* 161 */ -/***/ function(module, exports, __webpack_require__) { - - var toNumber = __webpack_require__(162); - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_INTEGER = 1.7976931348623157e+308; - - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - - module.exports = toFinite; - - -/***/ }, -/* 162 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(44), - isSymbol = __webpack_require__(132); - - /** 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; + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); } - 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; - - -/***/ }, -/* 163 */ -/***/ function(module, exports, __webpack_require__) { - - var baseValues = __webpack_require__(164), - keys = __webpack_require__(70); - - /** - * Creates an array of the own enumerable string keyed property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - - module.exports = values; - - -/***/ }, -/* 164 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayMap = __webpack_require__(18); - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - - module.exports = baseValues; - - -/***/ }, -/* 165 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(166); - -/***/ }, -/* 166 */ -/***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule update - */ + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } - /* global hasOwnProperty:true */ + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } - 'use strict'; + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } - var _prodInvariant = __webpack_require__(168), - _assign = __webpack_require__(169); + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } - var keyOf = __webpack_require__(170); - var invariant = __webpack_require__(171); - var hasOwnProperty = {}.hasOwnProperty; + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } - function shallowCopy(x) { - if (Array.isArray(x)) { - return x.concat(); - } else if (x && typeof x === 'object') { - return _assign(new x.constructor(), x); - } else { - return x; + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); } - } - var COMMAND_PUSH = keyOf({ $push: null }); - var COMMAND_UNSHIFT = keyOf({ $unshift: null }); - var COMMAND_SPLICE = keyOf({ $splice: null }); - var COMMAND_SET = keyOf({ $set: null }); - var COMMAND_MERGE = keyOf({ $merge: null }); - var COMMAND_APPLY = keyOf({ $apply: null }); + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } - var ALL_COMMANDS_LIST = [COMMAND_PUSH, COMMAND_UNSHIFT, COMMAND_SPLICE, COMMAND_SET, COMMAND_MERGE, COMMAND_APPLY]; + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } - var ALL_COMMANDS_SET = {}; + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } - ALL_COMMANDS_LIST.forEach(function (command) { - ALL_COMMANDS_SET[command] = true; - }); + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } - function invariantArrayCase(value, spec, command) { - !Array.isArray(value) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected target of %s to be an array; got %s.', command, value) : _prodInvariant('1', command, value) : void 0; - var specValue = spec[command]; - !Array.isArray(specValue) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be an array; got %s. Did you forget to wrap your parameter in an array?', command, specValue) : _prodInvariant('2', command, specValue) : void 0; - } + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } - /** - * Returns a updated shallow copy of an object without mutating the original. - * See https://facebook.github.io/react/docs/update.html for details. - */ - function update(value, spec) { - !(typeof spec === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): You provided a key path to update() that did not contain one of %s. Did you forget to include {%s: ...}?', ALL_COMMANDS_LIST.join(', '), COMMAND_SET) : _prodInvariant('3', ALL_COMMANDS_LIST.join(', '), COMMAND_SET) : void 0; + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } - if (hasOwnProperty.call(spec, COMMAND_SET)) { - !(Object.keys(spec).length === 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot have more than one key in an object with %s', COMMAND_SET) : _prodInvariant('4', COMMAND_SET) : void 0; + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } - return spec[COMMAND_SET]; + return true; + default: + return false; + } } - var nextValue = shallowCopy(value); + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } - if (hasOwnProperty.call(spec, COMMAND_MERGE)) { - var mergeObj = spec[COMMAND_MERGE]; - !(mergeObj && typeof mergeObj === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): %s expects a spec of type \'object\'; got %s', COMMAND_MERGE, mergeObj) : _prodInvariant('5', COMMAND_MERGE, mergeObj) : void 0; - !(nextValue && typeof nextValue === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): %s expects a target of type \'object\'; got %s', COMMAND_MERGE, nextValue) : _prodInvariant('6', COMMAND_MERGE, nextValue) : void 0; - _assign(nextValue, spec[COMMAND_MERGE]); - } + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } - if (hasOwnProperty.call(spec, COMMAND_PUSH)) { - invariantArrayCase(value, spec, COMMAND_PUSH); - spec[COMMAND_PUSH].forEach(function (item) { - nextValue.push(item); - }); - } + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } - if (hasOwnProperty.call(spec, COMMAND_UNSHIFT)) { - invariantArrayCase(value, spec, COMMAND_UNSHIFT); - spec[COMMAND_UNSHIFT].forEach(function (item) { - nextValue.unshift(item); - }); + return false; } - if (hasOwnProperty.call(spec, COMMAND_SPLICE)) { - !Array.isArray(value) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s target to be an array; got %s', COMMAND_SPLICE, value) : _prodInvariant('7', COMMAND_SPLICE, value) : void 0; - !Array.isArray(spec[COMMAND_SPLICE]) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be an array of arrays; got %s. Did you forget to wrap your parameters in an array?', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : _prodInvariant('8', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : void 0; - spec[COMMAND_SPLICE].forEach(function (args) { - !Array.isArray(args) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be an array of arrays; got %s. Did you forget to wrap your parameters in an array?', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : _prodInvariant('8', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : void 0; - nextValue.splice.apply(nextValue, args); - }); + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; } - if (hasOwnProperty.call(spec, COMMAND_APPLY)) { - !(typeof spec[COMMAND_APPLY] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be a function; got %s.', COMMAND_APPLY, spec[COMMAND_APPLY]) : _prodInvariant('9', COMMAND_APPLY, spec[COMMAND_APPLY]) : void 0; - nextValue = spec[COMMAND_APPLY](nextValue); + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; } - for (var k in spec) { - if (!(ALL_COMMANDS_SET.hasOwnProperty(k) && ALL_COMMANDS_SET[k])) { - nextValue[k] = update(value[k], spec[k]); + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; } + return propValue.constructor.name; } - return nextValue; - } + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; - module.exports = update; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(167))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) /***/ }, -/* 167 */ +/* 20 */ /***/ function(module, exports) { // shim for using process in browser @@ -9357,186 +5401,53 @@ return /******/ (function(modules) { // webpackBootstrap var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } - }; - - // v8 likes predictible objects - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - process.title = 'browser'; - process.browser = true; - process.env = {}; - process.argv = []; - process.version = ''; // empty string to avoid regexp issues - process.versions = {}; - - function noop() {} - - process.on = noop; - process.addListener = noop; - process.once = noop; - process.off = noop; - process.removeListener = noop; - process.removeAllListeners = noop; - process.emit = noop; - - process.binding = function (name) { - throw new Error('process.binding is not supported'); - }; - - process.cwd = function () { return '/' }; - process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); - }; - process.umask = function() { return 0; }; - - -/***/ }, -/* 168 */ -/***/ function(module, exports) { - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule reactProdInvariant - * - */ - 'use strict'; - - /** - * WARNING: DO NOT manually require this module. - * This is a replacement for `invariant(...)` used by the error code system - * and will _only_ be required by the corresponding babel pass. - * It always throws. - */ - - function reactProdInvariant(code) { - var argCount = arguments.length - 1; - - var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; - - for (var argIdx = 0; argIdx < argCount; argIdx++) { - message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); - } - - message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; - - var error = new Error(message); - error.name = 'Invariant Violation'; - error.framesToPop = 1; // we don't care about reactProdInvariant's own frame - - throw error; - } - - module.exports = reactProdInvariant; - -/***/ }, -/* 169 */ -/***/ function(module, exports) { - - 'use strict'; - /* eslint-disable no-unused-vars */ - var hasOwnProperty = Object.prototype.hasOwnProperty; - var propIsEnumerable = Object.prototype.propertyIsEnumerable; - - function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); - } - - function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; - return true; - } catch (e) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; - module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); + function noop() {} - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; - if (Object.getOwnPropertySymbols) { - symbols = Object.getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; - return to; + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); }; + process.umask = function() { return 0; }; /***/ }, -/* 170 */ +/* 21 */ /***/ function(module, exports) { "use strict"; @@ -9549,33 +5460,37 @@ return /******/ (function(modules) { // webpackBootstrap * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * + * */ + function makeEmptyFunction(arg) { + return function () { + return arg; + }; + } + /** - * Allows extraction of a minified key. Let's the build system minify keys - * without losing the ability to dynamically use key strings as values - * themselves. Pass in an object with a single key/val pair and it will return - * you the string key of that single record. Suppose you want to grab the - * value for a key 'className' inside of an object. Key/val minification may - * have aliased that key to be 'xa12'. keyOf({className: null}) will return - * 'xa12' in that case. Resolve keys you want to use once at startup time, then - * reuse those resolutions. + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. */ - var keyOf = function keyOf(oneKeyObj) { - var key; - for (key in oneKeyObj) { - if (!oneKeyObj.hasOwnProperty(key)) { - continue; - } - return key; - } - return null; + var emptyFunction = function emptyFunction() {}; + + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); + emptyFunction.thatReturnsThis = function () { + return this; + }; + emptyFunction.thatReturnsArgument = function (arg) { + return arg; }; - module.exports = keyOf; + module.exports = emptyFunction; /***/ }, -/* 171 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -9601,12 +5516,18 @@ return /******/ (function(modules) { // webpackBootstrap * will remain to ensure logic does not differ in production. */ - function invariant(condition, format, a, b, c, d, e, f) { - if (process.env.NODE_ENV !== 'production') { + var validateFormat = function validateFormat(format) {}; + + if (process.env.NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { if (format === undefined) { throw new Error('invariant requires an error message argument'); } - } + }; + } + + function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); if (!condition) { var error; @@ -9627,729 +5548,635 @@ return /******/ (function(modules) { // webpackBootstrap } module.exports = invariant; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(167))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) /***/ }, -/* 172 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.jQuery = exports.animation = undefined; - - var _react = __webpack_require__(2); - - var _react2 = _interopRequireDefault(_react); - - var _reactAddonsUpdate = __webpack_require__(165); - - var _reactAddonsUpdate2 = _interopRequireDefault(_reactAddonsUpdate); - - var _classnames = __webpack_require__(3); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _animationMixin = __webpack_require__(173); - - var _animationMixin2 = _interopRequireDefault(_animationMixin); - - var _jQueryMixin = __webpack_require__(178); - - var _jQueryMixin2 = _interopRequireDefault(_jQueryMixin); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function noop() {} - - var ToastMessageSpec = { - displayName: "ToastMessage", - - getDefaultProps: function getDefaultProps() { - var iconClassNames = { - error: "toast-error", - info: "toast-info", - success: "toast-success", - warning: "toast-warning" - }; - - return { - className: "toast", - iconClassNames: iconClassNames, - titleClassName: "toast-title", - messageClassName: "toast-message", - tapToDismiss: true, - closeButton: false - }; - }, - handleOnClick: function handleOnClick(event) { - this.props.handleOnClick(event); - if (this.props.tapToDismiss) { - this.hideToast(true); - } - }, - _handle_close_button_click: function _handle_close_button_click(event) { - event.stopPropagation(); - this.hideToast(true); - }, - _handle_remove: function _handle_remove() { - this.props.handleRemove(this.props.toastId); - }, - _render_close_button: function _render_close_button() { - return this.props.closeButton ? _react2.default.createElement("button", { - className: "toast-close-button", role: "button", - onClick: this._handle_close_button_click, - dangerouslySetInnerHTML: { __html: "×" } - }) : false; - }, - _render_title_element: function _render_title_element() { - return this.props.title ? _react2.default.createElement( - "div", - { className: this.props.titleClassName }, - this.props.title - ) : false; - }, - _render_message_element: function _render_message_element() { - return this.props.message ? _react2.default.createElement( - "div", - { className: this.props.messageClassName }, - this.props.message - ) : false; - }, - render: function render() { - var iconClassName = this.props.iconClassName || this.props.iconClassNames[this.props.type]; - - return _react2.default.createElement( - "div", - { - className: (0, _classnames2.default)(this.props.className, iconClassName), - style: this.props.style, - onClick: this.handleOnClick, - onMouseEnter: this.handleMouseEnter, - onMouseLeave: this.handleMouseLeave - }, - this._render_close_button(), - this._render_title_element(), - this._render_message_element() - ); - } - }; - - var animation = exports.animation = _react2.default.createClass((0, _reactAddonsUpdate2.default)(ToastMessageSpec, { - displayName: { $set: "ToastMessage.animation" }, - mixins: { $set: [_animationMixin2.default] } - })); - - var jQuery = exports.jQuery = _react2.default.createClass((0, _reactAddonsUpdate2.default)(ToastMessageSpec, { - displayName: { $set: "ToastMessage.jQuery" }, - mixins: { $set: [_jQueryMixin2.default] } - })); - - /* - * assign default noop functions + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * */ - ToastMessageSpec.handleMouseEnter = noop; - ToastMessageSpec.handleMouseLeave = noop; - ToastMessageSpec.hideToast = noop; - - var ToastMessage = _react2.default.createClass(ToastMessageSpec); - - ToastMessage.animation = animation; - ToastMessage.jQuery = jQuery; - - exports.default = ToastMessage; - -/***/ }, -/* 173 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _ReactTransitionEvents = __webpack_require__(174); - var _ReactTransitionEvents2 = _interopRequireDefault(_ReactTransitionEvents); - - var _reactDom = __webpack_require__(6); + 'use strict'; - var _reactDom2 = _interopRequireDefault(_reactDom); + var emptyFunction = __webpack_require__(21); - var _elementClass = __webpack_require__(177); + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ - var _elementClass2 = _interopRequireDefault(_elementClass); + var warning = emptyFunction; - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (process.env.NODE_ENV !== 'production') { + (function () { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } - var TICK = 17; - var toString = Object.prototype.toString; - exports.default = { - getDefaultProps: function getDefaultProps() { - return { - transition: null, // some examples defined in index.scss (scale, fadeInOut, rotate) - showAnimation: "animated bounceIn", // or other animations from animate.css - hideAnimation: "animated bounceOut", - timeOut: 5000, - extendedTimeOut: 1000 + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} }; - }, - componentWillMount: function componentWillMount() { - this.classNameQueue = []; - this.isHiding = false; - this.intervalId = null; - }, - componentDidMount: function componentDidMount() { - var _this = this; - - this._is_mounted = true; - this._show(); - var node = _reactDom2.default.findDOMNode(this); - var onHideComplete = function onHideComplete() { - if (_this.isHiding) { - _this._set_is_hiding(false); - _ReactTransitionEvents2.default.removeEndEventListener(node, onHideComplete); - _this._handle_remove(); + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); } - }; - _ReactTransitionEvents2.default.addEndEventListener(node, onHideComplete); - if (this.props.timeOut > 0) { - this._set_interval_id(setTimeout(this.hideToast, this.props.timeOut)); - } - }, - componentWillUnmount: function componentWillUnmount() { - this._is_mounted = false; - if (this.intervalId) { - clearTimeout(this.intervalId); - } - }, - _set_transition: function _set_transition(hide) { - var animationType = hide ? "leave" : "enter"; - var node = _reactDom2.default.findDOMNode(this); - var className = this.props.transition + "-" + animationType; - var activeClassName = className + "-active"; - - var endListener = function endListener(e) { - if (e && e.target !== node) { - return; + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. } - var classList = (0, _elementClass2.default)(node); - classList.remove(className); - classList.remove(activeClassName); + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } - _ReactTransitionEvents2.default.removeEndEventListener(node, endListener); + printWarning.apply(undefined, [format].concat(args)); + } }; + })(); + } - _ReactTransitionEvents2.default.addEndEventListener(node, endListener); - - (0, _elementClass2.default)(node).add(className); - - // Need to do this to actually trigger a transition. - this._queue_class(activeClassName); - }, - _clear_transition: function _clear_transition(hide) { - var node = _reactDom2.default.findDOMNode(this); - var animationType = hide ? "leave" : "enter"; - var className = this.props.transition + "-" + animationType; - var activeClassName = className + "-active"; - - var classList = (0, _elementClass2.default)(node); - classList.remove(className); - classList.remove(activeClassName); - }, - _set_animation: function _set_animation(hide) { - var node = _reactDom2.default.findDOMNode(this); - var animations = this._get_animation_classes(hide); - var endListener = function endListener(e) { - if (e && e.target !== node) { - return; - } + module.exports = warning; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) - animations.forEach(function (anim) { - return (0, _elementClass2.default)(node).remove(anim); - }); +/***/ }, +/* 24 */ +/***/ function(module, exports) { - _ReactTransitionEvents2.default.removeEndEventListener(node, endListener); - }; + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ - _ReactTransitionEvents2.default.addEndEventListener(node, endListener); + 'use strict'; - animations.forEach(function (anim) { - return (0, _elementClass2.default)(node).add(anim); - }); - }, - _get_animation_classes: function _get_animation_classes(hide) { - var animations = hide ? this.props.hideAnimation : this.props.showAnimation; - if ("[object Array]" === toString.call(animations)) { - return animations; - } else if ("string" === typeof animations) { - return animations.split(" "); - } - }, - _clear_animation: function _clear_animation(hide) { - var node = _reactDom2.default.findDOMNode(this); - var animations = this._get_animation_classes(hide); - animations.forEach(function (animation) { - return (0, _elementClass2.default)(node).remove(animation); - }); - }, - _queue_class: function _queue_class(className) { - this.classNameQueue.push(className); + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - if (!this.timeout) { - this.timeout = setTimeout(this._flush_class_name_queue, TICK); - } - }, - _flush_class_name_queue: function _flush_class_name_queue() { - var _this2 = this; - - if (this._is_mounted) { - (function () { - var node = _reactDom2.default.findDOMNode(_this2); - _this2.classNameQueue.forEach(function (className) { - return (0, _elementClass2.default)(node).add(className); - }); - })(); - } - this.classNameQueue.length = 0; - this.timeout = null; - }, - _show: function _show() { - if (this.props.transition) { - this._set_transition(); - } else if (this.props.showAnimation) { - this._set_animation(); - } - }, - handleMouseEnter: function handleMouseEnter() { - clearTimeout(this.intervalId); - this._set_interval_id(null); - if (this.isHiding) { - this._set_is_hiding(false); - - if (this.props.hideAnimation) { - this._clear_animation(true); - } else if (this.props.transition) { - this._clear_transition(true); - } - } - }, - handleMouseLeave: function handleMouseLeave() { - if (!this.isHiding && (this.props.timeOut > 0 || this.props.extendedTimeOut > 0)) { - this._set_interval_id(setTimeout(this.hideToast, this.props.extendedTimeOut)); - } - }, - hideToast: function hideToast(override) { - if (this.isHiding || this.intervalId === null && !override) { - return; - } + module.exports = ReactPropTypesSecret; - this._set_is_hiding(true); - if (this.props.transition) { - this._set_transition(true); - } else if (this.props.hideAnimation) { - this._set_animation(true); - } else { - this._handle_remove(); - } - }, - _set_interval_id: function _set_interval_id(intervalId) { - this.intervalId = intervalId; - }, - _set_is_hiding: function _set_is_hiding(isHiding) { - this.isHiding = isHiding; - } - }; /***/ }, -/* 174 */ +/* 25 */ /***/ function(module, exports, __webpack_require__) { - /** + /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright 2013-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactTransitionEvents */ 'use strict'; - var ExecutionEnvironment = __webpack_require__(175); + var invariant = __webpack_require__(22); + var warning = __webpack_require__(23); - var getVendorPrefixedEventName = __webpack_require__(176); + var ReactPropTypesSecret = __webpack_require__(24); - var endEvents = []; + var loggedTypeFailures = {}; - function detectEvents() { - var animEnd = getVendorPrefixedEventName('animationend'); - var transEnd = getVendorPrefixedEventName('transitionend'); + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error) : void 0; + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; - if (animEnd) { - endEvents.push(animEnd); - } + var stack = getStack ? getStack() : ''; - if (transEnd) { - endEvents.push(transEnd); + process.env.NODE_ENV !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '') : void 0; + } + } + } } } - if (ExecutionEnvironment.canUseDOM) { - detectEvents(); - } - - // We use the raw {add|remove}EventListener() call because EventListener - // does not know how to remove event listeners and we really should - // clean up. Also, these events are not triggered in older browsers - // so we should be A-OK here. + module.exports = checkPropTypes; - function addEventListener(node, eventName, eventListener) { - node.addEventListener(eventName, eventListener, false); - } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) - function removeEventListener(node, eventName, eventListener) { - node.removeEventListener(eventName, eventListener, false); - } +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { - var ReactTransitionEvents = { - addEndEventListener: function (node, eventListener) { - if (endEvents.length === 0) { - // If CSS transitions are not supported, trigger an "end animation" - // event immediately. - window.setTimeout(eventListener, 0); - return; + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports !== "undefined") { + factory(exports); + } else { + var mod = { + exports: {} + }; + factory(mod.exports); + global.sAlertTools = mod.exports; } - endEvents.forEach(function (endEvent) { - addEventListener(node, endEvent, eventListener); - }); - }, + })(this, function (exports) { + 'use strict'; - removeEndEventListener: function (node, eventListener) { - if (endEvents.length === 0) { - return; - } - endEvents.forEach(function (endEvent) { - removeEventListener(node, endEvent, eventListener); + Object.defineProperty(exports, "__esModule", { + value: true }); - } - }; - - module.exports = ReactTransitionEvents; - -/***/ }, -/* 175 */ -/***/ function(module, exports) { - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - 'use strict'; - - var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - - /** - * Simple, lightweight module assisting with the detection and context of - * Worker. Helps avoid circular dependencies and allows code to reason about - * whether or not they are in a Worker, even if they never include the main - * `ReactWorker` dependency. - */ - var ExecutionEnvironment = { - - canUseDOM: canUseDOM, - - canUseWorkers: typeof Worker !== 'undefined', + 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; + }; - canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), + var actualGlobalConfig = void 0; - canUseViewport: canUseDOM && !!window.screen, + var sAlertTools = { + randomId: function randomId() { + return Math.random().toString(36).split('.')[1]; + }, + returnFirstDefined: function returnFirstDefined() { + var value = void 0; + var i = void 0; - isInWorker: !canUseDOM // For now, this is true - might change in the future. + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - }; + for (i = 0; i < args.length; i++) { + if (typeof args[i] !== 'undefined') { + value = args[i]; + break; + } + } + return value; + }, + styleToObj: function styleToObj(input) { + var result = {}, + i = void 0, + entry = void 0, + attributes = input && input.split(';').filter(Boolean); + + for (i = 0; i < attributes.length; i++) { + entry = attributes[i].split(':'); + result[entry.splice(0, 1)[0].trim()] = entry.join(':').trim(); + } + return result; + }, + setGlobalConfig: function setGlobalConfig(config) { + if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') { + actualGlobalConfig = config; + } + }, + getGlobalConfig: function getGlobalConfig() { + return actualGlobalConfig; + } + }; - module.exports = ExecutionEnvironment; + exports.default = sAlertTools; + }); /***/ }, -/* 176 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { - /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getVendorPrefixedEventName - */ - - 'use strict'; + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports !== "undefined") { + factory(exports); + } else { + var mod = { + exports: {} + }; + factory(mod.exports); + global.sAlertStore = mod.exports; + } + })(this, function (exports) { + 'use strict'; - var ExecutionEnvironment = __webpack_require__(175); + Object.defineProperty(exports, "__esModule", { + value: true + }); - /** - * Generate a mapping of standard vendor prefixes using the defined style property and event name. - * - * @param {string} styleProp - * @param {string} eventName - * @returns {object} - */ - function makePrefixMap(styleProp, eventName) { - var prefixes = {}; + function _toConsumableArray(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } - prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); - prefixes['Webkit' + styleProp] = 'webkit' + eventName; - prefixes['Moz' + styleProp] = 'moz' + eventName; - prefixes['ms' + styleProp] = 'MS' + eventName; - prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); + return arr2; + } else { + return Array.from(arr); + } + } - return prefixes; - } + // custom simple store based on a awesome Redux library https://github.com/rackt/redux - /** - * A list of event names to a configurable list of vendor prefixes. - */ - var vendorPrefixes = { - animationend: makePrefixMap('Animation', 'AnimationEnd'), - animationiteration: makePrefixMap('Animation', 'AnimationIteration'), - animationstart: makePrefixMap('Animation', 'AnimationStart'), - transitionend: makePrefixMap('Transition', 'TransitionEnd') - }; + var createSAlertStore = function createSAlertStore(reducer) { + var state = void 0; + var listeners = []; + var getState = function getState() { + return state; + }; + var dispatch = function dispatch(action) { + state = reducer(state, action); + listeners.forEach(function (listener) { + return listener(); + }); + }; + var subscribe = function subscribe(listener) { + listeners.push(listener); + return function () { + listeners = listeners.filter(function (l) { + return l !== listener; + }); + }; + }; + dispatch({}); + return { + getState: getState, dispatch: dispatch, subscribe: subscribe + }; + }; - /** - * Event names that have already been detected and prefixed (if applicable). - */ - var prefixedEventNames = {}; + var insert = function insert(state, action) { + return [].concat(_toConsumableArray(state), [action.data]); + }; - /** - * Element to check for prefixes on. - */ - var style = {}; + var remove = function remove(state, action) { + var elemToRemoveArray = state.slice().filter(function (item) { + return item.id === action.data.id; + }); + if (Array.isArray(elemToRemoveArray)) { + var elemToRemoveIndex = state.indexOf(elemToRemoveArray[0]); + return [].concat(_toConsumableArray(state.slice(0, elemToRemoveIndex)), _toConsumableArray(state.slice(elemToRemoveIndex + 1))); + } + return state; + }; - /** - * Bootstrap if a DOM exists. - */ - if (ExecutionEnvironment.canUseDOM) { - style = document.createElement('div').style; - - // On some platforms, in particular some releases of Android 4.x, - // the un-prefixed "animation" and "transition" properties are defined on the - // style object but the events that fire will still be prefixed, so we need - // to check if the un-prefixed events are usable, and if not remove them from the map. - if (!('AnimationEvent' in window)) { - delete vendorPrefixes.animationend.animation; - delete vendorPrefixes.animationiteration.animation; - delete vendorPrefixes.animationstart.animation; - } + var alertsReducer = function alertsReducer() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var action = arguments[1]; + + switch (action.type) { + case 'INSERT': + return insert(state, action); + case 'REMOVE': + return remove(state, action); + case 'REMOVEALL': + return []; + default: + return state; + } + }; - // Same as above - if (!('TransitionEvent' in window)) { - delete vendorPrefixes.transitionend.transition; - } - } + var sAlertStore = createSAlertStore(alertsReducer); - /** - * Attempts to determine the correct vendor prefixed event name. - * - * @param {string} eventName - * @returns {string} - */ - function getVendorPrefixedEventName(eventName) { - if (prefixedEventNames[eventName]) { - return prefixedEventNames[eventName]; - } else if (!vendorPrefixes[eventName]) { - return eventName; - } + exports.default = sAlertStore; + }); - var prefixMap = vendorPrefixes[eventName]; +/***/ }, +/* 28 */ +/***/ function(module, exports, __webpack_require__) { - for (var styleProp in prefixMap) { - if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) { - return prefixedEventNames[eventName] = prefixMap[styleProp]; + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(18)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports !== "undefined") { + factory(exports, require('react'), require('prop-types')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, global.react, global.propTypes); + global.SAlertContentTmpl = mod.exports; } - } + })(this, function (exports, _react, _propTypes) { + 'use strict'; - return ''; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); - module.exports = getVendorPrefixedEventName; + var _react2 = _interopRequireDefault(_react); -/***/ }, -/* 177 */ -/***/ function(module, exports) { + var _propTypes2 = _interopRequireDefault(_propTypes); - module.exports = function(opts) { - return new ElementClass(opts) - } + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } - function indexOf(arr, prop) { - if (arr.indexOf) return arr.indexOf(prop) - for (var i = 0, len = arr.length; i < len; i++) - if (arr[i] === prop) return i - return -1 - } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } - function ElementClass(opts) { - if (!(this instanceof ElementClass)) return new ElementClass(opts) - var self = this - if (!opts) opts = {} + 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); + } + } - // similar doing instanceof HTMLElement but works in IE8 - if (opts.nodeType) opts = {el: opts} + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); - this.opts = opts - this.el = opts.el || document.body - if (typeof this.el !== 'object') this.el = document.querySelector(this.el) - } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } - ElementClass.prototype.add = function(className) { - var el = this.el - if (!el) return - if (el.className === "") return el.className = className - var classes = el.className.split(' ') - if (indexOf(classes, className) > -1) return classes - classes.push(className) - el.className = classes.join(' ') - return classes - } + return call && (typeof call === "object" || typeof call === "function") ? call : self; + } - ElementClass.prototype.remove = function(className) { - var el = this.el - if (!el) return - if (el.className === "") return - var classes = el.className.split(' ') - var idx = indexOf(classes, className) - if (idx > -1) classes.splice(idx, 1) - el.className = classes.join(' ') - return classes - } + 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); + } - ElementClass.prototype.has = function(className) { - var el = this.el - if (!el) return - var classes = el.className.split(' ') - return indexOf(classes, className) > -1 - } + 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; + } - ElementClass.prototype.toggle = function(className) { - var el = this.el - if (!el) return - if (this.has(className)) this.remove(className) - else this.add(className) - } + var SAlertContentTmpl = function (_React$Component) { + _inherits(SAlertContentTmpl, _React$Component); + function SAlertContentTmpl(props) { + _classCallCheck(this, SAlertContentTmpl); + + return _possibleConstructorReturn(this, (SAlertContentTmpl.__proto__ || Object.getPrototypeOf(SAlertContentTmpl)).call(this, props)); + } + + _createClass(SAlertContentTmpl, [{ + key: 'render', + value: function render() { + return _react2.default.createElement( + 'div', + { className: this.props.classNames, id: this.props.id, style: this.props.styles }, + _react2.default.createElement( + 'div', + { className: 's-alert-box-inner' }, + this.props.message + ), + _react2.default.createElement('span', { className: 's-alert-close', onClick: this.props.handleClose }) + ); + } + }]); + + return SAlertContentTmpl; + }(_react2.default.Component); + + SAlertContentTmpl.propTypes = { + id: _propTypes2.default.string.isRequired, + classNames: _propTypes2.default.string.isRequired, + styles: _propTypes2.default.object.isRequired, + message: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]).isRequired, + handleClose: _propTypes2.default.func.isRequired, + customFields: _propTypes2.default.object + }; + + exports.default = SAlertContentTmpl; + }); /***/ }, -/* 178 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { - "use strict"; + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(6), __webpack_require__(17), __webpack_require__(27), __webpack_require__(26)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports !== "undefined") { + factory(exports, require('react'), require('react-dom'), require('../SAlertContent'), require('./s-alert-store'), require('./s-alert-tools')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, global.react, global.reactDom, global.SAlertContent, global.sAlertStore, global.sAlertTools); + global.sAlertDataPrep = mod.exports; + } + })(this, function (exports, _react, _reactDom, _SAlertContent, _sAlertStore, _sAlertTools) { + 'use strict'; - Object.defineProperty(exports, "__esModule", { - value: true - }); + Object.defineProperty(exports, "__esModule", { + value: true + }); - var _reactDom = __webpack_require__(6); + var _react2 = _interopRequireDefault(_react); - var _reactDom2 = _interopRequireDefault(_reactDom); + var _reactDom2 = _interopRequireDefault(_reactDom); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _SAlertContent2 = _interopRequireDefault(_SAlertContent); - function call_show_method($node, props) { - $node[props.showMethod]({ - duration: props.showDuration, - easing: props.showEasing - }); - } + var _sAlertStore2 = _interopRequireDefault(_sAlertStore); - exports.default = { - getDefaultProps: function getDefaultProps() { - return { - style: { - display: "none" }, - showMethod: "fadeIn", // slideDown, and show are built into jQuery - showDuration: 300, - showEasing: "swing", // and linear are built into jQuery - hideMethod: "fadeOut", - hideDuration: 1000, - hideEasing: "swing", - // - timeOut: 5000, - extendedTimeOut: 1000 - }; - }, - getInitialState: function getInitialState() { - return { - intervalId: null, - isHiding: false - }; - }, - componentDidMount: function componentDidMount() { - call_show_method(this._get_$_node(), this.props); - if (this.props.timeOut > 0) { - this._set_interval_id(setTimeout(this.hideToast, this.props.timeOut)); - } - }, - handleMouseEnter: function handleMouseEnter() { - clearTimeout(this.state.intervalId); - this._set_interval_id(null); - this._set_is_hiding(false); + var _sAlertTools2 = _interopRequireDefault(_sAlertTools); - call_show_method(this._get_$_node().stop(true, true), this.props); - }, - handleMouseLeave: function handleMouseLeave() { - if (!this.state.isHiding && (this.props.timeOut > 0 || this.props.extendedTimeOut > 0)) { - this._set_interval_id(setTimeout(this.hideToast, this.props.extendedTimeOut)); - } - }, - hideToast: function hideToast(override) { - if (this.state.isHiding || this.state.intervalId === null && !override) { - return; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; } - this.setState({ isHiding: true }); - this._get_$_node()[this.props.hideMethod]({ - duration: this.props.hideDuration, - easing: this.props.hideEasing, - complete: this._handle_remove - }); - }, - _get_$_node: function _get_$_node() { - /* eslint-disable no-undef */ - return jQuery(_reactDom2.default.findDOMNode(this)); - /* eslint-enable no-undef */ - }, - _set_interval_id: function _set_interval_id(intervalId) { - this.setState({ - intervalId: intervalId - }); - }, - _set_is_hiding: function _set_is_hiding(isHiding) { - this.setState({ - isHiding: isHiding - }); - } - }; + var getAlertData = function getAlertData(sAlertPosition) { + var positionTop = 0; + var positionBottom = 0; + var padding = 0; + var alerts = {}; + var style = void 0; + var docElement = void 0; + var sAlertBoxHeight = void 0; + var positionTypeTop = void 0; + var positionTypeBottom = void 0; + var checkFirst = function checkFirst(type, objId) { + var collectionOfType = sAlertCollection.filter(function (obj) { + return obj.position === type || sAlertGlobalConfig.position === type; + }); + return collectionOfType && collectionOfType[0].id === objId; + }; + var positionFunc = function positionFunc(position, positionType, alert, docElement, sAlertBoxHeight, reactComponent) { + padding = aStack.spacing || parseInt(getComputedStyle(_reactDom2.default.findDOMNode(reactComponent))[positionType]); + if (checkFirst(aPosition, alert.id) && aOffset) { + position = 0; + position = position + parseInt(aOffset); + } + if (checkFirst(aPosition, alert.id) && aStack.spacing) { + position = position; + } else { + position = position + parseInt(padding); + } + style = positionType + ': ' + position + 'px;'; + position = position + sAlertBoxHeight; + return position; + }; + + var sAlertGlobalConfig = _sAlertTools2.default.getGlobalConfig(); + var aStack = void 0; + var aContentTemplate = void 0; + var aOffset = void 0; + var aMessage = void 0; + var aHtml = void 0; + var aCustomFields = void 0; + var aPosition = void 0; + + var query = {}; + if (sAlertPosition === 'left') { + query = function query(item) { + return item.position === 'top-left' || item.position === 'bottom-left' || !item.position && (sAlertGlobalConfig.position === 'top-left' || sAlertGlobalConfig.position === 'bottom-left'); + }; + } + if (sAlertPosition === 'right') { + query = function query(item) { + return item.position === 'top-right' || item.position === 'bottom-right' || !item.position && (sAlertGlobalConfig.position === 'top-right' || sAlertGlobalConfig.position === 'bottom-right'); + }; + } + if (sAlertPosition === 'full-top') { + query = function query(item) { + return item.position === 'top' || !item.position && sAlertGlobalConfig.position === 'top'; + }; + } + if (sAlertPosition === 'full-bottom') { + query = function query(item) { + return item.position === 'bottom' || !item.position && sAlertGlobalConfig.position === 'bottom'; + }; + } + + var currentState = _sAlertStore2.default.getState(); + var sAlertCollection = currentState.slice().filter(query); + + return sAlertCollection.map(function (alert) { + aStack = sAlertGlobalConfig.stack; + aContentTemplate = sAlertGlobalConfig.contentTemplate; + aOffset = _sAlertTools2.default.returnFirstDefined(alert.offset, sAlertGlobalConfig.offset); + aMessage = _sAlertTools2.default.returnFirstDefined(alert.message, sAlertGlobalConfig.message); + aHtml = _sAlertTools2.default.returnFirstDefined(alert.html, sAlertGlobalConfig.html); + aCustomFields = _sAlertTools2.default.returnFirstDefined(alert.customFields, sAlertGlobalConfig.customFields); + aPosition = _sAlertTools2.default.returnFirstDefined(alert.position, sAlertGlobalConfig.position); + positionTypeTop = aPosition && /top/g.test(aPosition); + positionTypeBottom = aPosition && /bottom/g.test(aPosition); + if (aStack) { + // checking alert box height - needed to calculate position + docElement = document.createElement('div'); + docElement.classList.add('s-alert-box-height'); + + // mock element, needed for positions calculations + var reactElement = _react2.default.createElement(_SAlertContent2.default, { + key: _sAlertTools2.default.randomId(), + id: _sAlertTools2.default.randomId(), + condition: alert.condition, + message: aMessage, + position: aPosition, + effect: alert.effect, + boxPosition: alert.boxPosition, + beep: false, + timeout: 'none', + html: aHtml, + contentTemplate: aContentTemplate, + customFields: aCustomFields + }); + var reactComponent = _reactDom2.default.render(reactElement, docElement); + + document.body.appendChild(docElement); + sAlertBoxHeight = parseInt(getComputedStyle(_reactDom2.default.findDOMNode(reactComponent))['height']); + if (positionTypeTop) { + positionTop = positionFunc(positionTop, 'top', alert, docElement, sAlertBoxHeight, reactComponent); + } + if (positionTypeBottom) { + positionBottom = positionFunc(positionBottom, 'bottom', alert, docElement, sAlertBoxHeight, reactComponent); + } + var sAlertComputedStyle = getComputedStyle(_reactDom2.default.findDOMNode(reactComponent)); + if (sAlertPosition === 'left') { + style = style + 'left: ' + (aStack.spacing || parseInt(sAlertComputedStyle.left)) + 'px;'; + } + if (sAlertPosition === 'right') { + style = style + 'right: ' + (aStack.spacing || parseInt(sAlertComputedStyle.right)) + 'px;'; + } + alerts = Object.assign({}, alert, { boxPosition: style }); + _reactDom2.default.unmountComponentAtNode(docElement); + docElement.parentNode.removeChild(docElement); + } else if (aOffset && positionTypeTop) { + alerts = Object.assign({}, alert, { boxPosition: 'top: ' + parseInt(aOffset) + 'px;' }); + } else if (aOffset && positionTypeBottom) { + alerts = Object.assign({}, alert, { boxPosition: 'bottom: ' + parseInt(aOffset) + 'px;' }); + } else { + alerts = alert; + } + return alerts; + }); + }; + + exports.default = getAlertData; + }); /***/ }, -/* 179 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -10429,7 +6256,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 180 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -10450,11 +6277,11 @@ return /******/ (function(modules) { // webpackBootstrap var _classnames2 = _interopRequireDefault(_classnames); - var _PageButton = __webpack_require__(181); + var _PageButton = __webpack_require__(32); var _PageButton2 = _interopRequireDefault(_PageButton); - var _SizePerPageDropDown = __webpack_require__(182); + var _SizePerPageDropDown = __webpack_require__(33); var _SizePerPageDropDown2 = _interopRequireDefault(_SizePerPageDropDown); @@ -10839,7 +6666,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 181 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -10937,7 +6764,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 182 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -11050,7 +6877,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 183 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -11069,7 +6896,7 @@ return /******/ (function(modules) { // webpackBootstrap var _react2 = _interopRequireDefault(_react); - var _reactModal = __webpack_require__(184); + var _reactModal = __webpack_require__(35); var _reactModal2 = _interopRequireDefault(_reactModal); @@ -11079,33 +6906,31 @@ return /******/ (function(modules) { // webpackBootstrap var _Notification = __webpack_require__(14); - var _Notification2 = _interopRequireDefault(_Notification); - - var _InsertModal = __webpack_require__(194); + var _InsertModal = __webpack_require__(45); var _InsertModal2 = _interopRequireDefault(_InsertModal); - var _InsertButton = __webpack_require__(198); + var _InsertButton = __webpack_require__(49); var _InsertButton2 = _interopRequireDefault(_InsertButton); - var _DeleteButton = __webpack_require__(199); + var _DeleteButton = __webpack_require__(50); var _DeleteButton2 = _interopRequireDefault(_DeleteButton); - var _ExportCSVButton = __webpack_require__(200); + var _ExportCSVButton = __webpack_require__(51); var _ExportCSVButton2 = _interopRequireDefault(_ExportCSVButton); - var _ShowSelectedOnlyButton = __webpack_require__(201); + var _ShowSelectedOnlyButton = __webpack_require__(52); var _ShowSelectedOnlyButton2 = _interopRequireDefault(_ShowSelectedOnlyButton); - var _SearchField = __webpack_require__(202); + var _SearchField = __webpack_require__(53); var _SearchField2 = _interopRequireDefault(_SearchField); - var _ClearSearchButton = __webpack_require__(203); + var _ClearSearchButton = __webpack_require__(54); var _ClearSearchButton2 = _interopRequireDefault(_ClearSearchButton); @@ -11257,7 +7082,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '__displayCommonMessage__REACT_HOT_LOADER__', value: function __displayCommonMessage__REACT_HOT_LOADER__() { - this.refs.notifier.notice('error', 'Form validate errors, please checking!', 'Pressed ESC can cancel'); + (0, _Notification.notice)('error', 'Form validate errors, please checking!', ''); } }, { key: 'validateNewRow', @@ -11287,7 +7112,7 @@ return /******/ (function(modules) { // webpackBootstrap isValid = false; validateState[column.field] = tempMsg; } else if (responseType === 'object' && tempMsg.isValid !== true) { - _this3.refs.notifier.notice(tempMsg.notification.type, tempMsg.notification.msg, tempMsg.notification.title); + (0, _Notification.notice)(tempMsg.notification.type, tempMsg.notification.msg, tempMsg.notification.title); isValid = false; validateState[column.field] = tempMsg.notification.msg; } @@ -11317,7 +7142,7 @@ return /******/ (function(modules) { // webpackBootstrap } var msg = this.props.onAddRow(newRow); if (msg) { - this.refs.notifier.notice('error', msg, 'Pressed ESC can cancel'); + (0, _Notification.notice)('error', msg, ''); this.clearTimeout(); // shake form and hack prevent modal hide this.setState({ @@ -11499,7 +7324,6 @@ return /******/ (function(modules) { // webpackBootstrap 'div', { className: 'row' }, toolbar, - _react2.default.createElement(_Notification2.default, { ref: 'notifier' }), modal ); } @@ -11691,25 +7515,25 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 184 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(185); + module.exports = __webpack_require__(36); /***/ }, -/* 185 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {var React = __webpack_require__(2); var ReactDOM = __webpack_require__(6); - var ExecutionEnvironment = __webpack_require__(186); - var ModalPortal = React.createFactory(__webpack_require__(187)); - var ariaAppHider = __webpack_require__(192); - var elementClass = __webpack_require__(193); + var ExecutionEnvironment = __webpack_require__(37); + var ModalPortal = React.createFactory(__webpack_require__(38)); + var ariaAppHider = __webpack_require__(43); + var elementClass = __webpack_require__(44); var renderSubtreeIntoContainer = __webpack_require__(6).unstable_renderSubtreeIntoContainer; - var Assign = __webpack_require__(191); + var Assign = __webpack_require__(42); var SafeHTMLElement = ExecutionEnvironment.canUseDOM ? window.HTMLElement : {}; var AppElement = ExecutionEnvironment.canUseDOM ? document.body : {appendChild: function() {}}; @@ -11839,10 +7663,10 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Modal - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(167))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) /***/ }, -/* 186 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -11887,14 +7711,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 187 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { var React = __webpack_require__(2); var div = React.DOM.div; - var focusManager = __webpack_require__(188); - var scopeTab = __webpack_require__(190); - var Assign = __webpack_require__(191); + var focusManager = __webpack_require__(39); + var scopeTab = __webpack_require__(41); + var Assign = __webpack_require__(42); // so that our CSS is statically analyzable var CLASS_NAMES = { @@ -12106,10 +7930,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 188 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { - var findTabbable = __webpack_require__(189); + var findTabbable = __webpack_require__(40); var modalElement = null; var focusLaterElement = null; var needToFocus = false; @@ -12180,7 +8004,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 189 */ +/* 40 */ /***/ function(module, exports) { /*! @@ -12236,10 +8060,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 190 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { - var findTabbable = __webpack_require__(189); + var findTabbable = __webpack_require__(40); module.exports = function(node, event) { var tabbable = findTabbable(node); @@ -12261,7 +8085,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 191 */ +/* 42 */ /***/ function(module, exports) { /** @@ -12904,7 +8728,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 192 */ +/* 43 */ /***/ function(module, exports) { var _element = typeof document !== 'undefined' ? document.body : null; @@ -12952,7 +8776,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 193 */ +/* 44 */ /***/ function(module, exports) { module.exports = function(opts) { @@ -13017,7 +8841,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 194 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13034,15 +8858,15 @@ return /******/ (function(modules) { // webpackBootstrap var _react2 = _interopRequireDefault(_react); - var _InsertModalHeader = __webpack_require__(195); + var _InsertModalHeader = __webpack_require__(46); var _InsertModalHeader2 = _interopRequireDefault(_InsertModalHeader); - var _InsertModalFooter = __webpack_require__(196); + var _InsertModalFooter = __webpack_require__(47); var _InsertModalFooter2 = _interopRequireDefault(_InsertModalFooter); - var _InsertModalBody = __webpack_require__(197); + var _InsertModalBody = __webpack_require__(48); var _InsertModalBody2 = _interopRequireDefault(_InsertModalBody); @@ -13200,7 +9024,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 195 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13334,7 +9158,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 196 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13494,7 +9318,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 197 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13639,7 +9463,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 198 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13747,7 +9571,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 199 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13856,7 +9680,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 200 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13965,7 +9789,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 201 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -14077,7 +9901,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 202 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -14181,7 +10005,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 203 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -14282,7 +10106,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 204 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -14434,7 +10258,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 205 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -15236,7 +11060,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 206 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -15252,7 +11076,7 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } if (_util2.default.canUseDOM()) { - var filesaver = __webpack_require__(207); + var filesaver = __webpack_require__(58); var saveAs = filesaver.saveAs; } /* eslint block-scoped-var: 0 */ /* eslint vars-on-top: 0 */ @@ -15343,7 +11167,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 207 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;"use strict"; @@ -15523,7 +11347,7 @@ return /******/ (function(modules) { // webpackBootstrap if (typeof module !== "undefined" && module.exports) { module.exports.saveAs = saveAs; - } else if ("function" !== "undefined" && __webpack_require__(208) !== null && __webpack_require__(209) !== null) { + } else if ("function" !== "undefined" && __webpack_require__(59) !== null && __webpack_require__(60) !== null) { !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { return saveAs; }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -15541,14 +11365,14 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 208 */ +/* 59 */ /***/ function(module, exports) { module.exports = function() { throw new Error("define cannot be used indirect"); }; /***/ }, -/* 209 */ +/* 60 */ /***/ function(module, exports) { /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; @@ -15556,7 +11380,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, {})) /***/ }, -/* 210 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -15574,7 +11398,7 @@ return /******/ (function(modules) { // webpackBootstrap var _Const2 = _interopRequireDefault(_Const); - var _events = __webpack_require__(211); + var _events = __webpack_require__(62); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -15645,7 +11469,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 211 */ +/* 62 */ /***/ function(module, exports) { // Copyright Joyent, Inc. and other Node contributors. @@ -15953,7 +11777,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 212 */ +/* 63 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -15982,23 +11806,23 @@ return /******/ (function(modules) { // webpackBootstrap var _util2 = _interopRequireDefault(_util); - var _Date = __webpack_require__(213); + var _Date = __webpack_require__(64); var _Date2 = _interopRequireDefault(_Date); - var _Text = __webpack_require__(214); + var _Text = __webpack_require__(65); var _Text2 = _interopRequireDefault(_Text); - var _Regex = __webpack_require__(215); + var _Regex = __webpack_require__(66); var _Regex2 = _interopRequireDefault(_Regex); - var _Select = __webpack_require__(216); + var _Select = __webpack_require__(67); var _Select2 = _interopRequireDefault(_Select); - var _Number = __webpack_require__(217); + var _Number = __webpack_require__(68); var _Number2 = _interopRequireDefault(_Number); @@ -16362,7 +12186,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 213 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16565,7 +12389,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 214 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16693,7 +12517,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 215 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16821,7 +12645,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 216 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16991,7 +12815,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 217 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -17241,7 +13065,7 @@ return /******/ (function(modules) { // webpackBootstrap ; /***/ }, -/* 218 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; diff --git a/dist/react-bootstrap-table.js.map b/dist/react-bootstrap-table.js.map index d2bc13327..159c1a0e0 100644 --- a/dist/react-bootstrap-table.js.map +++ b/dist/react-bootstrap-table.js.map @@ -1 +1 @@ -{"version":3,"file":"react-bootstrap-table.js","sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap ba514da3acb92858b509","webpack:///src/index.js","webpack:///src/BootstrapTable.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./~/classnames/index.js","webpack:///src/Const.js","webpack:///src/TableHeader.js","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///src/SelectRowHeaderColumn.js","webpack:///src/TableBody.js","webpack:///src/util.js","webpack:///src/TableRow.js","webpack:///src/TableColumn.js","webpack:///src/TableEditColumn.js","webpack:///src/Editor.js","webpack:///src/Notification.js","webpack:///./~/@allenfang/react-toastr/lib/index.js","webpack:///./~/@allenfang/react-toastr/lib/ToastContainer.js","webpack:///./~/@allenfang/react-toastr/~/lodash/omit.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_arrayMap.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseClone.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_Stack.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_ListCache.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_listCacheClear.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_listCacheDelete.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_assocIndexOf.js","webpack:///./~/@allenfang/react-toastr/~/lodash/eq.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_listCacheGet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_listCacheHas.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_listCacheSet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_stackClear.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_stackDelete.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_stackGet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_stackHas.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_stackSet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_Map.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getNative.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseIsNative.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isFunction.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseGetTag.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_Symbol.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_root.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_freeGlobal.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getRawTag.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_objectToString.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isObject.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_isMasked.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_coreJsData.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_toSource.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getValue.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_MapCache.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_mapCacheClear.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_Hash.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_hashClear.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_nativeCreate.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_hashDelete.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_hashGet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_hashHas.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_hashSet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_mapCacheDelete.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getMapData.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_isKeyable.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_mapCacheGet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_mapCacheHas.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_mapCacheSet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_arrayEach.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_assignValue.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseAssignValue.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_defineProperty.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseAssign.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_copyObject.js","webpack:///./~/@allenfang/react-toastr/~/lodash/keys.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_arrayLikeKeys.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseTimes.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isArguments.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseIsArguments.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isObjectLike.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isBuffer.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/@allenfang/react-toastr/~/lodash/stubFalse.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_isIndex.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isTypedArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseIsTypedArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isLength.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseUnary.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_nodeUtil.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseKeys.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_isPrototype.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_nativeKeys.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_overArg.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isArrayLike.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseAssignIn.js","webpack:///./~/@allenfang/react-toastr/~/lodash/keysIn.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseKeysIn.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_nativeKeysIn.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneBuffer.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_copyArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_copySymbols.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getSymbols.js","webpack:///./~/@allenfang/react-toastr/~/lodash/stubArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_copySymbolsIn.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getSymbolsIn.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_arrayPush.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getPrototype.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getAllKeys.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseGetAllKeys.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getAllKeysIn.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_getTag.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_DataView.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_Promise.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_Set.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_WeakMap.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_initCloneArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_initCloneByTag.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneArrayBuffer.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_Uint8Array.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneDataView.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneMap.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_addMapEntry.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_arrayReduce.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_mapToArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneRegExp.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneSet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_addSetEntry.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_setToArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneSymbol.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_cloneTypedArray.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_initCloneObject.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseCreate.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseUnset.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_castPath.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_isKey.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isSymbol.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_stringToPath.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_memoizeCapped.js","webpack:///./~/@allenfang/react-toastr/~/lodash/memoize.js","webpack:///./~/@allenfang/react-toastr/~/lodash/toString.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseToString.js","webpack:///./~/@allenfang/react-toastr/~/lodash/last.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_parent.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseGet.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_toKey.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseSlice.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_flatRest.js","webpack:///./~/@allenfang/react-toastr/~/lodash/flatten.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseFlatten.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_isFlattenable.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_overRest.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_apply.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_setToString.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseSetToString.js","webpack:///./~/@allenfang/react-toastr/~/lodash/constant.js","webpack:///./~/@allenfang/react-toastr/~/lodash/identity.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_shortOut.js","webpack:///./~/@allenfang/react-toastr/~/lodash/includes.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseIndexOf.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseFindIndex.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseIsNaN.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_strictIndexOf.js","webpack:///./~/@allenfang/react-toastr/~/lodash/isString.js","webpack:///./~/@allenfang/react-toastr/~/lodash/toInteger.js","webpack:///./~/@allenfang/react-toastr/~/lodash/toFinite.js","webpack:///./~/@allenfang/react-toastr/~/lodash/toNumber.js","webpack:///./~/@allenfang/react-toastr/~/lodash/values.js","webpack:///./~/@allenfang/react-toastr/~/lodash/_baseValues.js","webpack:///./~/@allenfang/react-toastr/~/react-addons-update/index.js","webpack:///./~/@allenfang/react-toastr/~/react/lib/update.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/@allenfang/react-toastr/~/react/lib/reactProdInvariant.js","webpack:///./~/@allenfang/react-toastr/~/react/~/object-assign/index.js","webpack:///./~/@allenfang/react-toastr/~/react/~/fbjs/lib/keyOf.js","webpack:///./~/@allenfang/react-toastr/~/react/~/fbjs/lib/invariant.js","webpack:///./~/@allenfang/react-toastr/lib/ToastMessage/index.js","webpack:///./~/@allenfang/react-toastr/lib/ToastMessage/animationMixin.js","webpack:///./~/@allenfang/react-toastr/~/react/lib/ReactTransitionEvents.js","webpack:///./~/@allenfang/react-toastr/~/react/~/fbjs/lib/ExecutionEnvironment.js","webpack:///./~/@allenfang/react-toastr/~/react/lib/getVendorPrefixedEventName.js","webpack:///./~/@allenfang/react-toastr/~/element-class/index.js","webpack:///./~/@allenfang/react-toastr/lib/ToastMessage/jQueryMixin.js","webpack:///src/ExpandComponent.js","webpack:///src/pagination/PaginationList.js","webpack:///src/pagination/PageButton.js","webpack:///src/pagination/SizePerPageDropDown.js","webpack:///src/toolbar/ToolBar.js","webpack:///./~/react-modal/lib/index.js","webpack:///./~/react-modal/lib/components/Modal.js","webpack:///./~/react-modal/~/exenv/index.js","webpack:///./~/react-modal/lib/components/ModalPortal.js","webpack:///./~/react-modal/lib/helpers/focusManager.js","webpack:///./~/react-modal/lib/helpers/tabbable.js","webpack:///./~/react-modal/lib/helpers/scopeTab.js","webpack:///./~/react-modal/~/lodash.assign/index.js","webpack:///./~/react-modal/lib/helpers/ariaAppHider.js","webpack:///./~/react-modal/~/element-class/index.js","webpack:///src/toolbar/InsertModal.js","webpack:///src/toolbar/InsertModalHeader.js","webpack:///src/toolbar/InsertModalFooter.js","webpack:///src/toolbar/InsertModalBody.js","webpack:///src/toolbar/InsertButton.js","webpack:///src/toolbar/DeleteButton.js","webpack:///src/toolbar/ExportCSVButton.js","webpack:///src/toolbar/ShowSelectedOnlyButton.js","webpack:///src/toolbar/SearchField.js","webpack:///src/toolbar/ClearSearchButton.js","webpack:///src/TableFilter.js","webpack:///src/store/TableDataStore.js","webpack:///src/csv_export_util.js","webpack:///src/filesaver.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///src/Filter.js","webpack:///(webpack)/~/node-libs-browser/~/events/events.js","webpack:///src/TableHeaderColumn.js","webpack:///src/filters/Date.js","webpack:///src/filters/Text.js","webpack:///src/filters/Regex.js","webpack:///src/filters/Select.js","webpack:///src/filters/Number.js","webpack:///src/toolbar/ButtonGroup.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactBootstrapTable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactBootstrapTable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ba514da3acb92858b509","import BootstrapTable from './BootstrapTable';\nimport TableHeaderColumn from './TableHeaderColumn';\nimport InsertModalHeader from './toolbar/InsertModalHeader';\nimport InsertModalBody from './toolbar/InsertModalBody';\nimport InsertModalFooter from './toolbar/InsertModalFooter';\nimport InsertButton from './toolbar/InsertButton';\nimport DeleteButton from './toolbar/DeleteButton';\nimport ExportCSVButton from './toolbar/ExportCSVButton';\nimport ShowSelectedOnlyButton from './toolbar/ShowSelectedOnlyButton';\nimport ClearSearchButton from './toolbar/ClearSearchButton';\nimport SearchField from './toolbar/SearchField';\nimport ButtonGroup from './toolbar/ButtonGroup';\nimport SizePerPageDropDown from './pagination/SizePerPageDropDown';\n\nif (typeof window !== 'undefined') {\n window.BootstrapTable = BootstrapTable;\n window.TableHeaderColumn = TableHeaderColumn;\n window.InsertModalHeader = InsertModalHeader;\n window.InsertModalBody = InsertModalBody;\n window.InsertModalFooter = InsertModalFooter;\n window.InsertButton = InsertButton;\n window.DeleteButton = DeleteButton;\n window.ShowSelectedOnlyButton = ShowSelectedOnlyButton;\n window.ExportCSVButton = ExportCSVButton;\n window.ClearSearchButton = ClearSearchButton;\n window.SearchField = SearchField;\n window.ButtonGroup = ButtonGroup;\n window.SizePerPageDropDown = SizePerPageDropDown;\n}\nexport {\n BootstrapTable,\n TableHeaderColumn,\n InsertModalHeader,\n InsertModalBody,\n InsertModalFooter,\n InsertButton,\n DeleteButton,\n ShowSelectedOnlyButton,\n ExportCSVButton,\n ClearSearchButton,\n SearchField,\n ButtonGroup,\n SizePerPageDropDown\n};\n\n\n\n// WEBPACK FOOTER //\n// src/index.js","/* eslint no-alert: 0 */\n/* eslint max-len: 0 */\nimport React, { Component, PropTypes } from 'react';\nimport classSet from 'classnames';\nimport Const from './Const';\nimport TableHeader from './TableHeader';\nimport TableBody from './TableBody';\nimport PaginationList from './pagination/PaginationList';\nimport ToolBar from './toolbar/ToolBar';\nimport TableFilter from './TableFilter';\nimport { TableDataStore } from './store/TableDataStore';\nimport Util from './util';\nimport exportCSVUtil from './csv_export_util';\nimport { Filter } from './Filter';\n\nclass BootstrapTable extends Component {\n\n constructor(props) {\n super(props);\n this.isIE = false;\n this._attachCellEditFunc();\n if (Util.canUseDOM()) {\n this.isIE = document.documentMode;\n }\n this.store = new TableDataStore(this.props.data ? this.props.data.slice() : []);\n this.isVerticalScroll = false;\n this.initTable(this.props);\n\n if (this.props.selectRow && this.props.selectRow.selected) {\n const copy = this.props.selectRow.selected.slice();\n this.store.setSelectedRowKey(copy);\n }\n let currPage = Const.PAGE_START_INDEX;\n if (typeof this.props.options.page !== 'undefined') {\n currPage = this.props.options.page;\n } else if (typeof this.props.options.pageStartIndex !== 'undefined') {\n currPage = this.props.options.pageStartIndex;\n }\n\n this._adjustHeaderWidth = this._adjustHeaderWidth.bind(this);\n this._adjustHeight = this._adjustHeight.bind(this);\n this._adjustTable = this._adjustTable.bind(this);\n\n this.state = {\n data: this.getTableData(),\n currPage: currPage,\n expanding: this.props.options.expanding || [],\n sizePerPage: this.props.options.sizePerPage || Const.SIZE_PER_PAGE_LIST[0],\n selectedRowKeys: this.store.getSelectedRowKeys(),\n reset: false,\n x: this.props.keyBoardNav ? 0 : -1,\n y: this.props.keyBoardNav ? 0 : -1\n };\n }\n\n initTable(props) {\n let { keyField } = props;\n\n const isKeyFieldDefined = typeof keyField === 'string' && keyField.length;\n React.Children.forEach(props.children, column => {\n if (column.props.isKey) {\n if (keyField) {\n throw new Error('Error. Multiple key column be detected in TableHeaderColumn.');\n }\n keyField = column.props.dataField;\n }\n if (column.props.filter) {\n // a column contains a filter\n if (!this.filter) {\n // first time create the filter on the BootstrapTable\n this.filter = new Filter();\n }\n // pass the filter to column with filter\n column.props.filter.emitter = this.filter;\n }\n });\n\n if (this.filter) {\n this.filter.removeAllListeners('onFilterChange');\n this.filter.on('onFilterChange', (currentFilter) => {\n this.handleFilterData(currentFilter);\n });\n }\n\n this.colInfos = this.getColumnsDescription(props).reduce(( prev, curr ) => {\n prev[curr.name] = curr;\n return prev;\n }, {});\n\n if (!isKeyFieldDefined && !keyField) {\n throw new Error(`Error. No any key column defined in TableHeaderColumn.\n Use 'isKey={true}' to specify a unique column after version 0.5.4.`);\n }\n\n this.store.setProps({\n isPagination: props.pagination,\n keyField: keyField,\n colInfos: this.colInfos,\n multiColumnSearch: props.multiColumnSearch,\n multiColumnSort: props.multiColumnSort,\n remote: this.props.remote\n });\n }\n\n getTableData() {\n let result = [];\n const { options, pagination } = this.props;\n const sortName = options.defaultSortName || options.sortName;\n const sortOrder = options.defaultSortOrder || options.sortOrder;\n const searchText = options.defaultSearch;\n if (sortName && sortOrder) {\n this.store.setSortInfo(sortOrder, sortName);\n this.store.sort();\n }\n\n if (searchText) {\n this.store.search(searchText);\n }\n\n if (pagination) {\n let page;\n let sizePerPage;\n if (this.store.isChangedPage()) {\n sizePerPage = this.state.sizePerPage;\n page = this.state.currPage;\n } else {\n sizePerPage = options.sizePerPage || Const.SIZE_PER_PAGE_LIST[0];\n page = options.page || 1;\n }\n result = this.store.page(page, sizePerPage).get();\n } else {\n result = this.store.get();\n }\n return result;\n }\n\n getColumnsDescription({ children }) {\n let rowCount = 0;\n React.Children.forEach(children, (column) => {\n if (Number(column.props.row) > rowCount) {\n rowCount = Number(column.props.row);\n }\n });\n return React.Children.map(children, (column, i) => {\n const rowIndex = column.props.row ? Number(column.props.row) : 0;\n const rowSpan = column.props.rowSpan ? Number(column.props.rowSpan) : 1;\n if ((rowSpan + rowIndex) === (rowCount + 1)) {\n return {\n name: column.props.dataField,\n align: column.props.dataAlign,\n sort: column.props.dataSort,\n format: column.props.dataFormat,\n formatExtraData: column.props.formatExtraData,\n filterFormatted: column.props.filterFormatted,\n filterValue: column.props.filterValue,\n editable: column.props.editable,\n customEditor: column.props.customEditor,\n hidden: column.props.hidden,\n hiddenOnInsert: column.props.hiddenOnInsert,\n searchable: column.props.searchable,\n className: column.props.columnClassName,\n editClassName: column.props.editColumnClassName,\n invalidEditColumnClassName: column.props.invalidEditColumnClassName,\n columnTitle: column.props.columnTitle,\n width: column.props.width,\n text: column.props.headerText || column.props.children,\n sortFunc: column.props.sortFunc,\n sortFuncExtraData: column.props.sortFuncExtraData,\n export: column.props.export,\n expandable: column.props.expandable,\n index: i,\n attrs: column.props.tdAttr,\n style: column.props.tdStyle\n };\n }\n });\n }\n\n reset() {\n this.store.clean();\n this.setState({\n data: this.getTableData(),\n currPage: 1,\n expanding: [],\n sizePerPage: Const.SIZE_PER_PAGE_LIST[0],\n selectedRowKeys: this.store.getSelectedRowKeys(),\n reset: true\n });\n }\n\n componentWillReceiveProps(nextProps) {\n this.initTable(nextProps);\n const { options, selectRow } = nextProps;\n\n this.store.setData(nextProps.data.slice());\n\n // from #481\n let page = this.state.currPage;\n if (this.props.options.page !== options.page) {\n page = options.page;\n }\n // from #481\n let sizePerPage = this.state.sizePerPage;\n if (this.props.options.sizePerPage !== options.sizePerPage) {\n sizePerPage = options.sizePerPage;\n }\n\n if (this.isRemoteDataSource()) {\n let data = nextProps.data.slice();\n if (nextProps.pagination && !this.allowRemote(Const.REMOTE_PAGE)) {\n data = this.store.page(page, sizePerPage).get();\n }\n this.setState({\n data,\n currPage: page,\n sizePerPage,\n reset: false\n });\n } else {\n // #125\n // remove !options.page for #709\n if (page > Math.ceil(nextProps.data.length / sizePerPage)) {\n page = 1;\n }\n const sortList = this.store.getSortInfo();\n const sortField = options.sortName;\n const sortOrder = options.sortOrder;\n if (sortField && sortOrder) {\n this.store.setSortInfo(sortOrder, sortField);\n this.store.sort();\n } else if (sortList.length > 0) {\n this.store.sort();\n }\n const data = this.store.page(page, sizePerPage).get();\n this.setState({\n data,\n currPage: page,\n sizePerPage,\n reset: false\n });\n }\n\n // If setting the expanded rows is being handled externally\n // then overwrite the current expanded rows.\n if (this.props.options.expanding !== options.expanding) {\n this.setState({\n expanding: options.expanding || []\n });\n }\n\n if (selectRow && selectRow.selected) {\n // set default select rows to store.\n const copy = selectRow.selected.slice();\n this.store.setSelectedRowKey(copy);\n this.setState({\n selectedRowKeys: copy,\n reset: false\n });\n }\n }\n\n componentDidMount() {\n this._adjustTable();\n window.addEventListener('resize', this._adjustTable);\n this.refs.body.refs.container.addEventListener('scroll', this._scrollHeader);\n if (this.props.scrollTop) {\n this._scrollTop();\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this._adjustTable);\n this.refs.body.refs.container.removeEventListener('scroll', this._scrollHeader);\n if (this.filter) {\n this.filter.removeAllListeners('onFilterChange');\n }\n }\n\n componentDidUpdate() {\n this._adjustTable();\n this._attachCellEditFunc();\n if (this.props.options.afterTableComplete) {\n this.props.options.afterTableComplete();\n }\n }\n\n _attachCellEditFunc() {\n const { cellEdit } = this.props;\n if (cellEdit) {\n this.props.cellEdit.__onCompleteEdit__ = this.handleEditCell.bind(this);\n if (cellEdit.mode !== Const.CELL_EDIT_NONE) {\n this.props.selectRow.clickToSelect = false;\n }\n }\n }\n\n /**\n * Returns true if in the current configuration,\n * the datagrid should load its data remotely.\n *\n * @param {Object} [props] Optional. If not given, this.props will be used\n * @return {Boolean}\n */\n isRemoteDataSource(props) {\n const { remote } = (props || this.props);\n return remote === true || typeof remote === 'function';\n }\n\n /**\n * Returns true if this action can be handled remote store\n * From #990, Sometimes, we need some actions as remote, some actions are handled by default\n * so function will tell you the target action is can be handled as remote or not.\n * @param {String} [action] Required.\n * @param {Object} [props] Optional. If not given, this.props will be used\n * @return {Boolean}\n */\n allowRemote(action, props) {\n const { remote } = (props || this.props);\n if (typeof remote === 'function') {\n const remoteObj = remote(Const.REMOTE);\n return remoteObj[action];\n } else {\n return remote;\n }\n }\n\n render() {\n const style = {\n height: this.props.height,\n maxHeight: this.props.maxHeight\n };\n\n const columns = this.getColumnsDescription(this.props);\n const sortList = this.store.getSortInfo();\n const pagination = this.renderPagination();\n const toolBar = this.renderToolBar();\n const tableFilter = this.renderTableFilter(columns);\n const isSelectAll = this.isSelectAll();\n const expandColumnOptions = this.props.expandColumnOptions;\n if (typeof expandColumnOptions.expandColumnBeforeSelectColumn === 'undefined') {\n expandColumnOptions.expandColumnBeforeSelectColumn = true;\n }\n const colGroups = Util.renderColGroup(columns, this.props.selectRow, expandColumnOptions);\n let sortIndicator = this.props.options.sortIndicator;\n if (typeof this.props.options.sortIndicator === 'undefined') sortIndicator = true;\n const { paginationPosition = Const.PAGINATION_POS_BOTTOM } = this.props.options;\n const showPaginationOnTop = paginationPosition !== Const.PAGINATION_POS_BOTTOM;\n const showPaginationOnBottom = paginationPosition !== Const.PAGINATION_POS_TOP;\n\n return (\n
\n { toolBar }\n { showPaginationOnTop ? pagination : null }\n
\n \n { this.props.children }\n \n \n
\n { tableFilter }\n { showPaginationOnBottom ? pagination : null }\n
\n );\n }\n\n isSelectAll() {\n if (this.store.isEmpty()) return false;\n const unselectable = this.props.selectRow.unselectable;\n const defaultSelectRowKeys = this.store.getSelectedRowKeys();\n const allRowKeys = this.store.getAllRowkey();\n\n if (defaultSelectRowKeys.length === 0) return false;\n let match = 0;\n let noFound = 0;\n let unSelectableCnt = 0;\n defaultSelectRowKeys.forEach(selected => {\n if (allRowKeys.indexOf(selected) !== -1) match++;\n else noFound++;\n if (unselectable &&\n unselectable.indexOf(selected) !== -1) unSelectableCnt++;\n });\n\n if (noFound === defaultSelectRowKeys.length) return false;\n if (match === allRowKeys.length) {\n return true;\n } else {\n if (unselectable && match <= unSelectableCnt &&\n unSelectableCnt === unselectable.length) return false;\n else return 'indeterminate';\n }\n // return (match === allRowKeys.length) ? true : 'indeterminate';\n }\n\n cleanSelected() {\n this.store.setSelectedRowKey([]);\n this.setState({\n selectedRowKeys: [],\n reset: false\n });\n }\n\n handleSort = (order, sortField) => {\n if (this.props.options.onSortChange) {\n this.props.options.onSortChange(sortField, order, this.props);\n }\n this.store.setSortInfo(order, sortField);\n if (this.allowRemote(Const.REMOTE_SORT)) {\n return;\n }\n\n const result = this.store.sort().get();\n this.setState({\n data: result,\n reset: false\n });\n }\n\n handleExpandRow = expanding => {\n this.setState({ expanding, reset: false }, () => {\n this._adjustHeaderWidth();\n });\n }\n\n handlePaginationData = (page, sizePerPage) => {\n const { onPageChange, pageStartIndex } = this.props.options;\n const emptyTable = this.store.isEmpty();\n if (onPageChange) {\n onPageChange(page, sizePerPage);\n }\n\n const state = {\n sizePerPage,\n reset: false\n };\n if (!emptyTable) state.currPage = page;\n this.setState(state);\n\n if (this.allowRemote(Const.REMOTE_PAGE) || emptyTable) {\n return;\n }\n\n // We calculate an offset here in order to properly fetch the indexed data,\n // despite the page start index not always being 1\n let normalizedPage;\n if (pageStartIndex !== undefined) {\n const offset = Math.abs(Const.PAGE_START_INDEX - pageStartIndex);\n normalizedPage = page + offset;\n } else {\n normalizedPage = page;\n }\n\n const result = this.store.page(normalizedPage, sizePerPage).get();\n\n this.setState({ data: result, reset: false });\n }\n\n handleMouseLeave = () => {\n if (this.props.options.onMouseLeave) {\n this.props.options.onMouseLeave();\n }\n }\n\n handleMouseEnter = () => {\n if (this.props.options.onMouseEnter) {\n this.props.options.onMouseEnter();\n }\n }\n\n handleRowMouseOut = (row, event) => {\n if (this.props.options.onRowMouseOut) {\n this.props.options.onRowMouseOut(row, event);\n }\n }\n\n handleRowMouseOver = (row, event) => {\n if (this.props.options.onRowMouseOver) {\n this.props.options.onRowMouseOver(row, event);\n }\n }\n\n handleNavigateCell = ({ x: offSetX, y: offSetY, lastEditCell }) => {\n const { pagination } = this.props;\n let { x, y, currPage } = this.state;\n x += offSetX;\n y += offSetY;\n // currPage += 1;\n // console.log(currPage);\n\n const columns = this.store.getColInfos();\n const visibleRowSize = this.state.data.length;\n const visibleColumnSize = Object.keys(columns).filter(k => !columns[k].hidden).length;\n\n if (y >= visibleRowSize) {\n currPage++;\n const lastPage = pagination ? this.refs.pagination.getLastPage() : -1;\n if (currPage <= lastPage) {\n this.handlePaginationData(currPage, this.state.sizePerPage);\n } else {\n return;\n }\n y = 0;\n } else if (y < 0) {\n currPage--;\n if (currPage > 0) {\n this.handlePaginationData(currPage, this.state.sizePerPage);\n } else {\n return;\n }\n y = visibleRowSize - 1;\n } else if (x >= visibleColumnSize) {\n if ((y + 1) === visibleRowSize) {\n currPage++;\n const lastPage = pagination ? this.refs.pagination.getLastPage() : -1;\n if (currPage <= lastPage) {\n this.handlePaginationData(currPage, this.state.sizePerPage);\n } else {\n return;\n }\n y = 0;\n } else {\n y++;\n }\n x = lastEditCell ? 1 : 0;\n } else if (x < 0) {\n x = visibleColumnSize - 1;\n if (y === 0) {\n currPage--;\n if (currPage > 0) {\n this.handlePaginationData(currPage, this.state.sizePerPage);\n } else {\n return;\n }\n y = this.state.sizePerPage - 1;\n } else {\n y--;\n }\n }\n this.setState({\n x, y, currPage, reset: false\n });\n }\n\n handleRowClick = (row, rowIndex, cellIndex) => {\n const { options, keyBoardNav } = this.props;\n if (options.onRowClick) {\n options.onRowClick(row);\n }\n if (keyBoardNav) {\n let { clickToNav } = typeof keyBoardNav === 'object' ? keyBoardNav : {};\n clickToNav = clickToNav === false ? clickToNav : true;\n if (clickToNav) {\n this.setState({\n x: cellIndex,\n y: rowIndex,\n reset: false\n });\n }\n }\n }\n\n handleRowDoubleClick = row => {\n if (this.props.options.onRowDoubleClick) {\n this.props.options.onRowDoubleClick(row);\n }\n }\n\n handleSelectAllRow = e => {\n const isSelected = e.currentTarget.checked;\n const keyField = this.store.getKeyField();\n const { selectRow: { onSelectAll, unselectable, selected } } = this.props;\n let selectedRowKeys = [];\n let result = true;\n let rows = isSelected ?\n this.store.get() :\n this.store.getRowByKey(this.state.selectedRowKeys);\n\n if (unselectable && unselectable.length > 0) {\n if (isSelected) {\n rows = rows.filter(r => {\n return unselectable.indexOf(r[keyField]) === -1 ||\n (selected && selected.indexOf(r[keyField]) !== -1);\n });\n } else {\n rows = rows.filter(r => unselectable.indexOf(r[keyField]) === -1);\n }\n }\n\n if (onSelectAll) {\n result = this.props.selectRow.onSelectAll(isSelected, rows);\n }\n\n if (typeof result == 'undefined' || result !== false) {\n if (isSelected) {\n selectedRowKeys = Array.isArray(result) ?\n result :\n rows.map(r => r[keyField]);\n } else {\n if (unselectable && selected) {\n selectedRowKeys = selected.filter(r => unselectable.indexOf(r) > -1 );\n }\n }\n\n this.store.setSelectedRowKey(selectedRowKeys);\n this.setState({ selectedRowKeys, reset: false });\n }\n }\n\n handleShowOnlySelected = () => {\n this.store.ignoreNonSelected();\n let result;\n if (this.props.pagination) {\n result = this.store.page(1, this.state.sizePerPage).get();\n } else {\n result = this.store.get();\n }\n this.setState({\n data: result,\n reset: false,\n currPage: this.props.options.pageStartIndex || Const.PAGE_START_INDEX\n });\n }\n\n handleSelectRow = (row, isSelected, e) => {\n let result = true;\n let currSelected = this.store.getSelectedRowKeys();\n const rowKey = row[ this.store.getKeyField() ];\n const { selectRow } = this.props;\n if (selectRow.onSelect) {\n result = selectRow.onSelect(row, isSelected, e);\n }\n\n if (typeof result === 'undefined' || result !== false) {\n if (selectRow.mode === Const.ROW_SELECT_SINGLE) {\n currSelected = isSelected ? [ rowKey ] : [];\n } else {\n if (isSelected) {\n currSelected.push(rowKey);\n } else {\n currSelected = currSelected.filter(key => rowKey !== key);\n }\n }\n\n this.store.setSelectedRowKey(currSelected);\n this.setState({\n selectedRowKeys: currSelected,\n reset: false\n });\n }\n }\n\n handleEditCell(newVal, rowIndex, colIndex) {\n const { onCellEdit } = this.props.options;\n const { beforeSaveCell, afterSaveCell } = this.props.cellEdit;\n const columns = this.getColumnsDescription(this.props);\n const fieldName = columns[colIndex].name;\n\n if (beforeSaveCell) {\n const isValid = beforeSaveCell(this.state.data[rowIndex], fieldName, newVal);\n if (!isValid && typeof isValid !== 'undefined') {\n this.setState({\n data: this.store.get(),\n reset: false\n });\n return;\n }\n }\n\n if (onCellEdit) {\n newVal = onCellEdit(this.state.data[rowIndex], fieldName, newVal);\n }\n\n if (this.allowRemote(Const.REMOTE_CELL_EDIT)) {\n if (afterSaveCell) {\n afterSaveCell(this.state.data[rowIndex], fieldName, newVal);\n }\n return;\n }\n\n const result = this.store.edit(newVal, rowIndex, fieldName).get();\n this.setState({\n data: result,\n reset: false\n });\n\n if (afterSaveCell) {\n afterSaveCell(this.state.data[rowIndex], fieldName, newVal);\n }\n }\n\n handleAddRowAtBegin(newObj) {\n try {\n this.store.addAtBegin(newObj);\n } catch (e) {\n return e;\n }\n this._handleAfterAddingRow(newObj, true);\n }\n\n handleAddRow = newObj => {\n const { onAddRow } = this.props.options;\n if (onAddRow) {\n const colInfos = this.store.getColInfos();\n onAddRow(newObj, colInfos);\n }\n\n if (this.allowRemote(Const.REMOTE_INSERT_ROW)) {\n if (this.props.options.afterInsertRow) {\n this.props.options.afterInsertRow(newObj);\n }\n return null;\n }\n\n try {\n this.store.add(newObj);\n } catch (e) {\n return e.message;\n }\n this._handleAfterAddingRow(newObj, false);\n }\n\n getSizePerPage() {\n return this.state.sizePerPage;\n }\n\n getCurrentPage() {\n return this.state.currPage;\n }\n\n getTableDataIgnorePaging() {\n return this.store.getCurrentDisplayData();\n }\n\n getPageByRowKey = rowKey => {\n const { sizePerPage } = this.state;\n const currentData = this.store.getCurrentDisplayData();\n const keyField = this.store.getKeyField();\n const result = currentData.findIndex((x) => x[ keyField ] === rowKey);\n if (result > -1) {\n return parseInt((result / sizePerPage), 10) + 1;\n } else {\n return result;\n }\n }\n\n handleDropRow = rowKeys => {\n const dropRowKeys = rowKeys ? rowKeys : this.store.getSelectedRowKeys();\n // add confirm before the delete action if that option is set.\n if (dropRowKeys && dropRowKeys.length > 0) {\n if (this.props.options.handleConfirmDeleteRow) {\n this.props.options.handleConfirmDeleteRow(() => {\n this.deleteRow(dropRowKeys);\n }, dropRowKeys);\n } else if (confirm('Are you sure you want to delete?')) {\n this.deleteRow(dropRowKeys);\n }\n }\n }\n\n deleteRow(dropRowKeys) {\n const { onDeleteRow } = this.props.options;\n if (onDeleteRow) {\n onDeleteRow(dropRowKeys);\n }\n\n this.store.setSelectedRowKey([]); // clear selected row key\n\n if (this.allowRemote(Const.REMOTE_DROP_ROW)) {\n if (this.props.options.afterDeleteRow) {\n this.props.options.afterDeleteRow(dropRowKeys);\n }\n return;\n }\n\n this.store.remove(dropRowKeys); // remove selected Row\n let result;\n if (this.props.pagination) {\n const { sizePerPage } = this.state;\n const currLastPage = Math.ceil(this.store.getDataNum() / sizePerPage);\n let { currPage } = this.state;\n if (currPage > currLastPage) currPage = currLastPage;\n result = this.store.page(currPage, sizePerPage).get();\n this.setState({\n data: result,\n selectedRowKeys: this.store.getSelectedRowKeys(),\n currPage,\n reset: false\n });\n } else {\n result = this.store.get();\n this.setState({\n data: result,\n reset: false,\n selectedRowKeys: this.store.getSelectedRowKeys()\n });\n }\n if (this.props.options.afterDeleteRow) {\n this.props.options.afterDeleteRow(dropRowKeys);\n }\n }\n\n handleFilterData = filterObj => {\n const { onFilterChange } = this.props.options;\n if (onFilterChange) {\n const colInfos = this.store.getColInfos();\n onFilterChange(filterObj, colInfos);\n }\n\n this.setState({\n currPage: this.props.options.pageStartIndex || Const.PAGE_START_INDEX,\n reset: false\n });\n\n if (this.allowRemote(Const.REMOTE_FILTER)) {\n if (this.props.options.afterColumnFilter) {\n this.props.options.afterColumnFilter(filterObj, this.store.getDataIgnoringPagination());\n }\n return;\n }\n\n this.store.filter(filterObj);\n\n const sortList = this.store.getSortInfo();\n\n if (sortList.length > 0) {\n this.store.sort();\n }\n\n let result;\n\n if (this.props.pagination) {\n const { sizePerPage } = this.state;\n result = this.store.page(1, sizePerPage).get();\n } else {\n result = this.store.get();\n }\n if (this.props.options.afterColumnFilter) {\n this.props.options.afterColumnFilter(filterObj,\n this.store.getDataIgnoringPagination());\n }\n this.setState({\n data: result,\n reset: false\n });\n }\n\n handleExportCSV = () => {\n let result = {};\n\n let { csvFileName } = this.props;\n const { onExportToCSV } = this.props.options;\n if (onExportToCSV) {\n result = onExportToCSV();\n } else {\n result = this.store.getDataIgnoringPagination();\n }\n\n const keys = [];\n this.props.children.map(function(column) {\n if (column.props.export === true ||\n (typeof column.props.export === 'undefined' &&\n column.props.hidden === false)) {\n keys.push({\n field: column.props.dataField,\n format: column.props.csvFormat,\n extraData: column.props.csvFormatExtraData,\n header: column.props.csvHeader || column.props.dataField,\n row: Number(column.props.row) || 0,\n rowSpan: Number(column.props.rowSpan) || 1,\n colSpan: Number(column.props.colSpan) || 1\n });\n }\n });\n\n if (typeof csvFileName === 'function') {\n csvFileName = csvFileName();\n }\n\n exportCSVUtil(result, keys, csvFileName);\n }\n\n handleSearch = searchText => {\n // Set search field if this function being called outside\n // but it's not necessary if calling fron inside.\n if (this.refs.toolbar) {\n this.refs.toolbar.setSearchInput(searchText);\n }\n const { onSearchChange } = this.props.options;\n if (onSearchChange) {\n const colInfos = this.store.getColInfos();\n onSearchChange(searchText, colInfos, this.props.multiColumnSearch);\n }\n\n this.setState({\n currPage: this.props.options.pageStartIndex || Const.PAGE_START_INDEX,\n reset: false\n });\n\n if (this.allowRemote(Const.REMOTE_SEARCH)) {\n if (this.props.options.afterSearch) {\n this.props.options.afterSearch(searchText, this.store.getDataIgnoringPagination());\n }\n return;\n }\n\n\n this.store.search(searchText);\n\n const sortList = this.store.getSortInfo();\n\n if (sortList.length > 0) {\n this.store.sort();\n }\n\n let result;\n if (this.props.pagination) {\n const { sizePerPage } = this.state;\n result = this.store.page(1, sizePerPage).get();\n } else {\n result = this.store.get();\n }\n if (this.props.options.afterSearch) {\n this.props.options.afterSearch(searchText,\n this.store.getDataIgnoringPagination());\n }\n this.setState({\n data: result,\n reset: false\n });\n }\n\n renderPagination() {\n if (this.props.pagination) {\n let dataSize;\n if (this.allowRemote(Const.REMOTE_PAGE)) {\n dataSize = this.props.fetchInfo.dataTotalSize;\n } else {\n dataSize = this.store.getDataNum();\n }\n const { options } = this.props;\n const withFirstAndLast = options.withFirstAndLast === undefined ? true : options.withFirstAndLast;\n if (Math.ceil(dataSize / this.state.sizePerPage) <= 1 &&\n this.props.ignoreSinglePage) return null;\n return (\n
\n \n
\n );\n }\n return null;\n }\n\n renderToolBar() {\n const { exportCSV, selectRow, insertRow, deleteRow, search, children, keyField } = this.props;\n const enableShowOnlySelected = selectRow && selectRow.showOnlySelected;\n const print = typeof this.props.options.printToolBar === 'undefined' ?\n true : this.props.options.printToolBar;\n if (enableShowOnlySelected\n || insertRow\n || deleteRow\n || search\n || exportCSV\n || this.props.options.searchPanel\n || this.props.options.btnGroup\n || this.props.options.toolBar) {\n let columns;\n if (Array.isArray(children)) {\n columns = children.map((column, r) => {\n const { props } = column;\n const isKey = props.isKey || keyField === props.dataField;\n return {\n isKey,\n name: props.headerText || props.children,\n field: props.dataField,\n hiddenOnInsert: props.hiddenOnInsert,\n keyValidator: props.keyValidator,\n // when you want same auto generate value and not allow edit, example ID field\n autoValue: props.autoValue || false,\n // for create editor, no params for column.editable() indicate that editor for new row\n editable: props.editable && (typeof props.editable === 'function') ? props.editable() : props.editable,\n format: props.dataFormat ? function(value) {\n return props.dataFormat(value, null, props.formatExtraData, r).replace(/<.*?>/g, '');\n } : false\n };\n });\n } else {\n columns = [ {\n name: children.props.headerText || children.props.children,\n field: children.props.dataField,\n editable: children.props.editable,\n hiddenOnInsert: children.props.hiddenOnInsert,\n keyValidator: children.props.keyValidator\n } ];\n }\n return (\n
\n \n
\n );\n } else {\n return null;\n }\n }\n\n renderTableFilter(columns) {\n if (this.props.columnFilter) {\n return (\n \n );\n } else {\n return null;\n }\n }\n\n _scrollTop = () => {\n const { scrollTop } = this.props;\n if (scrollTop === Const.SCROLL_TOP) {\n this.refs.body.refs.container.scrollTop = 0;\n } else if (scrollTop === Const.SCROLL_BOTTOM) {\n this.refs.body.refs.container.scrollTop = this.refs.body.refs.container.scrollHeight;\n } else if (typeof scrollTop === 'number' && !isNaN(scrollTop)) {\n this.refs.body.refs.container.scrollTop = scrollTop;\n }\n }\n _scrollHeader = (e) => {\n this.refs.header.refs.container.scrollLeft = e.currentTarget.scrollLeft;\n }\n\n _adjustTable() {\n this._adjustHeight();\n if (!this.props.printable) {\n this._adjustHeaderWidth();\n }\n }\n\n _adjustHeaderWidth() {\n const header = this.refs.header.getHeaderColGrouop();\n const tbody = this.refs.body.refs.tbody;\n const bodyHeader = this.refs.body.getHeaderColGrouop();\n const firstRow = tbody.childNodes[0];\n const isScroll = tbody.parentNode.getBoundingClientRect().height >\n tbody.parentNode.parentNode.getBoundingClientRect().height;\n\n const scrollBarWidth = isScroll ? Util.getScrollBarWidth() : 0;\n if (firstRow && this.store.getDataNum()) {\n if (isScroll || this.isVerticalScroll !== isScroll) {\n const cells = firstRow.childNodes;\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i];\n const computedStyle = window.getComputedStyle(cell);\n let width = parseFloat(computedStyle.width.replace('px', ''));\n if (this.isIE) {\n const paddingLeftWidth = parseFloat(computedStyle.paddingLeft.replace('px', ''));\n const paddingRightWidth = parseFloat(computedStyle.paddingRight.replace('px', ''));\n const borderRightWidth = parseFloat(computedStyle.borderRightWidth.replace('px', ''));\n const borderLeftWidth = parseFloat(computedStyle.borderLeftWidth.replace('px', ''));\n width = width + paddingLeftWidth + paddingRightWidth + borderRightWidth + borderLeftWidth;\n }\n const lastPadding = (cells.length - 1 === i ? scrollBarWidth : 0);\n if (width <= 0) {\n width = 120;\n cell.width = width + lastPadding + 'px';\n }\n const result = width + lastPadding + 'px';\n header[i].style.width = result;\n header[i].style.minWidth = result;\n if (cells.length - 1 === i) {\n bodyHeader[i].style.width = width + 'px';\n bodyHeader[i].style.minWidth = width + 'px';\n } else {\n bodyHeader[i].style.width = result;\n bodyHeader[i].style.minWidth = result;\n }\n }\n }\n } else {\n React.Children.forEach(this.props.children, (child, i) => {\n if (child.props.width) {\n header[i].style.width = `${child.props.width}px`;\n header[i].style.minWidth = `${child.props.width}px`;\n }\n });\n }\n this.isVerticalScroll = isScroll;\n }\n\n _adjustHeight() {\n const { height } = this.props;\n let { maxHeight } = this.props;\n if ((typeof height === 'number' && !isNaN(height)) || height.indexOf('%') === -1) {\n this.refs.body.refs.container.style.height =\n parseFloat(height, 10) - this.refs.header.refs.container.offsetHeight + 'px';\n }\n if (maxHeight) {\n maxHeight = typeof maxHeight === 'number' ?\n maxHeight :\n parseInt(maxHeight.replace('px', ''), 10);\n\n this.refs.body.refs.container.style.maxHeight =\n maxHeight - this.refs.header.refs.container.offsetHeight + 'px';\n }\n }\n\n _handleAfterAddingRow(newObj, atTheBeginning) {\n let result;\n if (this.props.pagination) {\n // if pagination is enabled and inserting row at the end,\n // change page to the last page\n // otherwise, change it to the first page\n const { sizePerPage } = this.state;\n\n if (atTheBeginning) {\n const firstPage = this.props.options.pageStartIndex || Const.PAGE_START_INDEX;\n result = this.store.page(firstPage, sizePerPage).get();\n this.setState({\n data: result,\n currPage: firstPage,\n reset: false\n });\n } else {\n const currLastPage = Math.ceil(this.store.getDataNum() / sizePerPage);\n result = this.store.page(currLastPage, sizePerPage).get();\n this.setState({\n data: result,\n currPage: currLastPage,\n reset: false\n });\n }\n } else {\n result = this.store.get();\n this.setState({\n data: result,\n reset: false\n });\n }\n\n if (this.props.options.afterInsertRow) {\n this.props.options.afterInsertRow(newObj);\n }\n }\n}\n\nBootstrapTable.propTypes = {\n keyField: PropTypes.string,\n height: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]),\n maxHeight: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]),\n data: PropTypes.oneOfType([ PropTypes.array, PropTypes.object ]),\n remote: PropTypes.oneOfType([ PropTypes.bool, PropTypes.func ]), // remote data, default is false\n scrollTop: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]),\n striped: PropTypes.bool,\n bordered: PropTypes.bool,\n hover: PropTypes.bool,\n condensed: PropTypes.bool,\n pagination: PropTypes.bool,\n printable: PropTypes.bool,\n keyBoardNav: PropTypes.oneOfType([ PropTypes.bool, PropTypes.object ]),\n searchPlaceholder: PropTypes.string,\n selectRow: PropTypes.shape({\n mode: PropTypes.oneOf([\n Const.ROW_SELECT_NONE,\n Const.ROW_SELECT_SINGLE,\n Const.ROW_SELECT_MULTI\n ]),\n customComponent: PropTypes.func,\n bgColor: PropTypes.oneOfType([ PropTypes.string, PropTypes.func ]),\n selected: PropTypes.array,\n onSelect: PropTypes.func,\n onSelectAll: PropTypes.func,\n clickToSelect: PropTypes.bool,\n hideSelectColumn: PropTypes.bool,\n clickToSelectAndEditCell: PropTypes.bool,\n clickToExpand: PropTypes.bool,\n showOnlySelected: PropTypes.bool,\n unselectable: PropTypes.array,\n columnWidth: PropTypes.oneOfType([ PropTypes.number, PropTypes.string ])\n }),\n cellEdit: PropTypes.shape({\n mode: PropTypes.string,\n blurToSave: PropTypes.bool,\n beforeSaveCell: PropTypes.func,\n afterSaveCell: PropTypes.func,\n nonEditableRows: PropTypes.func\n }),\n insertRow: PropTypes.bool,\n deleteRow: PropTypes.bool,\n search: PropTypes.bool,\n columnFilter: PropTypes.bool,\n trClassName: PropTypes.any,\n tableStyle: PropTypes.object,\n containerStyle: PropTypes.object,\n headerStyle: PropTypes.object,\n bodyStyle: PropTypes.object,\n containerClass: PropTypes.string,\n tableContainerClass: PropTypes.string,\n headerContainerClass: PropTypes.string,\n bodyContainerClass: PropTypes.string,\n tableHeaderClass: PropTypes.string,\n tableBodyClass: PropTypes.string,\n options: PropTypes.shape({\n clearSearch: PropTypes.bool,\n sortName: PropTypes.oneOfType([ PropTypes.string, PropTypes.array ]),\n sortOrder: PropTypes.oneOfType([ PropTypes.string, PropTypes.array ]),\n defaultSortName: PropTypes.oneOfType([ PropTypes.string, PropTypes.array ]),\n defaultSortOrder: PropTypes.oneOfType([ PropTypes.string, PropTypes.array ]),\n sortIndicator: PropTypes.bool,\n afterTableComplete: PropTypes.func,\n afterDeleteRow: PropTypes.func,\n afterInsertRow: PropTypes.func,\n afterSearch: PropTypes.func,\n afterColumnFilter: PropTypes.func,\n onRowClick: PropTypes.func,\n onRowDoubleClick: PropTypes.func,\n page: PropTypes.number,\n pageStartIndex: PropTypes.number,\n paginationShowsTotal: PropTypes.oneOfType([ PropTypes.bool, PropTypes.func ]),\n sizePerPageList: PropTypes.array,\n sizePerPage: PropTypes.number,\n paginationSize: PropTypes.number,\n paginationPosition: PropTypes.oneOf([\n Const.PAGINATION_POS_TOP,\n Const.PAGINATION_POS_BOTTOM,\n Const.PAGINATION_POS_BOTH\n ]),\n hideSizePerPage: PropTypes.bool,\n hidePageListOnlyOnePage: PropTypes.bool,\n alwaysShowAllBtns: PropTypes.bool,\n withFirstAndLast: PropTypes.bool,\n onSortChange: PropTypes.func,\n onPageChange: PropTypes.func,\n onSizePerPageList: PropTypes.func,\n onFilterChange: React.PropTypes.func,\n onSearchChange: React.PropTypes.func,\n onAddRow: React.PropTypes.func,\n onExportToCSV: React.PropTypes.func,\n onCellEdit: React.PropTypes.func,\n noDataText: PropTypes.oneOfType([ PropTypes.string, PropTypes.object ]),\n withoutNoDataText: React.PropTypes.bool,\n handleConfirmDeleteRow: PropTypes.func,\n prePage: PropTypes.string,\n nextPage: PropTypes.string,\n firstPage: PropTypes.string,\n lastPage: PropTypes.string,\n prePageTitle: PropTypes.string,\n nextPageTitle: PropTypes.string,\n firstPageTitle: PropTypes.string,\n lastPageTitle: PropTypes.string,\n searchDelayTime: PropTypes.number,\n exportCSVText: PropTypes.string,\n insertText: PropTypes.string,\n deleteText: PropTypes.string,\n saveText: PropTypes.string,\n closeText: PropTypes.string,\n ignoreEditable: PropTypes.bool,\n defaultSearch: PropTypes.string,\n insertModalHeader: PropTypes.func,\n insertModalBody: PropTypes.func,\n insertModalFooter: PropTypes.func,\n insertModal: PropTypes.func,\n insertBtn: PropTypes.func,\n deleteBtn: PropTypes.func,\n showSelectedOnlyBtn: PropTypes.func,\n exportCSVBtn: PropTypes.func,\n clearSearchBtn: PropTypes.func,\n searchField: PropTypes.func,\n searchPanel: PropTypes.func,\n btnGroup: PropTypes.func,\n toolBar: PropTypes.func,\n sizePerPageDropDown: PropTypes.func,\n paginationPanel: PropTypes.func,\n searchPosition: PropTypes.string,\n expandRowBgColor: PropTypes.string,\n expandBy: PropTypes.string,\n expanding: PropTypes.array,\n beforeShowError: PropTypes.func,\n printToolBar: PropTypes.bool\n }),\n fetchInfo: PropTypes.shape({\n dataTotalSize: PropTypes.number\n }),\n exportCSV: PropTypes.bool,\n csvFileName: PropTypes.oneOfType([ PropTypes.string, PropTypes.func ]),\n ignoreSinglePage: PropTypes.bool,\n expandableRow: PropTypes.func,\n expandComponent: PropTypes.func,\n expandColumnOptions: PropTypes.shape({\n columnWidth: PropTypes.oneOfType([ PropTypes.number, PropTypes.string ]),\n expandColumnVisible: PropTypes.bool,\n expandColumnComponent: PropTypes.func,\n expandColumnBeforeSelectColumn: PropTypes.bool\n })\n};\nBootstrapTable.defaultProps = {\n scrollTop: undefined,\n expandComponent: undefined,\n expandableRow: undefined,\n expandColumnOptions: {\n expandColumnVisible: false,\n expandColumnComponent: undefined,\n expandColumnBeforeSelectColumn: true\n },\n height: '100%',\n maxHeight: undefined,\n striped: false,\n bordered: true,\n hover: false,\n condensed: false,\n pagination: false,\n printable: false,\n keyBoardNav: false,\n searchPlaceholder: undefined,\n selectRow: {\n mode: Const.ROW_SELECT_NONE,\n bgColor: Const.ROW_SELECT_BG_COLOR,\n selected: [],\n onSelect: undefined,\n onSelectAll: undefined,\n clickToSelect: false,\n hideSelectColumn: false,\n clickToSelectAndEditCell: false,\n clickToExpand: false,\n showOnlySelected: false,\n unselectable: [],\n customComponent: undefined\n },\n cellEdit: {\n mode: Const.CELL_EDIT_NONE,\n blurToSave: false,\n beforeSaveCell: undefined,\n afterSaveCell: undefined,\n nonEditableRows: undefined\n },\n insertRow: false,\n deleteRow: false,\n search: false,\n multiColumnSearch: false,\n multiColumnSort: 1,\n columnFilter: false,\n trClassName: '',\n tableStyle: undefined,\n containerStyle: undefined,\n headerStyle: undefined,\n bodyStyle: undefined,\n containerClass: null,\n tableContainerClass: null,\n headerContainerClass: null,\n bodyContainerClass: null,\n tableHeaderClass: null,\n tableBodyClass: null,\n options: {\n clearSearch: false,\n sortName: undefined,\n sortOrder: undefined,\n defaultSortName: undefined,\n defaultSortOrder: undefined,\n sortIndicator: true,\n afterTableComplete: undefined,\n afterDeleteRow: undefined,\n afterInsertRow: undefined,\n afterSearch: undefined,\n afterColumnFilter: undefined,\n onRowClick: undefined,\n onRowDoubleClick: undefined,\n onMouseLeave: undefined,\n onMouseEnter: undefined,\n onRowMouseOut: undefined,\n onRowMouseOver: undefined,\n page: undefined,\n paginationShowsTotal: false,\n sizePerPageList: Const.SIZE_PER_PAGE_LIST,\n sizePerPage: undefined,\n paginationSize: Const.PAGINATION_SIZE,\n paginationPosition: Const.PAGINATION_POS_BOTTOM,\n hideSizePerPage: false,\n hidePageListOnlyOnePage: false,\n alwaysShowAllBtns: false,\n withFirstAndLast: true,\n onSizePerPageList: undefined,\n noDataText: undefined,\n withoutNoDataText: false,\n handleConfirmDeleteRow: undefined,\n prePage: Const.PRE_PAGE,\n nextPage: Const.NEXT_PAGE,\n firstPage: Const.FIRST_PAGE,\n lastPage: Const.LAST_PAGE,\n prePageTitle: Const.PRE_PAGE_TITLE,\n nextPageTitle: Const.NEXT_PAGE_TITLE,\n firstPageTitle: Const.FIRST_PAGE_TITLE,\n lastPageTitle: Const.LAST_PAGE_TITLE,\n pageStartIndex: undefined,\n searchDelayTime: undefined,\n exportCSVText: Const.EXPORT_CSV_TEXT,\n insertText: Const.INSERT_BTN_TEXT,\n deleteText: Const.DELETE_BTN_TEXT,\n saveText: Const.SAVE_BTN_TEXT,\n closeText: Const.CLOSE_BTN_TEXT,\n ignoreEditable: false,\n defaultSearch: '',\n insertModalHeader: undefined,\n insertModalBody: undefined,\n insertModalFooter: undefined,\n insertModal: undefined,\n insertBtn: undefined,\n deleteBtn: undefined,\n showSelectedOnlyBtn: undefined,\n exportCSVBtn: undefined,\n clearSearchBtn: undefined,\n searchField: undefined,\n searchPanel: undefined,\n btnGroup: undefined,\n toolBar: undefined,\n sizePerPageDropDown: undefined,\n paginationPanel: undefined,\n searchPosition: 'right',\n expandRowBgColor: undefined,\n expandBy: Const.EXPAND_BY_ROW,\n expanding: [],\n beforeShowError: undefined,\n printToolBar: true\n },\n fetchInfo: {\n dataTotalSize: 0\n },\n exportCSV: false,\n csvFileName: 'spreadsheet.csv',\n ignoreSinglePage: false\n};\n\nexport default BootstrapTable;\n\n\n\n// WEBPACK FOOTER //\n// src/BootstrapTable.js","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 2\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 3\n// module chunks = 0","const CONST_VAR = {\n SORT_DESC: 'desc',\n SORT_ASC: 'asc',\n SIZE_PER_PAGE: 10,\n NEXT_PAGE: '>',\n NEXT_PAGE_TITLE: 'next page',\n LAST_PAGE: '>>',\n LAST_PAGE_TITLE: 'last page',\n PRE_PAGE: '<',\n PRE_PAGE_TITLE: 'previous page',\n FIRST_PAGE: '<<',\n FIRST_PAGE_TITLE: 'first page',\n PAGE_START_INDEX: 1,\n ROW_SELECT_BG_COLOR: '',\n ROW_SELECT_NONE: 'none',\n ROW_SELECT_SINGLE: 'radio',\n ROW_SELECT_MULTI: 'checkbox',\n CELL_EDIT_NONE: 'none',\n CELL_EDIT_CLICK: 'click',\n CELL_EDIT_DBCLICK: 'dbclick',\n SIZE_PER_PAGE_LIST: [ 10, 25, 30, 50 ],\n PAGINATION_SIZE: 5,\n PAGINATION_POS_TOP: 'top',\n PAGINATION_POS_BOTTOM: 'bottom',\n PAGINATION_POS_BOTH: 'both',\n NO_DATA_TEXT: 'There is no data to display',\n SHOW_ONLY_SELECT: 'Show Selected Only',\n SHOW_ALL: 'Show All',\n EXPORT_CSV_TEXT: 'Export to CSV',\n INSERT_BTN_TEXT: 'New',\n DELETE_BTN_TEXT: 'Delete',\n SAVE_BTN_TEXT: 'Save',\n CLOSE_BTN_TEXT: 'Close',\n FILTER_DELAY: 500,\n SCROLL_TOP: 'Top',\n SCROLL_BOTTOM: 'Bottom',\n FILTER_TYPE: {\n TEXT: 'TextFilter',\n REGEX: 'RegexFilter',\n SELECT: 'SelectFilter',\n NUMBER: 'NumberFilter',\n DATE: 'DateFilter',\n CUSTOM: 'CustomFilter'\n },\n FILTER_COND_EQ: 'eq',\n FILTER_COND_LIKE: 'like',\n EXPAND_BY_ROW: 'row',\n EXPAND_BY_COL: 'column',\n CANCEL_TOASTR: 'Pressed ESC can cancel',\n REMOTE_SORT: 'sort',\n REMOTE_PAGE: 'pagination',\n REMOTE_CELL_EDIT: 'cellEdit',\n REMOTE_INSERT_ROW: 'insertRow',\n REMOTE_DROP_ROW: 'dropRow',\n REMOTE_FILTER: 'filter',\n REMOTE_SEARCH: 'search',\n REMOTE_EXPORT_CSV: 'exportCSV'\n};\n\nCONST_VAR.REMOTE = {};\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_SORT] = false;\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_PAGE] = false;\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_CELL_EDIT] = false;\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_INSERT_ROW] = false;\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_DROP_ROW] = false;\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_FILTER] = false;\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_SEARCH] = false;\nCONST_VAR.REMOTE[CONST_VAR.REMOTE_EXPORT_CSV] = false;\n\nexport default CONST_VAR;\n\n\n\n// WEBPACK FOOTER //\n// src/Const.js","import React, { Component, PropTypes } from 'react';\nimport ReactDOM from 'react-dom';\nimport Const from './Const';\nimport classSet from 'classnames';\nimport SelectRowHeaderColumn from './SelectRowHeaderColumn';\n\nclass Checkbox extends Component {\n componentDidMount() { this.update(this.props.checked); }\n componentWillReceiveProps(props) { this.update(props.checked); }\n update(checked) {\n ReactDOM.findDOMNode(this).indeterminate = checked === 'indeterminate';\n }\n render() {\n return (\n \n );\n }\n}\n\nfunction getSortOrder(sortList, field, enableSort) {\n if (!enableSort) return undefined;\n const result = sortList.filter(sortObj => {\n return sortObj.sortField === field;\n });\n if (result.length > 0) {\n return result[0].order;\n } else {\n return undefined;\n }\n}\n\nclass TableHeader extends Component {\n\n render() {\n const containerClasses = classSet(\n 'react-bs-container-header',\n 'table-header-wrapper',\n this.props.headerContainerClass);\n const tableClasses = classSet('table', 'table-hover', {\n 'table-bordered': this.props.bordered,\n 'table-condensed': this.props.condensed\n }, this.props.tableHeaderClass);\n\n const rowCount = Math.max(...React.Children.map(this.props.children, elm =>\n elm.props.row ? Number(elm.props.row) : 0\n ));\n\n const rows = [];\n let rowKey = 0;\n\n rows[0] = [];\n rows[0].push( [\n this.props.expandColumnVisible &&\n this.props.expandColumnBeforeSelectColumn &&\n \n ], [\n this.renderSelectRowHeader(rowCount + 1, rowKey++)\n ], [\n this.props.expandColumnVisible &&\n !this.props.expandColumnBeforeSelectColumn &&\n \n ]);\n const { sortIndicator, sortList, onSort, reset } = this.props;\n\n React.Children.forEach(this.props.children, (elm) => {\n const { dataField, dataSort } = elm.props;\n const sort = getSortOrder(sortList, dataField, dataSort);\n const rowIndex = elm.props.row ? Number(elm.props.row) : 0;\n const rowSpan = elm.props.rowSpan ? Number(elm.props.rowSpan) : 1;\n if (rows[rowIndex] === undefined) {\n rows[rowIndex] = [];\n }\n if ((rowSpan + rowIndex) === (rowCount + 1)) {\n rows[rowIndex].push(React.cloneElement(\n elm, { reset, key: rowKey++, onSort, sort, sortIndicator, isOnlyHead: false }\n ));\n } else {\n rows[rowIndex].push(React.cloneElement(\n elm, { key: rowKey++, isOnlyHead: true }\n ));\n }\n });\n\n const trs = rows.map((row, indexRow)=>{\n return (\n \n { row }\n \n );\n });\n\n return (\n
\n \n { React.cloneElement(this.props.colGroups, { ref: 'headerGrp' }) }\n \n { trs }\n \n
\n
\n );\n }\n\n getHeaderColGrouop = () => {\n return this.refs.headerGrp.childNodes;\n }\n\n renderSelectRowHeader(rowCount, rowKey) {\n if (this.props.hideSelectColumn) {\n return null;\n } else if (this.props.customComponent) {\n const CustomComponent = this.props.customComponent;\n return (\n \n \n \n );\n } else if (this.props.rowSelectType === Const.ROW_SELECT_SINGLE) {\n return ();\n } else if (this.props.rowSelectType === Const.ROW_SELECT_MULTI) {\n return (\n \n \n \n );\n } else {\n return null;\n }\n }\n}\nTableHeader.propTypes = {\n headerContainerClass: PropTypes.string,\n tableHeaderClass: PropTypes.string,\n style: PropTypes.object,\n rowSelectType: PropTypes.string,\n onSort: PropTypes.func,\n onSelectAllRow: PropTypes.func,\n sortList: PropTypes.array,\n hideSelectColumn: PropTypes.bool,\n bordered: PropTypes.bool,\n condensed: PropTypes.bool,\n isFiltered: PropTypes.bool,\n isSelectAll: PropTypes.oneOf([ true, 'indeterminate', false ]),\n sortIndicator: PropTypes.bool,\n customComponent: PropTypes.func,\n colGroups: PropTypes.element,\n reset: PropTypes.bool,\n expandColumnVisible: PropTypes.bool,\n expandColumnComponent: PropTypes.func,\n expandColumnBeforeSelectColumn: PropTypes.bool\n};\n\nexport default TableHeader;\n\n\n\n// WEBPACK FOOTER //\n// src/TableHeader.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n// module id = 6\n// module chunks = 0","import React, { Component, PropTypes } from 'react';\n\nclass SelectRowHeaderColumn extends Component {\n\n render() {\n return (\n \n { this.props.children }\n \n );\n }\n}\nSelectRowHeaderColumn.propTypes = {\n children: PropTypes.node,\n rowCount: PropTypes.number\n};\nexport default SelectRowHeaderColumn;\n\n\n\n// WEBPACK FOOTER //\n// src/SelectRowHeaderColumn.js","import React, { Component, PropTypes } from 'react';\nimport Utils from './util';\nimport Const from './Const';\nimport TableRow from './TableRow';\nimport TableColumn from './TableColumn';\nimport TableEditColumn from './TableEditColumn';\nimport classSet from 'classnames';\nimport ExpandComponent from './ExpandComponent';\n\nconst isFun = function(obj) {\n return obj && (typeof obj === 'function');\n};\n\nclass TableBody extends Component {\n constructor(props) {\n super(props);\n this.state = {\n currEditCell: null\n };\n }\n\n render() {\n const { cellEdit, beforeShowError, x, y, keyBoardNav } = this.props;\n const tableClasses = classSet('table', {\n 'table-striped': this.props.striped,\n 'table-bordered': this.props.bordered,\n 'table-hover': this.props.hover,\n 'table-condensed': this.props.condensed\n }, this.props.tableBodyClass);\n\n const noneditableRows = (cellEdit.nonEditableRows && cellEdit.nonEditableRows()) || [];\n const unselectable = this.props.selectRow.unselectable || [];\n const isSelectRowDefined = this._isSelectRowDefined();\n const tableHeader = Utils.renderColGroup(this.props.columns,\n this.props.selectRow, this.props.expandColumnOptions);\n const inputType = this.props.selectRow.mode === Const.ROW_SELECT_SINGLE ? 'radio' : 'checkbox';\n const CustomComponent = this.props.selectRow.customComponent;\n const enableKeyBoardNav = (keyBoardNav === true || typeof keyBoardNav === 'object');\n const customEditAndNavStyle = typeof keyBoardNav === 'object' ?\n keyBoardNav.customStyleOnEditCell :\n null;\n const customNavStyle = typeof keyBoardNav === 'object' ?\n keyBoardNav.customStyle :\n null;\n const ExpandColumnCustomComponent = this.props.expandColumnOptions.expandColumnComponent;\n let expandColSpan = this.props.columns.filter(col => !col.hidden).length;\n if (isSelectRowDefined && !this.props.selectRow.hideSelectColumn) {\n expandColSpan += 1;\n }\n let tabIndex = 1;\n if (this.props.expandColumnOptions.expandColumnVisible) {\n expandColSpan += 1;\n }\n\n let tableRows = this.props.data.map(function(data, r) {\n const tableColumns = this.props.columns.map(function(column, i) {\n const fieldValue = data[column.name];\n const isFocusCell = r === y && i === x;\n if (column.name !== this.props.keyField && // Key field can't be edit\n column.editable && // column is editable? default is true, user can set it false\n column.editable.readOnly !== true &&\n this.state.currEditCell !== null &&\n this.state.currEditCell.rid === r &&\n this.state.currEditCell.cid === i &&\n noneditableRows.indexOf(data[this.props.keyField]) === -1) {\n let editable = column.editable;\n const format = column.format ? function(value) {\n return column.format(value, data, column.formatExtraData, r).replace(/<.*?>/g, '');\n } : false;\n if (isFun(column.editable)) {\n editable = column.editable(fieldValue, data, r, i);\n }\n\n return (\n \n );\n } else {\n // add by bluespring for className customize\n let columnChild = fieldValue && fieldValue.toString();\n let columnTitle = null;\n let tdClassName = column.className;\n if (isFun(column.className)) {\n tdClassName = column.className(fieldValue, data, r, i);\n }\n\n if (typeof column.format !== 'undefined') {\n const formattedValue = column.format(fieldValue, data, column.formatExtraData, r);\n if (!React.isValidElement(formattedValue)) {\n columnChild = (\n
\n );\n } else {\n columnChild = formattedValue;\n columnTitle = column.columnTitle && formattedValue ? formattedValue.toString() : null;\n }\n } else {\n columnTitle = column.columnTitle && fieldValue ? fieldValue.toString() : null;\n }\n return (\n \n );\n }\n }, this);\n const key = data[this.props.keyField];\n const disable = unselectable.indexOf(key) !== -1;\n const selected = this.props.selectedRowKeys.indexOf(key) !== -1;\n const selectRowColumn = isSelectRowDefined && !this.props.selectRow.hideSelectColumn ?\n this.renderSelectRowColumn(selected, inputType, disable, CustomComponent, r, data) : null;\n const expandedRowColumn = this.renderExpandRowColumn(\n this.props.expandableRow && this.props.expandableRow(data),\n this.props.expanding.indexOf(key) > -1,\n ExpandColumnCustomComponent, r, data\n );\n // add by bluespring for className customize\n let trClassName = this.props.trClassName;\n if (isFun(this.props.trClassName)) {\n trClassName = this.props.trClassName(data, r);\n }\n const result = [ \n { this.props.expandColumnOptions.expandColumnVisible &&\n this.props.expandColumnOptions.expandColumnBeforeSelectColumn &&\n expandedRowColumn }\n { selectRowColumn }\n { this.props.expandColumnOptions.expandColumnVisible &&\n !this.props.expandColumnOptions.expandColumnBeforeSelectColumn &&\n expandedRowColumn }\n { tableColumns }\n ];\n\n if (this.props.expandableRow && this.props.expandableRow(data)) {\n result.push(\n