From 746c9f9399487ece15c369c4dd9e3388d415c22c Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 5 Jun 2018 21:03:31 +0200 Subject: separate dataset stuff from samplernn stuff --- public/bundle.js | 1175 ++++++++++++++++++++++++++------------------------ public/bundle.js.map | 2 +- 2 files changed, 612 insertions(+), 565 deletions(-) (limited to 'public') diff --git a/public/bundle.js b/public/bundle.js index 84fe51b..2602201 100644 --- a/public/bundle.js +++ b/public/bundle.js @@ -2962,6 +2962,246 @@ var uploadFiles = exports.uploadFiles = function uploadFiles(files) { /***/ }), +/***/ "./app/client/dataset/dataset.component.js": +/*!*************************************************!*\ + !*** ./app/client/dataset/dataset.component.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _preact = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.esm.js"); + +var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _util = __webpack_require__(/*! ../util */ "./app/client/util/index.js"); + +var util = _interopRequireWildcard(_util); + +var _actions = __webpack_require__(/*! ../actions */ "./app/client/actions.js"); + +var _actions2 = _interopRequireDefault(_actions); + +var _dataset = __webpack_require__(/*! ./dataset.form */ "./app/client/dataset/dataset.form.js"); + +var _dataset2 = _interopRequireDefault(_dataset); + +var _dataset3 = __webpack_require__(/*! ./dataset.new */ "./app/client/dataset/dataset.new.js"); + +var _dataset4 = _interopRequireDefault(_dataset3); + +var _fileList = __webpack_require__(/*! ../common/fileList.component */ "./app/client/common/fileList.component.js"); + +var _loading = __webpack_require__(/*! ../common/loading.component */ "./app/client/common/loading.component.js"); + +var _loading2 = _interopRequireDefault(_loading); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var DatasetComponent = function (_Component) { + _inherits(DatasetComponent, _Component); + + function DatasetComponent() { + _classCallCheck(this, DatasetComponent); + + return _possibleConstructorReturn(this, (DatasetComponent.__proto__ || Object.getPrototypeOf(DatasetComponent)).apply(this, arguments)); + } + + _createClass(DatasetComponent, [{ + key: 'render', + value: function render() { + var _props = this.props, + loading = _props.loading, + progress = _props.progress, + module = _props.module, + data = _props.data, + folder = _props.folder, + match = _props.match, + history = _props.history; + + if (loading) { + return (0, _preact.h)(_loading2.default, { progress: progress }); + } + if (!data.folders.length) { + console.log('no folders, redirect to /new'); + return history.push('/' + module.name + '/new/'); + } + if (!folder || !folder.name) return; + return (0, _preact.h)( + 'div', + { 'class': 'rows params datasets' }, + (0, _preact.h)( + 'div', + { 'class': 'row row-heading dataset' }, + (0, _preact.h)( + 'div', + { 'class': 'col' }, + 'input' + ), + (0, _preact.h)( + 'div', + { 'class': 'col' }, + 'status' + ), + (0, _preact.h)( + 'div', + { 'class': 'col' }, + 'checkpoint' + ), + (0, _preact.h)( + 'div', + { 'class': 'col' }, + 'output' + ) + ), + this.renderGroups() + ); + } + }, { + key: 'renderGroups', + value: function renderGroups() { + var _this2 = this; + + var _props2 = this.props, + module = _props2.module, + data = _props2.data, + folder = _props2.folder, + runner = _props2.runner, + onPickDataset = _props2.onPickDataset, + onPickFile = _props2.onPickFile, + datasetActions = _props2.datasetActions; + var datasetLookup = data.datasetLookup, + fileLookup = data.fileLookup; + + var _util$sort$orderByFn = util.sort.orderByFn('date desc'), + mapFn = _util$sort$orderByFn.mapFn, + sortFn = _util$sort$orderByFn.sortFn; + + var moduleOnCPU = runner && runner.cpu.task && runner.cpu.task.module === module.name; + var moduleOnGPU = runner && runner.gpu.task && runner.gpu.task.module === module.name; + var datasets = folder.datasets.map(function (name) { + return datasetLookup[name]; + }).map(mapFn).sort(sortFn).map(function (pair) { + var dataset = pair[1]; + var status = ''; + var isProcessing = false, + isFetching = false; + if (moduleOnGPU && runner.gpu.task.dataset === dataset) { + status = util.gerund(runner.gpu.task.activity); + isProcessing = true; + } else if (moduleOnCPU && runner.cpu.task.activity === 'fetch' && runner.cpu.task.opt.file_id === dataset.input[0]) { + isProcessing = true; + isFetching = true; + } + return (0, _preact.h)( + 'div', + { key: dataset.name, className: 'row dataset', onClick: function onClick() { + return onPickDataset && onPickDataset(dataset); + } }, + _this2.props.beforeRow && _this2.props.beforeRow(dataset), + (0, _preact.h)( + 'div', + { className: 'col' }, + !!dataset.input.length && (0, _preact.h)(_fileList.FileList, { + files: dataset.input.map(function (id) { + return fileLookup[id]; + }), + className: 'input_files', + fileListClassName: '', + rowClassName: 'input_file', + fields: 'name date size delete', + onClick: onPickFile, + onDelete: function onDelete(file) { + return _this2.onDeleteFile(file); + } + }) + ), + (0, _preact.h)( + 'div', + { className: ['col', 'quiet', dataset.isBuilt ? 'built' : 'not_built', isProcessing ? 'processing' : 'not_processing'].join(' ') }, + _this2.props.datasetActions && _this2.props.datasetActions(dataset, isFetching, isProcessing), + status + ), + (0, _preact.h)( + 'div', + { className: 'col checkpoint' }, + !!dataset.checkpoints.length && (0, _preact.h)(_fileList.FileRow, { + file: dataset.checkpoints[0], + fields: 'name date epoch', + className: 'row checkpoint' + }) + ), + (0, _preact.h)( + 'div', + { className: 'col' }, + !!dataset.output.length && (0, _preact.h)(_fileList.FileList, { + files: dataset.output.map(function (id) { + return fileLookup[id]; + }), + orderBy: 'epoch desc', + fields: 'name date epoch size', + onPickFile: onPickFile, + onDelete: function onDelete(file) { + return _this2.onDeleteFile(file); + } + }) + ), + _this2.props.afterRow && _this2.props.afterRow(dataset) + ); + }); + return datasets; + } + }, { + key: 'onDeleteFile', + value: function onDeleteFile(file) { + var yes = confirm('Are you sure you want to delete this file?'); + if (yes) { + console.log('delete: confirmed'); + if (this.props.onDeleteFile) { + console.log('calling custom deletefile function'); + this.props.onDeleteFile(file); + } else { + _actions2.default.file.destroy(file); + } + } + } + }]); + + return DatasetComponent; +}(_preact.Component); + +var mapStateToProps = function mapStateToProps(state) { + return { + runner: state.system.runner + }; +}; + +var mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) { + return {}; +}; + +exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(DatasetComponent); + +/***/ }), + /***/ "./app/client/dataset/dataset.form.js": /*!********************************************!*\ !*** ./app/client/dataset/dataset.form.js ***! @@ -3112,7 +3352,7 @@ var DatasetForm = function (_Component) { }(_preact.Component); var mapStateToProps = function mapStateToProps(state) { - return state.dataset; + return state.upload; }; var mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) { @@ -3366,48 +3606,250 @@ Object.defineProperty(exports, "__esModule", { value: true }); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + var _types = __webpack_require__(/*! ../types */ "./app/client/types.js"); var _types2 = _interopRequireDefault(_types); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var datasetInitialState = { - loading: false, - error: null, - status: '' +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; } + +/* + Note: + This is a sub-reducer intended to process the folder-file API output from the DB. + Please run this from inside your module reducers :) +*/ + +var datasetInitialState = function datasetInitialState() { + return { + loading: true, + error: null, + data: null + }; }; var datasetReducer = function datasetReducer() { - var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : datasetInitialState; + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : datasetInitialState(); var action = arguments[1]; switch (action.type) { - case _types2.default.folder.upload_loading: - return { - error: null, - loading: true, - status: 'Loading...' - }; - case _types2.default.folder.upload_error: - return { - error: null, + case _types2.default.dataset.load: + return _extends({}, state, { loading: false, - status: 'Error uploading :(' - }; - case _types2.default.folder.upload_progress: - return { - error: null, - loading: true, - status: 'Upload progress ' + action.percent + '%' - }; - case _types2.default.folder.upload_waiting: - return { - error: null, - loading: true, - status: 'Waiting for server to finish processing...' - }; - case _types2.default.folder.upload_complete: + data: action.data + }); + + case _types2.default.folder.create: + if (action.data.module === 'samplernn') { + return _extends({}, state, { + loading: false, + data: { + folders: state.data.folders.concat([action.data.id]), + folderLookup: _extends({}, state.data.folderLookup, _defineProperty({}, action.data.id, action.data)) + } + }); + } + return state; + + case _types2.default.file.create: + if (action.data.module === 'samplernn') { + console.log(action.data); + var dataset = void 0, + old_dataset = void 0, + folder = void 0, + old_folder = void 0; + var dataset_name = void 0; + if (action.data.dataset) { + dataset_name = action.data.dataset; + } else if (action.data.name) { + dataset_name = action.data.name.split('.')[0]; + } else if (action.data.url) { + dataset_name = action.data.url; + } else { + dataset_name = null; + } + if (dataset_name in state.data.datasetLookup) { + old_dataset = state.data.datasetLookup[dataset_name]; + dataset = _extends({}, old_dataset, { + input: action.data.generated ? old_dataset.input : [action.data.id].concat(old_dataset.input), + output: !action.data.generated ? old_dataset.output : [action.data.id].concat(old_dataset.output) + }); + } else { + console.log(action.data.created_at, action.data.date); + dataset = { + name: dataset_name, + date: action.data.created_at || action.data.date, + input: action.data.generated ? [] : [action.data.id], + checkpoints: [], + output: !action.data.generated ? [] : [action.data.id] + }; + } + old_folder = state.data.folderLookup[action.data.folder_id]; + folder = _extends({}, old_folder, { + datasets: old_folder.datasets.concat([dataset_name]), + files: old_folder.files.concat([action.data.id]) + }); + return _extends({}, state, { + loading: false, + data: _extends({}, state.data, { + files: state.data.files.concat([action.data.id]), + folderLookup: _extends({}, state.data.folderLookup, _defineProperty({}, action.data.folder_id, folder)), + fileLookup: _extends({}, state.data.fileLookup, _defineProperty({}, action.data.id, action.data)), + datasetLookup: _extends({}, state.data.datasetLookup, _defineProperty({}, dataset_name, dataset)) + }) + }); + } + return state; + + case _types2.default.file.update: + if (action.data.module === 'samplernn') { + var _extends6; + + var _old_dataset = void 0; + var new_dataset = state.data.datasetLookup[action.data.dataset]; + var old_file = state.data.fileLookup[action.data.id]; + var new_dataset_update = void 0; + if (old_file && action.data.dataset !== old_file.dataset) { + if (state.data.datasetLookup[old_file.dataset]) { + _old_dataset = state.data.datasetLookup[old_file.dataset]; + old_dataset_update = _extends({}, _old_dataset, { + input: _old_dataset.input.filter(function (id) { + return id !== action.data.id; + }), + output: _old_dataset.output.filter(function (id) { + return id !== action.data.id; + }) + }); + } + new_dataset_update = _extends({}, new_dataset, { + input: action.data.generated ? [] : [action.data.id], + output: !action.data.generated ? [] : [action.data.id] + }); + } + console.log('old_dataset', old_dataset_update.name); + console.log('new_dataset', new_dataset_update.name); + return _extends({}, state, { + loading: false, + data: _extends({}, state.data, { + datasetLookup: _old_dataset ? _extends({}, state.data.datasetLookup, (_extends6 = {}, _defineProperty(_extends6, _old_dataset.name, old_dataset_update), _defineProperty(_extends6, new_dataset.name, new_dataset_update), _extends6)) : new_dataset_update ? _extends({}, state.data.datasetLookup, _defineProperty({}, new_dataset.name, new_dataset_update)) : state.data.datasetLookup, + fileLookup: _extends({}, state.data.fileLookup, _defineProperty({}, action.data.id, action.data)) + }) + }); + } + return state; + + case _types2.default.file.destroy: + if (action.data.module === 'samplernn') { + // delete the key from fileLookup + var fileLookup = _extends({}, state.data.fileLookup); + var datasetLookup = _extends({}, state.data.datasetLookup); + var folderLookup = _extends({}, state.data.folderLookup); + var _old_file = fileLookup[action.data.id]; + if (!_old_file) return state; + var _old_dataset2 = state.data.datasetLookup[_old_file.dataset]; + var _dataset = void 0; + if (_old_dataset2) { + _dataset = _extends({}, _old_dataset2, { + input: _old_dataset2.input.filter(function (id) { + return id !== _old_file.id; + }), + output: _old_dataset2.output.filter(function (id) { + return id !== _old_file.id; + }) + }); + if (!_dataset.input.length && !_dataset.checkpoints.length && !_dataset.output.length) { + delete datasetLookup[_old_file.dataset]; + var _old_folder = folderLookup[_old_file.folder_id]; + folderLookup[_old_file.folder_id] = _extends({}, _old_folder, { + datasets: _old_folder.datasets.filter(function (name) { + return name !== _old_file.dataset; + }) + }); + } else { + console.log('dataset just needs sweeping'); + datasetLookup[_old_file.dataset] = _dataset; + } + } + delete fileLookup[_old_file.id]; + + return _extends({}, state, { + loading: false, + data: _extends({}, state.data, { + folderLookup: folderLookup, + fileLookup: fileLookup, + datasetLookup: datasetLookup + }) + }); + } + return state; + + default: + return state; + } +}; + +exports.default = datasetReducer; + +/***/ }), + +/***/ "./app/client/dataset/upload.reducer.js": +/*!**********************************************!*\ + !*** ./app/client/dataset/upload.reducer.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _types = __webpack_require__(/*! ../types */ "./app/client/types.js"); + +var _types2 = _interopRequireDefault(_types); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var uploadInitialState = { + loading: false, + error: null, + status: '' +}; + +var uploadReducer = function uploadReducer() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : uploadInitialState; + var action = arguments[1]; + + switch (action.type) { + case _types2.default.folder.upload_loading: + return { + error: null, + loading: true, + status: 'Loading...' + }; + case _types2.default.folder.upload_error: + return { + error: null, + loading: false, + status: 'Error uploading :(' + }; + case _types2.default.folder.upload_progress: + return { + error: null, + loading: true, + status: 'Upload progress ' + action.percent + '%' + }; + case _types2.default.folder.upload_waiting: + return { + error: null, + loading: true, + status: 'Waiting for server to finish processing...' + }; + case _types2.default.folder.upload_complete: return { error: null, loading: false, @@ -3419,29 +3861,19 @@ var datasetReducer = function datasetReducer() { loading: true, status: 'Creating file...' }; - case _types2.default.socket.status: - return datasetSocket(state, action.data); - default: - return state; - } -}; - -var datasetSocket = function datasetSocket(state, action) { - console.log(action); - switch (action.key) { default: return state; } }; -exports.default = datasetReducer; +exports.default = uploadReducer; /***/ }), -/***/ "./app/client/dataset/dataset.status.js": -/*!**********************************************!*\ - !*** ./app/client/dataset/dataset.status.js ***! - \**********************************************/ +/***/ "./app/client/dataset/upload.status.js": +/*!*********************************************!*\ + !*** ./app/client/dataset/upload.status.js ***! + \*********************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { @@ -3464,7 +3896,7 @@ var _loading2 = _interopRequireDefault(_loading); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function DatasetStatus(props) { +function UploadStatus(props) { return (0, _preact.h)( 'div', { 'class': 'status' }, @@ -3473,14 +3905,14 @@ function DatasetStatus(props) { } var mapStateToProps = function mapStateToProps(state) { - return state.dataset; + return state.upload; }; var mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) { return {}; }; -exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(DatasetStatus); +exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(UploadStatus); /***/ }), @@ -5350,8 +5782,9 @@ var load_directories = exports.load_directories = function load_directories(id) }); dispatch({ - type: _types2.default.samplernn.init, + type: _types2.default.dataset.load, data: { + module: module, folderLookup: folderLookup, fileLookup: fileLookup, datasetLookup: datasetLookup, @@ -5418,330 +5851,84 @@ var import_files = exports.import_files = function import_files(state, datasetLo case 'Hotlink': // in this case, create a new file for each file we see. promises = names.reduce(function (a, name) { - return datasetLookup[name].output.map(function (id) { - return fileLookup[id]; - }).map(function (file) { - var partz = file.name.split('.'); - var ext = partz.pop(); - return _actions2.default.file.create({ - folder_id: folder, - name: file.name, - url: url_base + file.name, - mime: 'audio/' + ext, - epoch: file.epoch, - size: file.size, - module: 'samplernn', - dataset: name, - activity: 'train', - datatype: 'audio', - generated: true, - created_at: new Date(file.date), - updated_at: new Date(file.date) - }); - }).concat(a); - }, []); - break; - case 'Upload': - promises = names.reduce(function (a, name) { - return datasetLookup[name].input.map(function (id) { - return fileLookup[id]; - }).map(function (file) { - if (file.persisted) return null; - var partz = file.name.split('.'); - var ext = partz.pop(); - if (ext === 'wav' || ext === 'flac') return; - console.log(file); - return _actions2.default.socket.upload_file({ - folder_id: folder, - module: 'samplernn', - activity: 'train', - path: 'datasets', - filename: file.name, - generated: false, - processed: false, - datatype: 'audio', - ttl: 60000 - }); - }).concat(a); - }, []).filter(function (a) { - return !!a; - }); - break; - default: - break; - } - console.log(promises); - return Promise.all(promises).then(function (data) { - console.log(data); - window.location.href = '/samplernn/datasets/' + folder.id; - }).catch(function (e) { - console.error(e); - }); - }; -}; - -var set_folder = exports.set_folder = function set_folder(folder) { - _types2.default.samplernn.set_folder, folder; -}; - -var fetch_url = exports.fetch_url = function fetch_url(url) { - return function (dispatch) { - console.log(url); - return _actions2.default.queue.add_task({ - activity: 'fetch', - module: 'samplernn', - dataset: 'test', - epochs: 1, - opt: { url: url } - }, { preempt: true, watch: true }); - }; -}; - -/***/ }), - -/***/ "./app/client/modules/samplernn/samplernn.datasets.js": -/*!************************************************************!*\ - !*** ./app/client/modules/samplernn/samplernn.datasets.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _preact = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.esm.js"); - -var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js"); - -var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); - -var _util = __webpack_require__(/*! ../../util */ "./app/client/util/index.js"); - -var util = _interopRequireWildcard(_util); - -var _samplernn = __webpack_require__(/*! ./samplernn.actions */ "./app/client/modules/samplernn/samplernn.actions.js"); - -var samplernnActions = _interopRequireWildcard(_samplernn); - -var _actions = __webpack_require__(/*! ../../actions */ "./app/client/actions.js"); - -var _actions2 = _interopRequireDefault(_actions); - -var _dataset = __webpack_require__(/*! ../../dataset/dataset.form */ "./app/client/dataset/dataset.form.js"); - -var _dataset2 = _interopRequireDefault(_dataset); - -var _dataset3 = __webpack_require__(/*! ../../dataset/dataset.new */ "./app/client/dataset/dataset.new.js"); - -var _dataset4 = _interopRequireDefault(_dataset3); - -var _fileList = __webpack_require__(/*! ../../common/fileList.component */ "./app/client/common/fileList.component.js"); - -var _loading = __webpack_require__(/*! ../../common/loading.component */ "./app/client/common/loading.component.js"); - -var _loading2 = _interopRequireDefault(_loading); - -var _samplernn2 = __webpack_require__(/*! ./samplernn.module */ "./app/client/modules/samplernn/samplernn.module.js"); - -var _samplernn3 = _interopRequireDefault(_samplernn2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var SampleRNNDatasets = function (_Component) { - _inherits(SampleRNNDatasets, _Component); - - function SampleRNNDatasets() { - _classCallCheck(this, SampleRNNDatasets); - - return _possibleConstructorReturn(this, (SampleRNNDatasets.__proto__ || Object.getPrototypeOf(SampleRNNDatasets)).apply(this, arguments)); - } - - _createClass(SampleRNNDatasets, [{ - key: 'render', - value: function render() { - var _props = this.props, - samplernn = _props.samplernn, - folder = _props.folder, - match = _props.match, - history = _props.history; - - if (samplernn.loading) { - return (0, _preact.h)(_loading2.default, { progress: samplernn.progress }); - } - if (!samplernn.data.folders.length) { - console.log('no folders, redirect to /new'); - return history.push('/samplernn/new/'); - } - if (!folder || !folder.name) return; - return (0, _preact.h)( - 'div', - { 'class': 'rows params datasets' }, - (0, _preact.h)( - 'div', - { 'class': 'row row-heading dataset' }, - (0, _preact.h)( - 'div', - { 'class': 'col' }, - 'input' - ), - (0, _preact.h)( - 'div', - { 'class': 'col' }, - 'status' - ), - (0, _preact.h)( - 'div', - { 'class': 'col' }, - 'checkpoint' - ), - (0, _preact.h)( - 'div', - { 'class': 'col' }, - 'output' - ) - ), - this.renderGroups() - ); - } - }, { - key: 'renderGroups', - value: function renderGroups() { - var _this2 = this; - - var _props2 = this.props, - samplernn = _props2.samplernn, - folder = _props2.folder, - runner = _props2.runner, - onPickDataset = _props2.onPickDataset, - onPickFile = _props2.onPickFile, - datasetActions = _props2.datasetActions; - var _samplernn$data = samplernn.data, - datasetLookup = _samplernn$data.datasetLookup, - fileLookup = _samplernn$data.fileLookup; - - var _util$sort$orderByFn = util.sort.orderByFn('date desc'), - mapFn = _util$sort$orderByFn.mapFn, - sortFn = _util$sort$orderByFn.sortFn; - - var moduleOnCPU = runner && runner.cpu.task && runner.cpu.task.module === _samplernn3.default.name; - var moduleOnGPU = runner && runner.gpu.task && runner.gpu.task.module === _samplernn3.default.name; - var datasets = folder.datasets.map(function (name) { - return datasetLookup[name]; - }).map(mapFn).sort(sortFn).map(function (pair) { - var dataset = pair[1]; - var status = ''; - var isProcessing = false, - isFetching = false; - if (moduleOnGPU && runner.gpu.task.dataset === dataset) { - status = util.gerund(runner.gpu.task.activity); - isProcessing = true; - } else if (moduleOnCPU && runner.cpu.task.activity === 'fetch' && runner.cpu.task.opt.file_id === dataset.input[0]) { - isProcessing = true; - isFetching = true; - } - return (0, _preact.h)( - 'div', - { key: dataset.name, className: 'row dataset', onClick: function onClick() { - return onPickDataset && onPickDataset(dataset); - } }, - _this2.props.beforeRow && _this2.props.beforeRow(dataset), - (0, _preact.h)( - 'div', - { className: 'col' }, - !!dataset.input.length && (0, _preact.h)(_fileList.FileList, { - files: dataset.input.map(function (id) { - return fileLookup[id]; - }), - className: 'input_files', - fileListClassName: '', - rowClassName: 'input_file', - fields: 'name date size delete', - onClick: onPickFile, - onDelete: function onDelete(file) { - return _this2.onDeleteFile(file); - } - }) - ), - (0, _preact.h)( - 'div', - { className: ['col', 'quiet', dataset.isBuilt ? 'built' : 'not_built', isProcessing ? 'processing' : 'not_processing'].join(' ') }, - _this2.props.datasetActions && _this2.props.datasetActions(dataset, isFetching, isProcessing), - status - ), - (0, _preact.h)( - 'div', - { className: 'col checkpoint' }, - !!dataset.checkpoints.length && (0, _preact.h)(_fileList.FileRow, { - file: dataset.checkpoints[0], - fields: 'name date epoch', - className: 'row checkpoint' - }) - ), - (0, _preact.h)( - 'div', - { className: 'col' }, - !!dataset.output.length && (0, _preact.h)(_fileList.FileList, { - files: dataset.output.map(function (id) { - return fileLookup[id]; - }), - orderBy: 'epoch desc', - fields: 'name date epoch size', - onPickFile: onPickFile, - onDelete: function onDelete(file) { - return _this2.onDeleteFile(file); - } - }) - ), - _this2.props.afterRow && _this2.props.afterRow(dataset) - ); - }); - return datasets; - } - }, { - key: 'onDeleteFile', - value: function onDeleteFile(file) { - var yes = confirm('Are you sure you want to delete this file?'); - if (yes) { - console.log('delete: confirmed'); - if (this.props.onDeleteFile) { - console.log('calling custom deletefile function'); - this.props.onDeleteFile(file); - } else { - _actions2.default.file.destroy(file); - } - } + return datasetLookup[name].output.map(function (id) { + return fileLookup[id]; + }).map(function (file) { + var partz = file.name.split('.'); + var ext = partz.pop(); + return _actions2.default.file.create({ + folder_id: folder, + name: file.name, + url: url_base + file.name, + mime: 'audio/' + ext, + epoch: file.epoch, + size: file.size, + module: 'samplernn', + dataset: name, + activity: 'train', + datatype: 'audio', + generated: true, + created_at: new Date(file.date), + updated_at: new Date(file.date) + }); + }).concat(a); + }, []); + break; + case 'Upload': + promises = names.reduce(function (a, name) { + return datasetLookup[name].input.map(function (id) { + return fileLookup[id]; + }).map(function (file) { + if (file.persisted) return null; + var partz = file.name.split('.'); + var ext = partz.pop(); + if (ext === 'wav' || ext === 'flac') return; + console.log(file); + return _actions2.default.socket.upload_file({ + folder_id: folder, + module: 'samplernn', + activity: 'train', + path: 'datasets', + filename: file.name, + generated: false, + processed: false, + datatype: 'audio', + ttl: 60000 + }); + }).concat(a); + }, []).filter(function (a) { + return !!a; + }); + break; + default: + break; } - }]); - - return SampleRNNDatasets; -}(_preact.Component); - -var mapStateToProps = function mapStateToProps(state) { - return { - samplernn: state.module.samplernn, - runner: state.system.runner + console.log(promises); + return Promise.all(promises).then(function (data) { + console.log(data); + window.location.href = '/samplernn/datasets/' + folder.id; + }).catch(function (e) { + console.error(e); + }); }; }; -var mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) { - return {}; +var set_folder = exports.set_folder = function set_folder(folder) { + _types2.default.samplernn.set_folder, folder; }; -exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SampleRNNDatasets); +var fetch_url = exports.fetch_url = function fetch_url(url) { + return function (dispatch) { + console.log(url); + return _actions2.default.queue.add_task({ + activity: 'fetch', + module: 'samplernn', + dataset: 'test', + epochs: 1, + opt: { url: url } + }, { preempt: true, watch: true }); + }; +}; /***/ }), @@ -5787,9 +5974,11 @@ var _types = __webpack_require__(/*! ../../types */ "./app/client/types.js"); var _types2 = _interopRequireDefault(_types); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _dataset = __webpack_require__(/*! ../../dataset/dataset.reducer */ "./app/client/dataset/dataset.reducer.js"); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _dataset2 = _interopRequireDefault(_dataset); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var samplernnInitialState = { loading: true, @@ -5805,161 +5994,11 @@ var samplernnReducer = function samplernnReducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : samplernnInitialState; var action = arguments[1]; - // console.log(action.type) - switch (action.type) { - case _types2.default.samplernn.init: - return _extends({}, state, { - loading: false, - data: action.data - }); - - case _types2.default.folder.create: - if (action.data.module === 'samplernn') { - return _extends({}, state, { - loading: false, - data: { - folders: state.data.folders.concat([action.data.id]), - folderLookup: _extends({}, state.data.folderLookup, _defineProperty({}, action.data.id, action.data)) - }, - folder: _extends({}, action.data, { - datasets: [], - files: [] - }) - }); - } - return state; - - case _types2.default.file.create: - if (action.data.module === 'samplernn') { - console.log(action.data); - var dataset = void 0, - old_dataset = void 0, - folder = void 0, - old_folder = void 0; - var dataset_name = void 0; - if (action.data.dataset) { - dataset_name = action.data.dataset; - } else if (action.data.name) { - dataset_name = action.data.name.split('.')[0]; - } else if (action.data.url) { - dataset_name = action.data.url; - } else { - dataset_name = null; - } - if (dataset_name in state.data.datasetLookup) { - old_dataset = state.data.datasetLookup[dataset_name]; - dataset = _extends({}, old_dataset, { - input: action.data.generated ? old_dataset.input : [action.data.id].concat(old_dataset.input), - output: !action.data.generated ? old_dataset.output : [action.data.id].concat(old_dataset.output) - }); - } else { - console.log(action.data.created_at, action.data.date); - dataset = { - name: dataset_name, - date: action.data.created_at || action.data.date, - input: action.data.generated ? [] : [action.data.id], - checkpoints: [], - output: !action.data.generated ? [] : [action.data.id] - }; - } - old_folder = state.data.folderLookup[action.data.folder_id]; - folder = _extends({}, old_folder, { - datasets: old_folder.datasets.concat([dataset_name]), - files: old_folder.files.concat([action.data.id]) - }); - return _extends({}, state, { - loading: false, - data: _extends({}, state.data, { - files: state.data.files.concat([action.data.id]), - folderLookup: _extends({}, state.data.folderLookup, _defineProperty({}, action.data.folder_id, folder)), - fileLookup: _extends({}, state.data.fileLookup, _defineProperty({}, action.data.id, action.data)), - datasetLookup: _extends({}, state.data.datasetLookup, _defineProperty({}, dataset_name, dataset)) - }) - }); - } - return state; - - case _types2.default.file.update: - if (action.data.module === 'samplernn') { - var _extends6; - - var _old_dataset = void 0; - var new_dataset = state.data.datasetLookup[action.data.dataset]; - var old_file = state.data.fileLookup[action.data.id]; - var new_dataset_update = void 0; - if (old_file && action.data.dataset !== old_file.dataset) { - if (state.data.datasetLookup[old_file.dataset]) { - _old_dataset = state.data.datasetLookup[old_file.dataset]; - old_dataset_update = _extends({}, _old_dataset, { - input: _old_dataset.input.filter(function (id) { - return id !== action.data.id; - }), - output: _old_dataset.output.filter(function (id) { - return id !== action.data.id; - }) - }); - } - new_dataset_update = _extends({}, new_dataset, { - input: action.data.generated ? [] : [action.data.id], - output: !action.data.generated ? [] : [action.data.id] - }); - } - console.log('old_dataset', old_dataset_update.name); - console.log('new_dataset', new_dataset_update.name); - return _extends({}, state, { - loading: false, - data: _extends({}, state.data, { - datasetLookup: _old_dataset ? _extends({}, state.data.datasetLookup, (_extends6 = {}, _defineProperty(_extends6, _old_dataset.name, old_dataset_update), _defineProperty(_extends6, new_dataset.name, new_dataset_update), _extends6)) : new_dataset_update ? _extends({}, state.data.datasetLookup, _defineProperty({}, new_dataset.name, new_dataset_update)) : state.data.datasetLookup, - fileLookup: _extends({}, state.data.fileLookup, _defineProperty({}, action.data.id, action.data)) - }) - }); - } - return state; - - case _types2.default.file.destroy: - if (action.data.module === 'samplernn') { - // delete the key from fileLookup - var fileLookup = _extends({}, state.data.fileLookup); - var datasetLookup = _extends({}, state.data.datasetLookup); - var folderLookup = _extends({}, state.data.folderLookup); - var _old_file = fileLookup[action.data.id]; - if (!_old_file) return state; - var _old_dataset2 = state.data.datasetLookup[_old_file.dataset]; - var _dataset = void 0; - if (_old_dataset2) { - _dataset = _extends({}, _old_dataset2, { - input: _old_dataset2.input.filter(function (id) { - return id !== _old_file.id; - }), - output: _old_dataset2.output.filter(function (id) { - return id !== _old_file.id; - }) - }); - if (!_dataset.input.length && !_dataset.checkpoints.length && !_dataset.output.length) { - delete datasetLookup[_old_file.dataset]; - var _old_folder = folderLookup[_old_file.folder_id]; - folderLookup[_old_file.folder_id] = _extends({}, _old_folder, { - datasets: _old_folder.datasets.filter(function (name) { - return name !== _old_file.dataset; - }) - }); - } else { - console.log('dataset just needs sweeping'); - datasetLookup[_old_file.dataset] = _dataset; - } - } - delete fileLookup[_old_file.id]; + if (action.data && action.data.module === 'samplernn') { + return (0, _dataset2.default)(state, action); + } - return _extends({}, state, { - loading: false, - data: _extends({}, state.data, { - folderLookup: folderLookup, - fileLookup: fileLookup, - datasetLookup: datasetLookup - }) - }); - } - return state; + switch (action.type) { case _types2.default.samplernn.set_folder: return _extends({}, state, { @@ -6359,9 +6398,9 @@ var _button = __webpack_require__(/*! ../../../common/button.component */ "./app var _button2 = _interopRequireDefault(_button); -var _samplernn2 = __webpack_require__(/*! ../samplernn.datasets */ "./app/client/modules/samplernn/samplernn.datasets.js"); +var _dataset = __webpack_require__(/*! ../../../dataset/dataset.component */ "./app/client/dataset/dataset.component.js"); -var _samplernn3 = _interopRequireDefault(_samplernn2); +var _dataset2 = _interopRequireDefault(_dataset); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -6496,7 +6535,11 @@ var SampleRNNImport = function (_Component) { ) ) ), - (0, _preact.h)(_samplernn3.default, { + (0, _preact.h)(_dataset2.default, { + loading: samplernn.loading, + progress: samplernn.progress, + module: samplernnModule, + data: samplernn.data, id: 'unsorted', folder: folder, history: this.props.history, @@ -6892,19 +6935,19 @@ var _dataset3 = __webpack_require__(/*! ../../../dataset/dataset.new */ "./app/c var _dataset4 = _interopRequireDefault(_dataset3); -var _dataset5 = __webpack_require__(/*! ../../../dataset/dataset.status */ "./app/client/dataset/dataset.status.js"); +var _upload = __webpack_require__(/*! ../../../dataset/upload.status */ "./app/client/dataset/upload.status.js"); -var _dataset6 = _interopRequireDefault(_dataset5); +var _upload2 = _interopRequireDefault(_upload); var _fileList = __webpack_require__(/*! ../../../common/fileList.component */ "./app/client/common/fileList.component.js"); -var _samplernn3 = __webpack_require__(/*! ../samplernn.datasets */ "./app/client/modules/samplernn/samplernn.datasets.js"); +var _dataset5 = __webpack_require__(/*! ../../../dataset/dataset.component */ "./app/client/dataset/dataset.component.js"); -var _samplernn4 = _interopRequireDefault(_samplernn3); +var _dataset6 = _interopRequireDefault(_dataset5); -var _samplernn5 = __webpack_require__(/*! ../samplernn.module */ "./app/client/modules/samplernn/samplernn.module.js"); +var _samplernn3 = __webpack_require__(/*! ../samplernn.module */ "./app/client/modules/samplernn/samplernn.module.js"); -var _samplernn6 = _interopRequireDefault(_samplernn5); +var _samplernn4 = _interopRequireDefault(_samplernn3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -6974,17 +7017,21 @@ var SampleRNNShow = function (_Component) { null, folder ? folder.name : (0, _preact.h)(_loading2.default, null) ), - (0, _preact.h)(_dataset6.default, null) + (0, _preact.h)(_upload2.default, null) ) ), folder && folder.name && folder.name !== 'unsorted' && (0, _preact.h)(_dataset2.default, { title: 'Add Files', - module: _samplernn6.default, + module: _samplernn4.default, folder: folder, canUpload: true, canAddURL: true }), - (0, _preact.h)(_samplernn4.default, { + (0, _preact.h)(_dataset6.default, { + loading: samplernn.loading, + progress: samplernn.progress, id: samplernn.folder_id, + module: _samplernn4.default, + data: samplernn.data, folder: folder, history: history, onPickFile: function onPickFile(file, e) { @@ -7893,9 +7940,9 @@ var _live = __webpack_require__(/*! ./live/live.reducer */ "./app/client/live/li var _live2 = _interopRequireDefault(_live); -var _dataset = __webpack_require__(/*! ./dataset/dataset.reducer */ "./app/client/dataset/dataset.reducer.js"); +var _upload = __webpack_require__(/*! ./dataset/upload.reducer */ "./app/client/dataset/upload.reducer.js"); -var _dataset2 = _interopRequireDefault(_dataset); +var _upload2 = _interopRequireDefault(_upload); var _queue = __webpack_require__(/*! ./queue/queue.reducer */ "./app/client/queue/queue.reducer.js"); @@ -7913,7 +7960,7 @@ var appReducer = (0, _redux.combineReducers)({ system: _system2.default, dashboard: _dashboard2.default, live: _live2.default, - dataset: _dataset2.default, + upload: _upload2.default, queue: _queue2.default, router: _reactRouterRedux.routerReducer, module: _module.moduleReducer, @@ -8699,13 +8746,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _system$app$folder$fi; - var _crud = __webpack_require__(/*! ./api/crud.types */ "./app/client/api/crud.types.js"); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -exports.default = (_system$app$folder$fi = { +exports.default = { system: { load_site: 'SYSTEM_LOAD_SITE', running_command: 'SYSTEM_RUNNING_COMMAND', @@ -8725,7 +8768,6 @@ exports.default = (_system$app$folder$fi = { }, folder: (0, _crud.crud_type)('folder', []), file: (0, _crud.crud_type)('file', []), - dataset: (0, _crud.crud_type)('dataset', []), task: (0, _crud.crud_type)('task', ['starting_task', 'stopping_task', 'task_begin', 'task_finish', 'start_queue', 'stop_queue', 'starting_queue', 'stopping_queue', 'progress', 'epoch']), socket: { connect: 'SOCKET_CONNECT', @@ -8771,27 +8813,32 @@ exports.default = (_system$app$folder$fi = { pause: 'AUDIO_PAUSE', resume: 'AUDIO_RESUME', enqueue: 'AUDIO_ENQUEUE' + }, + dataset: { + load: 'DATASET_LOAD', + upload_files: 'DATASET_UPLOAD_FILES', + file_progress: 'DATASET_FILE_PROGRESS', + file_uploaded: 'DATASET_FILE_UPLOADED', + fetch_url: 'DATASET_FETCH_URL', + fetch_progress: 'DATASET_FETCH_PROGRESS' + }, + samplernn: { + init: 'SAMPLERNN_INIT', + set_folder: 'SAMPLERNN_SET_FOLDER', + load_loss: 'SAMPLERNN_LOAD_LOSS' + // queue and train + // update checkpoint settings + // reset checkpoint settings + // queue new checkpoint + // + }, + pix2pix: { + init: 'PIX2PIX_INIT' + }, + pix2wav: { + init: 'PIX2WAV_INIT' } -}, _defineProperty(_system$app$folder$fi, 'dataset', { - upload_files: 'UPLOAD_FILES', - file_progress: 'FILE_PROGRESS', - file_uploaded: 'FILE_UPLOADED', - fetch_url: 'FETCH_URL', - fetch_progress: 'FETCH_PROGRESS' -}), _defineProperty(_system$app$folder$fi, 'samplernn', { - init: 'SAMPLERNN_INIT', - set_folder: 'SAMPLERNN_SET_FOLDER', - load_loss: 'SAMPLERNN_LOAD_LOSS' - // queue and train - // update checkpoint settings - // reset checkpoint settings - // queue new checkpoint - // -}), _defineProperty(_system$app$folder$fi, 'pix2pix', { - init: 'PIX2PIX_INIT' -}), _defineProperty(_system$app$folder$fi, 'pix2wav', { - init: 'PIX2WAV_INIT' -}), _system$app$folder$fi); +}; /***/ }), diff --git a/public/bundle.js.map b/public/bundle.js.map index 7b8257b..bce7f61 100644 --- a/public/bundle.js.map +++ b/public/bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bundle.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/client/actions.js","webpack:///./app/client/api/crud.actions.js","webpack:///./app/client/api/crud.fetch.js","webpack:///./app/client/api/crud.types.js","webpack:///./app/client/api/crud.upload.js","webpack:///./app/client/api/index.js","webpack:///./app/client/api/parser.js","webpack:///./app/client/common/audioPlayer/audioPlayer.actions.js","webpack:///./app/client/common/audioPlayer/audioPlayer.component.js","webpack:///./app/client/common/audioPlayer/audioPlayer.reducer.js","webpack:///./app/client/common/button.component.js","webpack:///./app/client/common/fileList.component.js","webpack:///./app/client/common/fileUpload.component.js","webpack:///./app/client/common/gallery.component.js","webpack:///./app/client/common/group.component.js","webpack:///./app/client/common/header.component.js","webpack:///./app/client/common/loading.component.js","webpack:///./app/client/common/param.component.js","webpack:///./app/client/common/paramGroup.component.js","webpack:///./app/client/common/player.component.js","webpack:///./app/client/common/progress.component.js","webpack:///./app/client/common/select.component.js","webpack:///./app/client/common/slider.component.js","webpack:///./app/client/common/textInput.component.js","webpack:///./app/client/dashboard/dashboard.actions.js","webpack:///./app/client/dashboard/dashboard.component.js","webpack:///./app/client/dashboard/dashboard.reducer.js","webpack:///./app/client/dashboard/dashboardheader.component.js","webpack:///./app/client/dashboard/tasklist.component.js","webpack:///./app/client/dataset/dataset.actions.js","webpack:///./app/client/dataset/dataset.form.js","webpack:///./app/client/dataset/dataset.loader.js","webpack:///./app/client/dataset/dataset.new.js","webpack:///./app/client/dataset/dataset.reducer.js","webpack:///./app/client/dataset/dataset.status.js","webpack:///./app/client/index.jsx","webpack:///./app/client/live/live.actions.js","webpack:///./app/client/live/live.reducer.js","webpack:///./app/client/live/player.js","webpack:///./app/client/live/whammy.js","webpack:///./app/client/modules/index.js","webpack:///./app/client/modules/module.reducer.js","webpack:///./app/client/modules/pix2pix/index.js","webpack:///./app/client/modules/pix2pix/pix2pix.live.js","webpack:///./app/client/modules/pix2pix/pix2pix.reducer.js","webpack:///./app/client/modules/pix2wav/index.js","webpack:///./app/client/modules/pix2wav/pix2wav.reducer.js","webpack:///./app/client/modules/samplernn/index.js","webpack:///./app/client/modules/samplernn/samplernn.actions.js","webpack:///./app/client/modules/samplernn/samplernn.datasets.js","webpack:///./app/client/modules/samplernn/samplernn.module.js","webpack:///./app/client/modules/samplernn/samplernn.reducer.js","webpack:///./app/client/modules/samplernn/samplernn.tasks.js","webpack:///./app/client/modules/samplernn/views/samplernn.graph.js","webpack:///./app/client/modules/samplernn/views/samplernn.import.js","webpack:///./app/client/modules/samplernn/views/samplernn.new.js","webpack:///./app/client/modules/samplernn/views/samplernn.results.js","webpack:///./app/client/modules/samplernn/views/samplernn.show.js","webpack:///./app/client/queue/queue.actions.js","webpack:///./app/client/queue/queue.reducer.js","webpack:///./app/client/socket/index.js","webpack:///./app/client/socket/socket.actions.js","webpack:///./app/client/socket/socket.api.js","webpack:///./app/client/socket/socket.connection.js","webpack:///./app/client/socket/socket.live.js","webpack:///./app/client/socket/socket.system.js","webpack:///./app/client/socket/socket.task.js","webpack:///./app/client/store.js","webpack:///./app/client/system/system.actions.js","webpack:///./app/client/system/system.component.js","webpack:///./app/client/system/system.reducer.js","webpack:///./app/client/types.js","webpack:///./app/client/util/index.js","webpack:///./app/client/util/sort.js","webpack:///./node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/fbjs/lib/warning.js","webpack:///./node_modules/fetch-jsonp/build/fetch-jsonp.js","webpack:///./node_modules/file-saver/FileSaver.js","webpack:///./node_modules/history/DOMUtils.js","webpack:///./node_modules/history/LocationUtils.js","webpack:///./node_modules/history/PathUtils.js","webpack:///./node_modules/history/createBrowserHistory.js","webpack:///./node_modules/history/createHashHistory.js","webpack:///./node_modules/history/createMemoryHistory.js","webpack:///./node_modules/history/createTransitionManager.js","webpack:///./node_modules/history/es/DOMUtils.js","webpack:///./node_modules/history/es/LocationUtils.js","webpack:///./node_modules/history/es/PathUtils.js","webpack:///./node_modules/history/es/createBrowserHistory.js","webpack:///./node_modules/history/es/createHashHistory.js","webpack:///./node_modules/history/es/createMemoryHistory.js","webpack:///./node_modules/history/es/createTransitionManager.js","webpack:///./node_modules/history/es/index.js","webpack:///./node_modules/hoist-non-react-statics/index.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/isPlainObject.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/node-fetch/browser.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/preact-compat/dist/preact-compat.es.js","webpack:///./node_modules/preact/dist/preact.esm.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/react-redux/es/components/connectAdvanced.js","webpack:///./node_modules/react-redux/es/connect/connect.js","webpack:///./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack:///./node_modules/react-redux/es/connect/mapStateToProps.js","webpack:///./node_modules/react-redux/es/connect/mergeProps.js","webpack:///./node_modules/react-redux/es/connect/selectorFactory.js","webpack:///./node_modules/react-redux/es/connect/verifySubselectors.js","webpack:///./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack:///./node_modules/react-redux/es/index.js","webpack:///./node_modules/react-redux/es/utils/PropTypes.js","webpack:///./node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-redux/es/utils/shallowEqual.js","webpack:///./node_modules/react-redux/es/utils/verifyPlainObject.js","webpack:///./node_modules/react-redux/es/utils/warning.js","webpack:///./node_modules/react-router-dom/es/BrowserRouter.js","webpack:///./node_modules/react-router-dom/es/HashRouter.js","webpack:///./node_modules/react-router-dom/es/Link.js","webpack:///./node_modules/react-router-dom/es/MemoryRouter.js","webpack:///./node_modules/react-router-dom/es/NavLink.js","webpack:///./node_modules/react-router-dom/es/Prompt.js","webpack:///./node_modules/react-router-dom/es/Redirect.js","webpack:///./node_modules/react-router-dom/es/Route.js","webpack:///./node_modules/react-router-dom/es/Router.js","webpack:///./node_modules/react-router-dom/es/StaticRouter.js","webpack:///./node_modules/react-router-dom/es/Switch.js","webpack:///./node_modules/react-router-dom/es/index.js","webpack:///./node_modules/react-router-dom/es/matchPath.js","webpack:///./node_modules/react-router-dom/es/withRouter.js","webpack:///./node_modules/react-router-redux/lib/actions.js","webpack:///./node_modules/react-router-redux/lib/index.js","webpack:///./node_modules/react-router-redux/lib/middleware.js","webpack:///./node_modules/react-router-redux/lib/reducer.js","webpack:///./node_modules/react-router-redux/lib/sync.js","webpack:///./node_modules/react-router/es/MemoryRouter.js","webpack:///./node_modules/react-router/es/Prompt.js","webpack:///./node_modules/react-router/es/Redirect.js","webpack:///./node_modules/react-router/es/Route.js","webpack:///./node_modules/react-router/es/Router.js","webpack:///./node_modules/react-router/es/StaticRouter.js","webpack:///./node_modules/react-router/es/Switch.js","webpack:///./node_modules/react-router/es/matchPath.js","webpack:///./node_modules/react-router/es/withRouter.js","webpack:///./node_modules/react-router/node_modules/isarray/index.js","webpack:///./node_modules/react-router/node_modules/path-to-regexp/index.js","webpack:///./node_modules/redux-thunk/lib/index.js","webpack:///./node_modules/redux/es/redux.js","webpack:///./node_modules/resolve-pathname/index.js","webpack:///./node_modules/symbol-observable/es/index.js","webpack:///./node_modules/symbol-observable/es/ponyfill.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/value-equal/index.js","webpack:///./node_modules/warning/browser.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///(webpack)/buildin/module.js"],"sourcesContent":[" \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/client/index.jsx\");\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = require('redux');\n\nvar _api = require('./api');\n\nvar _live = require('./live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nvar _queue = require('./queue/queue.actions');\n\nvar queueActions = _interopRequireWildcard(_queue);\n\nvar _system = require('./system/system.actions');\n\nvar systemActions = _interopRequireWildcard(_system);\n\nvar _socket = require('./socket/socket.actions');\n\nvar socketActions = _interopRequireWildcard(_socket);\n\nvar _dataset = require('./dataset/dataset.actions');\n\nvar datasetActions = _interopRequireWildcard(_dataset);\n\nvar _audioPlayer = require('./common/audioPlayer/audioPlayer.actions');\n\nvar audioPlayerActions = _interopRequireWildcard(_audioPlayer);\n\nvar _store = require('./store');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nexports.default = Object.keys(_api.actions).map(function (a) {\n return [a, _api.actions[a]];\n}).concat([['live', liveActions], ['queue', queueActions], ['system', systemActions], ['dataset', datasetActions], ['audioPlayer', audioPlayerActions]]).map(function (p) {\n return [p[0], (0, _redux.bindActionCreators)(p[1], _store.dispatch)];\n}).concat([['socket', socketActions]]).reduce(function (a, b) {\n return (a[b[0]] = b[1]) && a;\n}, {});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.crud_action = undefined;\nexports.crud_actions = crud_actions;\n\nvar _crud = require('./crud.fetch');\n\nvar _crud2 = require('./crud.types');\n\nvar _crud3 = require('./crud.upload');\n\nfunction crud_actions(type) {\n var fetch_type = (0, _crud.crud_fetch)(type);\n return ['index', 'show', 'create', 'update', 'destroy'].reduce(function (lookup, param) {\n lookup[param] = crud_action(type, param, function (q) {\n return fetch_type[param](q);\n });\n return lookup;\n }, {\n action: function action(method, fn) {\n return crud_action(type, method, fn);\n },\n upload: function upload(id, fd) {\n return (0, _crud3.upload_action)(type, id, fd);\n }\n });\n}\n\nvar crud_action = exports.crud_action = function crud_action(type, method, fn) {\n return function (q) {\n return function (dispatch) {\n return new Promise(function (resolve, reject) {\n dispatch({ type: (0, _crud2.as_type)(type, method + '_loading') });\n fn(q).then(function (data) {\n dispatch({ type: (0, _crud2.as_type)(type, method), data: data });\n resolve(data);\n }).catch(function (e) {\n dispatch({ type: (0, _crud2.as_type)(type, method + '_error') });\n reject(e);\n });\n });\n };\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.crud_fetch = crud_fetch;\nexports.postBody = postBody;\n\nvar _nodeFetch = require('node-fetch');\n\nvar _nodeFetch2 = _interopRequireDefault(_nodeFetch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction crud_fetch(type, tag) {\n var uri = '/api/' + type + '/' + (tag || '');\n return {\n index: function index(q) {\n return (0, _nodeFetch2.default)(_get_url(uri, q), _get_headers()).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n show: function show(id) {\n return (0, _nodeFetch2.default)(uri + id).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n create: function create(data) {\n return (0, _nodeFetch2.default)(uri, post(data)).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n update: function update(data) {\n return (0, _nodeFetch2.default)(uri + data.id, put(data)).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n destroy: function destroy(data) {\n return (0, _nodeFetch2.default)(uri + data.id, _destroy(data)).then(function (req) {\n return req.json();\n }).catch(error);\n }\n };\n}\n\nfunction _get_url(_url, data) {\n var url = new URL(window.location.origin + _url);\n if (data) {\n Object.keys(data).forEach(function (key) {\n return url.searchParams.append(key, data[key]);\n });\n }\n return url;\n}\nfunction _get_headers() {\n return {\n method: 'GET',\n headers: {\n 'Accept': 'application/json'\n }\n };\n}\nfunction post(data) {\n return {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n };\n}\nfunction postBody(data) {\n return {\n method: 'POST',\n body: data,\n headers: {\n 'Accept': 'application/json'\n }\n };\n}\nfunction put(data) {\n return {\n method: 'PUT',\n body: JSON.stringify(data),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n };\n}\nfunction _destroy(data) {\n return {\n method: 'DELETE',\n body: JSON.stringify(data),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n };\n}\nfunction error(err) {\n console.warn(err);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar as_type = exports.as_type = function as_type(a, b) {\n return [a, b].join('_').toUpperCase();\n};\n\nvar crud_type = exports.crud_type = function crud_type(type) {\n var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return actions.concat(['index_loading', 'index', 'index_error', 'show_loading', 'show', 'show_error', 'create_loading', 'create', 'create_error', 'update_loading', 'update', 'update_error', 'destroy_loading', 'destroy', 'destroy_error', 'upload_loading', 'upload_progress', 'upload_waiting', 'upload_complete', 'upload_error', 'sort']).reduce(function (a, b) {\n return (a[b] = as_type(type, b)) && a;\n }, {});\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.upload_action = undefined;\nexports.crud_upload = crud_upload;\n\nvar _crud = require('./crud.types');\n\nfunction _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; }\n\nfunction crud_upload(type, fd, data, dispatch) {\n return new Promise(function (resolve, reject) {\n var id = data.id;\n\n Object.keys(data).forEach(function (key) {\n if (key !== 'id') {\n fd.append(key, data[key]);\n }\n });\n\n var xhr = new XMLHttpRequest();\n xhr.upload.addEventListener(\"progress\", uploadProgress, false);\n xhr.addEventListener(\"load\", uploadComplete, false);\n xhr.addEventListener(\"error\", uploadFailed, false);\n xhr.addEventListener(\"abort\", uploadCancelled, false);\n xhr.open(\"POST\", '/api/' + type + '/' + id + '/upload/');\n xhr.send(fd);\n\n dispatch && dispatch({ type: (0, _crud.as_type)(type, 'upload_loading') });\n\n var complete = false;\n\n function uploadProgress(e) {\n if (e.lengthComputable) {\n var percent = Math.round(e.loaded * 100 / e.total) || 0;\n if (percent > 99) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_waiting'),\n percent: percent\n }, type, id));\n } else {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_progress'),\n percent: percent\n }, type, id));\n }\n } else {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'unable to compute upload progress'\n }, type, id));\n }\n }\n\n function uploadComplete(e) {\n var parsed = void 0;\n try {\n parsed = JSON.parse(e.target.responseText);\n } catch (e) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'upload failed'\n }, type, id));\n reject(e);\n return;\n }\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_complete'),\n data: parsed\n }, type, id));\n if (parsed.files && parsed.files.length) {\n parsed.files.forEach(function (file) {\n console.log(file);\n dispatch && dispatch({\n type: (0, _crud.as_type)('file', 'create'),\n data: file\n });\n });\n }\n resolve(parsed);\n }\n\n function uploadFailed(evt) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'upload failed'\n }, type, id));\n reject(evt);\n }\n\n function uploadCancelled(evt) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'upload cancelled'\n }, type, id));\n reject(evt);\n }\n });\n}\n\nvar upload_action = exports.upload_action = function upload_action(type, id, fd) {\n return function (dispatch) {\n return crud_upload(type, id, fd, dispatch);\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.actions = exports.parser = exports.util = undefined;\n\nvar _crud = require('./crud.actions');\n\nvar _util = require('../util');\n\nvar util = _interopRequireWildcard(_util);\n\nvar _parser = require('./parser');\n\nvar parser = _interopRequireWildcard(_parser);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/*\nfor our crud events, create corresponding actions\nthe actions fire a 'loading' event, call the underlying api method, and then resolve.\nso you can do ... \n import { folderActions } from '../../api'\n folderActions.index({ module: 'samplernn' })\n folderActions.show(12)\n folderActions.create({ module: 'samplernn', name: 'foo' })\n folderActions.update(12, { module: 'pix2pix' })\n folderActions.destroy(12, { confirm: true })\n folderActions.upload(12, form_data)\n*/\n\nexports.util = util;\nexports.parser = parser;\nvar actions = exports.actions = ['folder', 'file', 'dataset', 'task', 'user'].reduce(function (a, b) {\n return (a[b] = (0, _crud.crud_actions)(b)) && a;\n}, {});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tumblr = exports.thumbnail = exports.loadImage = exports.tag = exports.parse = exports.lookup = exports.integrations = undefined;\n\nvar _nodeFetch = require('node-fetch');\n\nvar _nodeFetch2 = _interopRequireDefault(_nodeFetch);\n\nvar _fetchJsonp = require('fetch-jsonp');\n\nvar _fetchJsonp2 = _interopRequireDefault(_fetchJsonp);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar integrations = exports.integrations = [{\n type: 'image',\n regex: /\\.(jpeg|jpg|gif|png|svg)(\\?.*)?$/i,\n fetch: function fetch(url, done) {\n var img = new Image();\n img.onload = function () {\n if (!img) return;\n var width = img.naturalWidth,\n height = img.naturalHeight;\n img = null;\n done({\n url: url,\n type: \"image\",\n token: \"\",\n thumbnail: \"\",\n title: \"\",\n width: width,\n height: height\n });\n };\n img.src = url;\n if (img.complete) {\n img.onload();\n }\n },\n tag: function tag(media) {\n return '';\n }\n}, {\n type: 'video',\n regex: /\\.(mp4|webm)(\\?.*)?$/i,\n fetch: function fetch(url, done) {\n var video = document.createElement(\"video\");\n var url_parts = url.replace(/\\?.*$/, \"\").split(\"/\");\n var filename = url_parts[url_parts.length - 1];\n video.addEventListener(\"loadedmetadata\", function () {\n var width = video.videoWidth,\n height = video.videoHeight;\n video = null;\n done({\n url: url,\n type: \"video\",\n token: url,\n thumbnail: \"/public/assets/img/video-thumbnail.png\",\n title: filename,\n width: width,\n height: height\n });\n });\n video.src = url;\n video.load();\n },\n tag: function tag(media) {\n return '