uppy
Version:
Almost as cute as a Puppy :dog:
103 lines (90 loc) • 7.4 kB
JavaScript
'use strict';
var _appendChild = require('yo-yoify/lib/appendChild'),
_onload = require('on-load');
var FileList = require('./FileList');
var Tabs = require('./Tabs');
var FileCard = require('./FileCard');
var UploadBtn = require('./UploadBtn');
var _require = require('../../core/Utils'),
isTouchDevice = _require.isTouchDevice,
toArray = _require.toArray;
var _require2 = require('./icons'
// http://dev.edenspiekermann.com/2016/02/11/introducing-accessible-modal-dialog
),
closeIcon = _require2.closeIcon;
module.exports = function Dashboard(props) {
var _uppyDashboardOverlay, _uppyDashboardClose, _uppyDashboardActions, _uppyDashboardFilesContainer, _uppyDashboardContentTitle, _uppyDashboardContentBack, _uppyDashboardContentBar, _uppyDashboardContentPanel, _uppyDashboardProgressindicators, _uppyDashboardInnerWrap, _uppyDashboardInner, _div;
function handleInputChange(ev) {
ev.preventDefault();
var files = toArray(ev.target.files);
files.forEach(function (file) {
props.addFile({
source: props.id,
name: file.name,
type: file.type,
data: file
});
});
}
// @TODO Exprimental, work in progress
// no names, weird API, Chrome-only http://stackoverflow.com/a/22940020
function handlePaste(ev) {
ev.preventDefault();
var files = toArray(ev.clipboardData.items);
files.forEach(function (file) {
if (file.kind !== 'file') return;
var blob = file.getAsFile();
props.log('File pasted');
props.addFile({
source: props.id,
name: file.name,
type: file.type,
data: blob
});
});
}
return _div = document.createElement('div'), _onload(_div, function () {
return props.updateDashboardElWidth();
}, null, 1), _div.setAttribute('aria-hidden', '' + String(props.inline ? 'false' : props.modal.isHidden) + ''), _div.setAttribute('aria-label', '' + String(!props.inline ? props.i18n('dashboardWindowTitle') : props.i18n('dashboardTitle')) + ''), _div.setAttribute('role', 'dialog'), _div.onpaste = handlePaste, _div.setAttribute('class', 'Uppy UppyTheme--default UppyDashboard\n ' + String(isTouchDevice() ? 'Uppy--isTouchDevice' : '') + '\n ' + String(props.semiTransparent ? 'UppyDashboard--semiTransparent' : '') + '\n ' + String(!props.inline ? 'UppyDashboard--modal' : '') + '\n ' + String(props.isWide ? 'UppyDashboard--wide' : '') + ''), _appendChild(_div, [' ', (_uppyDashboardOverlay = document.createElement('div'), _uppyDashboardOverlay.onclick = props.handleClickOutside, _uppyDashboardOverlay.setAttribute('class', 'UppyDashboard-overlay'), _uppyDashboardOverlay), ' ', (_uppyDashboardInner = document.createElement('div'), _uppyDashboardInner.setAttribute('tabindex', '0'), _uppyDashboardInner.setAttribute('style', '\n ' + String(props.inline && props.maxWidth ? 'max-width: ' + props.maxWidth + 'px;' : '') + '\n ' + String(props.inline && props.maxHeight ? 'max-height: ' + props.maxHeight + 'px;' : '') + '\n '), _uppyDashboardInner.setAttribute('class', 'UppyDashboard-inner'), _appendChild(_uppyDashboardInner, [' ', (_uppyDashboardClose = document.createElement('button'), _uppyDashboardClose.setAttribute('type', 'button'), _uppyDashboardClose.setAttribute('aria-label', '' + String(props.i18n('closeModal')) + ''), _uppyDashboardClose.setAttribute('title', '' + String(props.i18n('closeModal')) + ''), _uppyDashboardClose.onclick = props.closeModal, _uppyDashboardClose.setAttribute('class', 'UppyDashboard-close'), _appendChild(_uppyDashboardClose, [closeIcon()]), _uppyDashboardClose), ' ', (_uppyDashboardInnerWrap = document.createElement('div'), _uppyDashboardInnerWrap.setAttribute('class', 'UppyDashboard-innerWrap'), _appendChild(_uppyDashboardInnerWrap, [' ', Tabs({
files: props.files,
handleInputChange: handleInputChange,
acquirers: props.acquirers,
panelSelectorPrefix: props.panelSelectorPrefix,
showPanel: props.showPanel,
i18n: props.i18n
}), ' ', FileCard({
files: props.files,
fileCardFor: props.fileCardFor,
done: props.fileCardDone,
metaFields: props.metaFields,
log: props.log,
i18n: props.i18n
}), ' ', (_uppyDashboardFilesContainer = document.createElement('div'), _uppyDashboardFilesContainer.setAttribute('class', 'UppyDashboard-filesContainer'), _appendChild(_uppyDashboardFilesContainer, [' ', FileList({
acquirers: props.acquirers,
files: props.files,
handleInputChange: handleInputChange,
showFileCard: props.showFileCard,
showProgressDetails: props.showProgressDetails,
totalProgress: props.totalProgress,
totalFileCount: props.totalFileCount,
info: props.info,
note: props.note,
i18n: props.i18n,
log: props.log,
removeFile: props.removeFile,
pauseAll: props.pauseAll,
resumeAll: props.resumeAll,
pauseUpload: props.pauseUpload,
startUpload: props.startUpload,
cancelUpload: props.cancelUpload,
resumableUploads: props.resumableUploads,
isWide: props.isWide
}), ' ', (_uppyDashboardActions = document.createElement('div'), _uppyDashboardActions.setAttribute('class', 'UppyDashboard-actions'), _appendChild(_uppyDashboardActions, [' ', !props.hideUploadButton && !props.autoProceed && props.newFiles.length > 0 ? UploadBtn({
i18n: props.i18n,
startUpload: props.startUpload,
newFileCount: props.newFiles.length
}) : null, ' ']), _uppyDashboardActions), ' ']), _uppyDashboardFilesContainer), ' ', (_uppyDashboardContentPanel = document.createElement('div'), _uppyDashboardContentPanel.setAttribute('role', 'tabpanel'), _uppyDashboardContentPanel.setAttribute('aria-hidden', '' + String(props.activePanel ? 'false' : 'true') + ''), _uppyDashboardContentPanel.setAttribute('class', 'UppyDashboardContent-panel'), _appendChild(_uppyDashboardContentPanel, [' ', (_uppyDashboardContentBar = document.createElement('div'), _uppyDashboardContentBar.setAttribute('class', 'UppyDashboardContent-bar'), _appendChild(_uppyDashboardContentBar, [' ', (_uppyDashboardContentTitle = document.createElement('h2'), _uppyDashboardContentTitle.setAttribute('class', 'UppyDashboardContent-title'), _appendChild(_uppyDashboardContentTitle, [' ', props.i18n('importFrom'), ' ', props.activePanel ? props.activePanel.name : null, ' ']), _uppyDashboardContentTitle), ' ', (_uppyDashboardContentBack = document.createElement('button'), _uppyDashboardContentBack.setAttribute('type', 'button'), _uppyDashboardContentBack.onclick = props.hideAllPanels, _uppyDashboardContentBack.setAttribute('class', 'UppyDashboardContent-back'), _appendChild(_uppyDashboardContentBack, [props.i18n('done')]), _uppyDashboardContentBack), ' ']), _uppyDashboardContentBar), ' ', props.activePanel ? props.activePanel.render(props.state) : '', ' ']), _uppyDashboardContentPanel), ' ', (_uppyDashboardProgressindicators = document.createElement('div'), _uppyDashboardProgressindicators.setAttribute('class', 'UppyDashboard-progressindicators'), _appendChild(_uppyDashboardProgressindicators, [' ', props.progressindicators.map(function (target) {
return target.render(props.state);
}), ' ']), _uppyDashboardProgressindicators), ' ']), _uppyDashboardInnerWrap), ' ']), _uppyDashboardInner), ' ']), _div;
};
//# sourceMappingURL=Dashboard.js.map