@trap_stevo/legendarybuilderproreact-ui
Version:
The legendary UI & utility API that makes your application a legendary application. ~ Created by Steven Compton
1,118 lines (1,115 loc) • 57.4 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
import _regeneratorRuntime from "@babel/runtime/regenerator";
/*
Created by Hassan Steven Compton.
March 7, 2024.
*/
import React from "react";
import { useState, useEffect, useRef } from "react";
import { HUDUniversalHUDUtilityManager, Delay, ContainsBlacklistedCharacters, ConvertNumberToMoneyFormat, ConvertFileSizeToDisplay, ConvertFileToBase64 } from "../HUDManagers/HUDUniversalHUDUtilityManager.js";
import HUDProgressBar from "./HUDProgressBar.js";
import FilePreview from "./FilePreview.js";
import HUDTyper from "./HUDTyper.js";
function FileBucket(fileBucketConfigurationSettings) {
var bucketContainerConfigurationSettings = fileBucketConfigurationSettings.bucketContainerConfigurationSettings,
bucketConfigurationSettings = fileBucketConfigurationSettings.bucketConfigurationSettings,
bucketHeaderDividerConfigurationSettings = fileBucketConfigurationSettings.bucketHeaderDividerConfigurationSettings,
bucketActionTabBarConfigurationSettings = fileBucketConfigurationSettings.bucketActionTabBarConfigurationSettings,
bucketActionBarConfigurationSettings = fileBucketConfigurationSettings.bucketActionBarConfigurationSettings,
bucketMinimizeButtonConfigurationSettings = fileBucketConfigurationSettings.bucketMinimizeButtonConfigurationSettings,
bucketDeleteButtonConfigurationSettings = fileBucketConfigurationSettings.bucketDeleteButtonConfigurationSettings,
bucketCategoryLabelConfigurationSettings = fileBucketConfigurationSettings.bucketCategoryLabelConfigurationSettings,
bucketNameLabelConfigurationSettings = fileBucketConfigurationSettings.bucketNameLabelConfigurationSettings,
fileUploadProgressPercentageLabelConfigurationSettings = fileBucketConfigurationSettings.fileUploadProgressPercentageLabelConfigurationSettings,
fileUploadProgressBarBackgroundConfigurationSettings = fileBucketConfigurationSettings.fileUploadProgressBarBackgroundConfigurationSettings,
fileUploadProgressBarConfigurationSettings = fileBucketConfigurationSettings.fileUploadProgressBarConfigurationSettings,
fileSearchResultLabelConfigurationSettings = fileBucketConfigurationSettings.fileSearchResultLabelConfigurationSettings,
fileSearchInputConfigurationSettings = fileBucketConfigurationSettings.fileSearchInputConfigurationSettings,
fileDescriptionConfigurationSettings = fileBucketConfigurationSettings.fileDescriptionConfigurationSettings,
fileInputConfigurationSettings = fileBucketConfigurationSettings.fileInputConfigurationSettings,
fileListConfigurationSettings = fileBucketConfigurationSettings.fileListConfigurationSettings,
fileItemConfigurationSettings = fileBucketConfigurationSettings.fileItemConfigurationSettings,
deleteButtonConfigurationSettings = fileBucketConfigurationSettings.deleteButtonConfigurationSettings,
uploadButtonConfigurationSettings = fileBucketConfigurationSettings.uploadButtonConfigurationSettings,
previewContainerConfigurationSettings = fileBucketConfigurationSettings.previewContainerConfigurationSettings,
previewConfigurationSettings = fileBucketConfigurationSettings.previewConfigurationSettings,
previewFileInfoConfigurationSettings = fileBucketConfigurationSettings.previewFileInfoConfigurationSettings,
previewFileNameConfigurationSettings = fileBucketConfigurationSettings.previewFileNameConfigurationSettings,
previewUnsupportedFileConfigurationSettings = fileBucketConfigurationSettings.previewUnsupportedFileConfigurationSettings,
previewDownloadLinkConfigurationSettings = fileBucketConfigurationSettings.previewDownloadLinkConfigurationSettings,
setFileBucketHovered = fileBucketConfigurationSettings.setFileBucketHovered,
fileBucketHovered = fileBucketConfigurationSettings.fileBucketHovered,
setUploadingFiles = fileBucketConfigurationSettings.setUploadingFiles,
uploadingFiles = fileBucketConfigurationSettings.uploadingFiles,
setFileBuckets = fileBucketConfigurationSettings.setFileBuckets,
fileBuckets = fileBucketConfigurationSettings.fileBuckets,
signedUser = fileBucketConfigurationSettings.signedUser,
_fileBucketConfigurat = fileBucketConfigurationSettings.dataAccessGateway,
dataAccessGateway = _fileBucketConfigurat === void 0 ? "dataP" : _fileBucketConfigurat,
_fileBucketConfigurat2 = fileBucketConfigurationSettings.dataAccessName,
dataAccessName = _fileBucketConfigurat2 === void 0 ? "data" : _fileBucketConfigurat2,
_fileBucketConfigurat3 = fileBucketConfigurationSettings.dataAccessP,
dataAccessP = _fileBucketConfigurat3 === void 0 ? 8969 : _fileBucketConfigurat3,
_fileBucketConfigurat4 = fileBucketConfigurationSettings.utilizeBuiltInFileExtractor,
utilizeBuiltInFileExtractor = _fileBucketConfigurat4 === void 0 ? true : _fileBucketConfigurat4,
directFileDownloadAction = fileBucketConfigurationSettings.directFileDownloadAction,
deleteBucketAction = fileBucketConfigurationSettings.deleteBucketAction,
deleteFilesAction = fileBucketConfigurationSettings.deleteFilesAction,
uploadFilesAction = fileBucketConfigurationSettings.uploadFilesAction,
getFilesAction = fileBucketConfigurationSettings.getFilesAction,
_fileBucketConfigurat5 = fileBucketConfigurationSettings.clearFilesOnMinimize,
clearFilesOnMinimize = _fileBucketConfigurat5 === void 0 ? false : _fileBucketConfigurat5,
_fileBucketConfigurat6 = fileBucketConfigurationSettings.loadFilesSeparately,
loadFilesSeparately = _fileBucketConfigurat6 === void 0 ? false : _fileBucketConfigurat6,
_fileBucketConfigurat7 = fileBucketConfigurationSettings.loadBucketMinimized,
loadBucketMinimized = _fileBucketConfigurat7 === void 0 ? false : _fileBucketConfigurat7,
_fileBucketConfigurat8 = fileBucketConfigurationSettings.totalFilesSize,
totalFilesSize = _fileBucketConfigurat8 === void 0 ? 0 : _fileBucketConfigurat8,
_fileBucketConfigurat9 = fileBucketConfigurationSettings.totalFiles,
totalFiles = _fileBucketConfigurat9 === void 0 ? 0 : _fileBucketConfigurat9,
currentBucketCategories = fileBucketConfigurationSettings.currentBucketCategories,
_fileBucketConfigurat10 = fileBucketConfigurationSettings.currentFiles,
currentFiles = _fileBucketConfigurat10 === void 0 ? [] : _fileBucketConfigurat10,
currentBucket = fileBucketConfigurationSettings.currentBucket,
_fileBucketConfigurat11 = fileBucketConfigurationSettings.getBucketFilesActionID,
getBucketFilesActionID = _fileBucketConfigurat11 === void 0 ? "getBucketFiles" : _fileBucketConfigurat11,
_fileBucketConfigurat12 = fileBucketConfigurationSettings.bucketType,
bucketType = _fileBucketConfigurat12 === void 0 ? "Storage" : _fileBucketConfigurat12,
_fileBucketConfigurat13 = fileBucketConfigurationSettings.bucketName,
bucketName = _fileBucketConfigurat13 === void 0 ? "" : _fileBucketConfigurat13,
bucketIndex = fileBucketConfigurationSettings.bucketIndex;
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
processingCreateBucketAction = _useState2[0],
setProcessingCreateBucketAction = _useState2[1];
var _useState3 = useState(""),
_useState4 = _slicedToArray(_useState3, 2),
bucketProcessIndicatorTitle = _useState4[0],
setBucketProcessIndicatorTitle = _useState4[1];
var _useState5 = useState(false),
_useState6 = _slicedToArray(_useState5, 2),
bucketCategoryInputFocus = _useState6[0],
setBucketCategoryInputFocus = _useState6[1];
var _useState7 = useState(""),
_useState8 = _slicedToArray(_useState7, 2),
bucketCategoryInputValue = _useState8[0],
setBucketCategoryInputValue = _useState8[1];
var _useState9 = useState(false),
_useState10 = _slicedToArray(_useState9, 2),
bucketNameInputFocus = _useState10[0],
setBucketNameInputFocus = _useState10[1];
var _useState11 = useState(""),
_useState12 = _slicedToArray(_useState11, 2),
bucketNameInputValue = _useState12[0],
setBucketNameInputValue = _useState12[1];
var _useState13 = useState(false),
_useState14 = _slicedToArray(_useState13, 2),
minimizeButtonHover = _useState14[0],
setMinimizeButtonHover = _useState14[1];
var _useState15 = useState(loadBucketMinimized),
_useState16 = _slicedToArray(_useState15, 2),
bucketMinimized = _useState16[0],
setBucketMinimized = _useState16[1];
var _useState17 = useState(false),
_useState18 = _slicedToArray(_useState17, 2),
deleteButtonHover = _useState18[0],
setDeleteButtonHover = _useState18[1];
var _useState19 = useState(false),
_useState20 = _slicedToArray(_useState19, 2),
uploadButtonHover = _useState20[0],
setUploadButtonHover = _useState20[1];
var _useState21 = useState({}),
_useState22 = _slicedToArray(_useState21, 2),
uploadFilesPercentage = _useState22[0],
setUploadFilesPercentage = _useState22[1];
var _useState23 = useState(false),
_useState24 = _slicedToArray(_useState23, 2),
fileSearchInputFocus = _useState24[0],
setFileSearchInputFocus = _useState24[1];
var _useState25 = useState(""),
_useState26 = _slicedToArray(_useState25, 2),
fileSearchInputValue = _useState26[0],
setFileSearchInputValue = _useState26[1];
var _useState27 = useState(0),
_useState28 = _slicedToArray(_useState27, 2),
totalFileSize = _useState28[0],
setTotalFileSize = _useState28[1];
var _useState29 = useState(null),
_useState30 = _slicedToArray(_useState29, 2),
bucketCategoryIndex = _useState30[0],
setBucketCategoryIndex = _useState30[1];
var _useState31 = useState([]),
_useState32 = _slicedToArray(_useState31, 2),
bucketCategories = _useState32[0],
setBucketCategories = _useState32[1];
var _useState33 = useState([]),
_useState34 = _slicedToArray(_useState33, 2),
selectedFiles = _useState34[0],
setSelectedFiles = _useState34[1];
var _useState35 = useState([]),
_useState36 = _slicedToArray(_useState35, 2),
currentBucketFiles = _useState36[0],
setCurrentBucketFiles = _useState36[1];
var _useState37 = useState([]),
_useState38 = _slicedToArray(_useState37, 2),
files = _useState38[0],
setFiles = _useState38[1];
var addFileInputRef = useRef(null);
var handleBucketCategoryInputInFocusUpdate = function handleBucketCategoryInputInFocusUpdate(e) {
setBucketCategoryInputFocus(true);
};
var handleBucketCategoryInputBlurUpdate = function handleBucketCategoryInputBlurUpdate(e) {
setBucketCategoryInputFocus(false);
};
var handleBucketCategoryInputUpdate = function handleBucketCategoryInputUpdate(e) {
if (!ContainsBlacklistedCharacters(e.target.value)) {
setBucketCategories(currentBucketCategories.filter(function (bucketCategory) {
return bucketCategory.includes(e.target.value);
}));
setBucketCategoryInputValue(e.target.value);
}
};
var handleBucketNameInputInFocusUpdate = function handleBucketNameInputInFocusUpdate(e) {
setBucketNameInputFocus(true);
};
var handleBucketNameInputBlurUpdate = function handleBucketNameInputBlurUpdate(e) {
setBucketNameInputFocus(false);
};
var handleBucketNameInputUpdate = function handleBucketNameInputUpdate(e) {
if (!ContainsBlacklistedCharacters(e.target.value, " ")) {
setBucketNameInputValue(e.target.value);
}
};
var handleFileSearchInputInFocusUpdate = function handleFileSearchInputInFocusUpdate(e) {
e.preventDefault();
setFileSearchInputFocus(true);
return;
};
var handleFileSearchInputBlurUpdate = function handleFileSearchInputBlurUpdate(e) {
e.preventDefault();
setFileSearchInputFocus(false);
return;
};
var handleAddedFileSearchInputUpdate = function handleAddedFileSearchInputUpdate(e) {
e.preventDefault();
var inputValue = e.target.value;
setFileSearchInputValue(inputValue);
setCurrentBucketFiles(selectedFiles.filter(function (file) {
return file.name.includes(inputValue);
}));
return;
};
var handleFileSearchInputUpdate = function handleFileSearchInputUpdate(e) {
e.preventDefault();
var inputValue = e.target.value;
setFileSearchInputValue(inputValue);
setCurrentBucketFiles(files.filter(function (file) {
return file.name.includes(inputValue) || file.dateCreated.includes(inputValue);
}));
return;
};
var handleBucketFiles = function handleBucketFiles() {
if (!loadFilesSeparately && files.length > 0) {
return;
}
if (getFilesAction) {
getFilesAction(currentBucket);
}
if (!utilizeBuiltInFileExtractor) {
return;
}
var hudDataNetworkAccess = HUDUniversalHUDUtilityManager.GetHUDNetworkAccess(dataAccessP, dataAccessName, dataAccessGateway, function () {
var hudDataNetworkGetBucketFilesUpdate = setTimeout(function () {
var hudNetworkGetBucketFilesAction = {
userID: signedUser.userID,
username: signedUser.username,
access: signedUser.accessLevel,
action: getBucketFilesActionID,
sentData: currentBucket
};
HUDUniversalHUDUtilityManager.SendDataThroughHUDNetwork(hudDataNetworkAccess, hudNetworkGetBucketFilesAction);
return;
}, 100);
return function () {
return clearInterval(hudDataNetworkGetBucketFilesUpdate);
};
});
hudDataNetworkAccess.onmessage = function (event) {
var dataEventData = JSON.parse(event.data);
var eventReceivers = {
"gotBucketFiles": function gotBucketFiles() {
if (dataEventData.data === null || dataEventData.data.length <= 0) {
return;
}
var bucketFiles = [].concat(_toConsumableArray(selectedFiles), _toConsumableArray(dataEventData.data));
bucketFiles.reverse();
setCurrentBucketFiles(bucketFiles);
setFiles(bucketFiles);
return function () {};
}
};
if (eventReceivers[dataEventData.type]) {
eventReceivers[dataEventData.type]();
}
};
return function () {
hudDataNetworkAccess.close();
};
};
var addFiles = /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {
var timer;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
setBucketProcessIndicatorTitle(event.target.files.length > 1 ? "Adding files..." : event.target.files.length === 1 ? "Adding file..." : "");
_context.next = 3;
return processFiles(event.target.files);
case 3:
setBucketProcessIndicatorTitle(event.target.files.length > 1 ? "Added files!" : event.target.files.length === 1 ? "Added file!" : "");
clearFileInput();
timer = setTimeout(function () {
setBucketProcessIndicatorTitle("");
}, 1269);
return _context.abrupt("return", function () {
clearInterval(timer);
});
case 7:
case "end":
return _context.stop();
}
}, _callee);
}));
return function addFiles(_x) {
return _ref.apply(this, arguments);
};
}();
var processFiles = function processFiles(files) {
return new Promise(function (resolve, reject) {
var fileReaders = [];
var fileList = [];
Array.from(files).forEach(function (file) {
var reader = new FileReader();
reader.onload = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(e) {
var base64String;
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return ConvertFileToBase64(file);
case 2:
base64String = _context2.sent;
if (!(base64String === null)) {
_context2.next = 5;
break;
}
return _context2.abrupt("return");
case 5:
fileList.push({
id: Date.now() + "_" + file.name,
name: file.name,
data: base64String,
status: "Added",
size: file.size,
type: file.type
});
setTotalFileSize(totalFileSize + file.size);
if (fileList.length === files.length) {
setCurrentBucketFiles(function (prevFiles) {
return [].concat(fileList, _toConsumableArray(prevFiles));
});
setSelectedFiles(function (prevFiles) {
return [].concat(fileList, _toConsumableArray(prevFiles));
});
setFiles(function (prevFiles) {
return [].concat(fileList, _toConsumableArray(prevFiles));
});
resolve(true);
}
case 8:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function (_x2) {
return _ref2.apply(this, arguments);
};
}();
fileReaders.push(reader);
reader.readAsArrayBuffer(file);
});
return;
});
};
var clearFileInput = function clearFileInput() {
var addFileInput = addFileInputRef.current;
if (addFileInput) {
addFileInput.value = "";
return;
}
return;
};
var deleteBucket = function deleteBucket(iD, fileBucketID, fileBucketCategory) {
fileBuckets[bucketIndex] = null;
var currentFileBuckets = fileBuckets.filter(function (fileBucket) {
return fileBucket !== null;
});
setFileBuckets(currentFileBuckets);
if (deleteBucketAction !== undefined) {
deleteBucketAction(iD, fileBucketID, fileBucketCategory);
return;
}
return;
};
var deleteFile = function deleteFile(id, fileStatus, fileBucketID, fileBucketCategory) {
var currentFile = files.filter(function (file) {
return file.id === id;
});
setCurrentBucketFiles(function (prevFiles) {
return prevFiles.filter(function (file) {
return file.id !== id;
});
});
setSelectedFiles(function (prevFiles) {
return prevFiles.filter(function (file) {
return file.id !== id;
});
});
setFiles(function (prevFiles) {
return prevFiles.filter(function (file) {
return file.id !== id;
});
});
if (currentFile && currentFile[0]) {
var currentBucketSize = totalFileSize - parseInt(currentFile[0].size);
setTotalFileSize(currentBucketSize > 0 ? currentBucketSize : 0);
}
if (fileStatus.trim() === "Uploaded" && deleteFilesAction !== undefined) {
deleteFilesAction(id, fileBucketID, fileBucketCategory);
return;
}
return;
};
var styles = {
bucketContainer: _objectSpread({
position: "relative",
display: "flex",
flexDirection: "column",
boxShadow: "-3px -3px 1px 1px rgba(0, 0, 0, 0.69)",
height: bucketMinimized ? "23.69rem" : "auto",
width: "auto"
}, bucketContainerConfigurationSettings),
bucketActionTabBar: _objectSpread({
position: "relative",
display: "flex",
marginBottom: "1rem"
}, bucketActionTabBarConfigurationSettings),
bucketActionBar: _objectSpread({
position: "relative",
display: "flex",
marginBottom: "1rem"
}, bucketActionBarConfigurationSettings),
bucketDeleteButton: _objectSpread({
cursor: "pointer",
borderRadius: "0.569rem",
background: deleteButtonHover ? "#cc0e00" : "#dc3545",
transition: "scale 0.369s ease, background 0.69s ease-in",
scale: deleteButtonHover ? "1.169" : "1",
fontSize: "0.869rem",
color: "white",
border: 'none',
width: "auto",
padding: "0.569rem 1rem"
}, bucketDeleteButtonConfigurationSettings),
bucketCategoryLabel: _objectSpread({
position: "relative",
display: "flex",
fontWeight: "469",
fontFamily: "GR",
fontStyle: "italic",
fontSize: "0.969rem",
marginBottom: "1.69rem"
}, bucketCategoryLabelConfigurationSettings),
bucketNameLabel: _objectSpread({
position: "relative",
display: "flex",
fontWeight: "869",
fontFamily: "ModeNine",
fontSize: "1.69rem",
marginBottom: "1rem"
}, bucketNameLabelConfigurationSettings),
bucket: _objectSpread({
padding: "1.269rem",
boxShadow: files.length <= 0 ? "inset 0 0 7px rgba(0, 0, 0, 0.269)" : "0 0 10px rgba(0, 0, 0, 0.269)",
border: files.length <= 0 ? "0.269rem dashed #1a1313" : "0.269rem dashed #cc0e00",
transition: "background 0.869s ease-in",
background: deleteButtonHover ? "#dc3545" : files.length > 0 ? "transparent" : "rgba(47, 47, 47, 0.169)",
borderRadius: "0.569rem",
marginBottom: "1rem",
marginTop: "1.269rem"
}, bucketConfigurationSettings),
fileInput: _objectSpread({
marginBottom: "0.69rem",
marginTop: "1rem",
border: "none"
}, fileInputConfigurationSettings),
fileList: _objectSpread({
listStyleType: "none",
height: files.length <= 0 ? "5rem" : files.length === 1 ? "27rem" : files.length > 1 ? "37rem" : "auto",
overflowY: "auto",
padding: 0
}, fileListConfigurationSettings),
fileItem: _objectSpread({
marginBottom: "0.569rem",
padding: "1rem",
transition: "background 0.869s ease-in",
background: "#f8f9fa",
borderRadius: "0.569rem",
display: "flex",
justifyContent: "flex-end",
alignItems: "center"
}, fileItemConfigurationSettings),
minimizeButton: _objectSpread({
position: "relative",
userSelect: "none",
cursor: "pointer",
transition: "scale 0.269s ease-in, background 0.469s ease-in",
scale: minimizeButtonHover ? "1.169" : "1",
background: minimizeButtonHover ? "rgba(187.69, 187.69, 187.69, 1)" : "transparent",
color: "white",
border: 'none',
borderRadius: "0.569rem",
padding: "0.569rem 1rem"
}, bucketMinimizeButtonConfigurationSettings),
deleteButton: _objectSpread({
position: "relative",
cursor: "pointer",
background: "#dc3545",
color: "white",
border: 'none',
borderRadius: "0.569rem",
padding: "0.569rem 1rem",
marginLeft: "2.69rem"
}, deleteButtonConfigurationSettings),
uploadButton: _objectSpread({
cursor: "pointer",
transition: "background 1.269s ease, scale 0.869s ease",
background: uploadButtonHover ? "#99c40a" : "#1a1313",
scale: uploadButtonHover ? "1.169" : "1",
pointerEvents: uploadingFiles === bucketIndex ? "none" : null,
color: "white",
border: 'none',
borderRadius: "0.569rem",
padding: "0.569rem 1rem",
marginLeft: "0rem",
marginTop: "1rem"
}, uploadButtonConfigurationSettings)
};
useEffect(function () {
if (files.length <= 0 && currentFiles.length > 0) {
setBucketProcessIndicatorTitle(currentFiles.length > 1 ? "Loading files..." : currentFiles.length === 1 ? "Loading file..." : "");
setCurrentBucketFiles(_toConsumableArray(currentFiles));
setFiles(_toConsumableArray(currentFiles));
files.reverse();
var fileSize = 0;
currentFiles.map( /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(currentFile, index) {
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
fileSize += parseInt(currentFile.size);
if (!(index === currentFiles.length - 1)) {
_context3.next = 7;
break;
}
setTotalFileSize(fileSize);
setBucketProcessIndicatorTitle(currentFiles.length > 1 ? "Loaded files!" : currentFiles.length === 1 ? "Loaded file!" : "");
_context3.next = 6;
return Delay(1269);
case 6:
setBucketProcessIndicatorTitle("");
case 7:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function (_x3, _x4) {
return _ref3.apply(this, arguments);
};
}());
}
}, [currentFiles]);
useEffect(function () {
if (currentBucketCategories !== undefined) {
setBucketCategories(currentBucketCategories);
}
}, []);
return /*#__PURE__*/React.createElement("div", {
style: styles.bucketContainer,
onMouseLeave: function onMouseLeave() {
setFileBucketHovered(null);
return;
},
onMouseEnter: function onMouseEnter() {
setFileBucketHovered(bucketIndex);
return;
}
}, bucketType === "Storage" ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
style: styles.bucketActionBar
}, /*#__PURE__*/React.createElement("div", {
style: styles.bucketDeleteButton,
onMouseLeave: function onMouseLeave() {
setDeleteButtonHover(false);
return;
},
onMouseEnter: function onMouseEnter() {
setDeleteButtonHover(true);
return;
},
onClick: function onClick() {
deleteBucket(fileBuckets[bucketIndex].iD, fileBuckets[bucketIndex].fileBucketID, fileBuckets[bucketIndex].fileBucketCategory);
return;
}
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, "Delete"))), /*#__PURE__*/React.createElement("label", {
style: styles.bucketNameLabel
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, bucketName)), /*#__PURE__*/React.createElement("label", {
style: styles.bucketCategoryLabel
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, "Category | ".concat(currentBucket.fileBucketCategory))), /*#__PURE__*/React.createElement("div", {
style: styles.bucketActionBar
}, /*#__PURE__*/React.createElement("div", {
style: _objectSpread(_objectSpread({}, styles.bucketActionBar), {}, {
justifyContent: "flex-start",
width: "calc(87.69%)",
marginBottom: "0rem"
})
}), /*#__PURE__*/React.createElement("div", {
style: {
display: "flex",
flexDirection: "column"
}
}, /*#__PURE__*/React.createElement("div", {
style: styles.minimizeButton,
onMouseLeave: function onMouseLeave() {
setMinimizeButtonHover(false);
return;
},
onMouseEnter: function onMouseEnter() {
setMinimizeButtonHover(true);
return;
},
onClick: function onClick() {
setBucketMinimized(!bucketMinimized);
if (bucketMinimized === true) {
handleBucketFiles();
return;
}
if (clearFilesOnMinimize) {
setCurrentBucketFiles(_toConsumableArray(selectedFiles));
setFiles(_toConsumableArray(selectedFiles));
return;
}
return;
}
}, /*#__PURE__*/React.createElement("svg", {
width: "15",
height: "15",
viewBox: "0 0 24 24",
fill: "white"
}, /*#__PURE__*/React.createElement("path", {
d: bucketMinimized ? "M6 15l6-6 6 6" : "M6 15l6 6 6-6",
fill: "none",
stroke: "black",
"stroke-width": "2",
"stroke-linecap": "round",
"stroke-linejoin": "round"
}))), minimizeButtonHover ? /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "GR",
fontSize: "0.869rem",
color: "rgba(0, 0, 0, 0.269)",
marginTop: "0.69rem"
}
}, bucketMinimized ? "Maximize" : "Collapse") : /*#__PURE__*/React.createElement(React.Fragment, null))), /*#__PURE__*/React.createElement("div", {
style: _objectSpread({
position: "relative",
display: "flex",
background: "rgba(69, 69, 69, 0.269)",
borderRadius: "1rem",
height: "0.069rem",
width: "calc(100%)",
marginBottom: "1.69rem",
marginTop: "0.269rem"
}, bucketHeaderDividerConfigurationSettings)
}), /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "GR",
fontSize: "1.169rem",
color: "rgba(0, 0, 0, 0.69)",
marginBottom: "0.69rem"
}
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, "Files | ".concat(ConvertNumberToMoneyFormat(files.length > 0 ? files.length : totalFiles)))), /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "ModeNine",
color: "rgba(0, 0, 0, 0.69)"
}
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, "Size | ".concat(ConvertFileSizeToDisplay(totalFileSize > 0 ? totalFileSize : totalFilesSize)))), /*#__PURE__*/React.createElement("input", {
ref: addFileInputRef,
type: "file",
multiple: true,
onChange: addFiles,
style: styles.fileInput
}), /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "GR",
color: "rgba(0, 0, 0, 0.69)"
}
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, bucketProcessIndicatorTitle)), selectedFiles.length > 0 ? /*#__PURE__*/React.createElement("div", {
style: styles.bucketActionTabBar
}, /*#__PURE__*/React.createElement("div", {
style: styles.uploadButton,
onMouseLeave: function onMouseLeave() {
setUploadButtonHover(false);
return;
},
onMouseEnter: function onMouseEnter() {
setUploadButtonHover(true);
return;
},
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
setUploadingFiles(bucketIndex);
if (!(uploadFilesAction !== undefined)) {
_context5.next = 6;
break;
}
_context5.next = 4;
return uploadFilesAction(selectedFiles, bucketIndex, null, currentBucket, /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(uploadProgress, fileID, fileIndex) {
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
setUploadFilesPercentage(function (prevProgress) {
return _objectSpread(_objectSpread({}, prevProgress), {}, _defineProperty({}, fileID, uploadProgress));
});
selectedFiles[fileIndex].uploadProgress = uploadProgress;
if (!(uploadProgress >= 100)) {
_context4.next = 8;
break;
}
_context4.next = 5;
return Delay(869);
case 5:
delete uploadFilesPercentage[fileID];
setUploadFilesPercentage(uploadFilesPercentage);
delete selectedFiles[fileIndex].uploadProgress;
case 8:
return _context4.abrupt("return");
case 9:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return function (_x5, _x6, _x7) {
return _ref5.apply(this, arguments);
};
}(), function (updatedFiles) {
if (updatedFiles === null || updatedFiles === undefined || updatedFiles.length <= 0 || updatedFiles[0] === null) {
return;
}
var timer = setTimeout(function () {
setSelectedFiles([]);
var inFiles = new Set(updatedFiles.map(function (file) {
return file.id;
}));
setCurrentBucketFiles([].concat(_toConsumableArray(updatedFiles), _toConsumableArray(files.filter(function (file) {
return !inFiles.has(file.id);
}))));
setFiles([].concat(_toConsumableArray(updatedFiles), _toConsumableArray(files.filter(function (file) {
return !inFiles.has(file.id);
}))));
}, 369);
return function () {
clearInterval(timer);
};
});
case 4:
clearFileInput();
return _context5.abrupt("return");
case 6:
return _context5.abrupt("return");
case 7:
case "end":
return _context5.stop();
}
}, _callee5);
}))
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, uploadingFiles === bucketIndex ? "Uploading..." : "Upload"))) : /*#__PURE__*/React.createElement(React.Fragment, null), bucketMinimized === false && files.length > 0 ? /*#__PURE__*/React.createElement("input", {
type: "text",
placeholder: "Search for file...",
onFocus: handleFileSearchInputInFocusUpdate,
onBlur: handleFileSearchInputBlurUpdate,
onChange: handleFileSearchInputUpdate,
value: fileSearchInputValue,
style: _objectSpread({
position: "relative",
background: "rgba(217, 217, 217, 0.25)",
borderRadius: "1rem",
border: "1px black solid",
outline: "none",
boxShadow: fileSearchInputFocus ? "5px 5px 5px -4.69px rgba(0, 0, 0, 0.469)" : "none",
scale: fileSearchInputFocus ? "1.069" : "1",
transition: "scale 0.269s ease-in-out, box-shadow 0.369s ease-in-out, margin-left 0.269s ease-in-out",
width: "87.69%",
height: "1.69rem",
fontSize: "1.169rem",
paddingLeft: "0.69rem",
marginBottom: "1rem",
marginRight: "0.269rem",
marginLeft: fileSearchInputValue.trim() !== "" && currentFiles.length <= 0 ? "0rem" : fileSearchInputFocus ? "2rem" : "0rem"
}, fileSearchInputConfigurationSettings)
}) : /*#__PURE__*/React.createElement(React.Fragment, null), !bucketMinimized && selectedFiles.length > 0 ? /*#__PURE__*/React.createElement("div", {
style: styles.bucket
}, /*#__PURE__*/React.createElement("ul", {
style: styles.fileList
}, files.map(function (file) {
return /*#__PURE__*/React.createElement("li", {
key: file.id,
style: _objectSpread(_objectSpread({}, styles.fileItem), {}, {
background: uploadingFiles === bucketIndex && selectedFiles.some(function (selectedFile) {
return selectedFile.id === file.id;
}) ? "rgba(144, 238, 144, 0.869)" : "#f8f9fa"
})
}, /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
flexDirection: "column"
}
}, /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
flexDirection: "row"
}
}, /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex"
}
}, file.name), uploadingFiles === bucketIndex && selectedFiles.some(function (selectedFile) {
return selectedFile.id === file.id;
}) === true ? /*#__PURE__*/React.createElement(React.Fragment, null) : /*#__PURE__*/React.createElement("div", {
style: styles.deleteButton,
onClick: function onClick() {
return deleteFile(file.id, file.status, currentBucket.fileBucketID, currentBucket.fileBucketCategory);
}
}, "Delete")), /*#__PURE__*/React.createElement("div", {
style: _objectSpread({
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "ModeNine",
color: "rgba(0, 0, 0, 0.569)",
marginTop: "0.469rem"
}, fileDescriptionConfigurationSettings)
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, uploadingFiles === bucketIndex && selectedFiles.some(function (selectedFile) {
return selectedFile.id === file.id;
}) === true ? "Uploading... ".concat(ConvertFileSizeToDisplay(file.size)) : "".concat(file.status, " | ").concat(ConvertFileSizeToDisplay(file.size), " | ").concat(file.dateCreated ? file.dateCreated : GRUniversalHUDUtilityManager.ConvertUTCDateToDateDisplay(Date.now(), true)))), uploadFilesPercentage && uploadFilesPercentage[file.id] !== undefined && uploadFilesPercentage[file.id] !== null ? /*#__PURE__*/React.createElement(HUDProgressBar, {
progressPercentageLabelConfigurationSettings: fileUploadProgressPercentageLabelConfigurationSettings,
progressBarBackgroundConfigurationSettings: fileUploadProgressBarBackgroundConfigurationSettings,
progressBarConfigurationSettings: fileUploadProgressBarConfigurationSettings,
currentPercentage: uploadFilesPercentage[file.id]
}) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement(FilePreview, {
previewContainerConfigurationSettings: previewContainerConfigurationSettings,
previewConfigurationSettings: previewConfigurationSettings,
fileInfoConfigurationSettings: previewFileInfoConfigurationSettings,
fileNameConfigurationSettings: previewFileNameConfigurationSettings,
unsupportedFileConfigurationSettings: previewUnsupportedFileConfigurationSettings,
downloadLinkConfigurationSettings: previewDownloadLinkConfigurationSettings,
directDownloadAction: directFileDownloadAction,
bucket: currentBucket,
file: file
})));
}))) : !bucketMinimized && currentBucketFiles.length > 0 ? /*#__PURE__*/React.createElement("div", {
style: styles.bucket
}, /*#__PURE__*/React.createElement("ul", {
style: styles.fileList
}, currentBucketFiles.map(function (file) {
return /*#__PURE__*/React.createElement("li", {
key: file.id,
style: _objectSpread(_objectSpread({}, styles.fileItem), {}, {
background: uploadingFiles === bucketIndex && selectedFiles.some(function (selectedFile) {
return selectedFile.id === file.id;
}) ? "rgba(144, 238, 144, 0.869)" : "#f8f9fa"
})
}, /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
flexDirection: "column"
}
}, /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
flexDirection: "row"
}
}, /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex"
}
}, file.name), uploadingFiles === bucketIndex && selectedFiles.some(function (selectedFile) {
return selectedFile.id === file.id;
}) === true ? /*#__PURE__*/React.createElement(React.Fragment, null) : /*#__PURE__*/React.createElement("div", {
style: styles.deleteButton,
onClick: function onClick() {
return deleteFile(file.id, file.status, currentBucket.fileBucketID, currentBucket.fileBucketCategory);
}
}, "Delete")), /*#__PURE__*/React.createElement("div", {
style: _objectSpread({
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "ModeNine",
color: "rgba(0, 0, 0, 0.569)",
marginTop: "0.469rem"
}, fileDescriptionConfigurationSettings)
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, uploadingFiles === bucketIndex && selectedFiles.some(function (selectedFile) {
return selectedFile.id === file.id;
}) === true ? "Uploading... ".concat(ConvertFileSizeToDisplay(file.size)) : "".concat(file.status, " | ").concat(ConvertFileSizeToDisplay(file.size), " | ").concat(file.dateCreated ? file.dateCreated : GRUniversalHUDUtilityManager.ConvertUTCDateToDateDisplay(Date.now(), true)))), uploadFilesPercentage && uploadFilesPercentage[file.id] !== undefined && uploadFilesPercentage[file.id] !== null ? /*#__PURE__*/React.createElement(HUDProgressBar, {
progressPercentageLabelConfigurationSettings: fileUploadProgressPercentageLabelConfigurationSettings,
progressBarBackgroundConfigurationSettings: fileUploadProgressBarBackgroundConfigurationSettings,
progressBarConfigurationSettings: fileUploadProgressBarConfigurationSettings,
currentPercentage: uploadFilesPercentage[file.id]
}) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement(FilePreview, {
previewContainerConfigurationSettings: previewContainerConfigurationSettings,
previewConfigurationSettings: previewConfigurationSettings,
fileInfoConfigurationSettings: previewFileInfoConfigurationSettings,
fileNameConfigurationSettings: previewFileNameConfigurationSettings,
unsupportedFileConfigurationSettings: previewUnsupportedFileConfigurationSettings,
downloadLinkConfigurationSettings: previewDownloadLinkConfigurationSettings,
directDownloadAction: directFileDownloadAction,
bucket: currentBucket,
file: file
})));
}))) : fileSearchInputValue.trim() !== "" && currentBucketFiles.length <= 0 ? /*#__PURE__*/React.createElement("div", {
style: styles.bucket
}, /*#__PURE__*/React.createElement("div", {
style: _objectSpread({
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "GR",
fontSize: "1.269rem",
color: "rgba(0, 0, 0, 1)",
marginTop: "0.469rem"
}, fileSearchResultLabelConfigurationSettings)
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, "No files match your search."))) : /*#__PURE__*/React.createElement(React.Fragment, null)) : /*#__PURE__*/React.createElement(React.Fragment, null, bucketCategoryInputValue.trim() !== "" && bucketCategories.length > 0 ? /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
flexDirection: "row"
}
}, bucketCategories.map(function (bucketCategory, index) {
return /*#__PURE__*/React.createElement("div", {
className: "invisa-scroller",
key: bucketCategory,
style: {
position: "relative",
display: "flex",
flexDirection: "row",
overflowX: "auto",
transition: "scale 0.69s ease",
scale: bucketCategoryIndex === index ? "1.0269" : "1",
cursor: "pointer",
height: "1.169rem",
marginBottom: "1rem"
},
onMouseLeave: function onMouseLeave() {
setBucketCategoryIndex(null);
return;
},
onMouseEnter: function onMouseEnter() {
setBucketCategoryIndex(index);
return;
},
onClick: function onClick() {
setBucketCategoryInputValue(bucketCategory);
return;
}
}, /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
transition: "background 0.69s ease",
background: bucketCategoryIndex === index ? "rgba(27, 27, 27, 0.69)" : "rgba(169, 169, 169, 0.69)",
height: "calc(100%)",
width: "0.069rem",
marginLeft: "0.269rem"
}
}), /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "GR",
transition: "color 0.69s ease",
color: bucketCategoryIndex === index ? "rgba(27, 27, 27, 0.69)" : "rgba(169, 169, 169, 0.69)",
userSelect: "none",
marginRight: "0.369rem",
marginLeft: "0.369rem"
}
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, bucketCategory)), /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
transition: "background 0.69s ease",
background: bucketCategoryIndex === index ? "rgba(27, 27, 27, 0.69)" : "rgba(169, 169, 169, 0.69)",
height: "calc(100%)",
width: "0.069rem",
marginRight: "0.269rem"
}
}));
})) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement("input", {
type: "text",
placeholder: "Bucket Category...",
onFocus: handleBucketCategoryInputInFocusUpdate,
onBlur: handleBucketCategoryInputBlurUpdate,
onChange: handleBucketCategoryInputUpdate,
value: bucketCategoryInputValue,
style: {
background: "rgba(217, 217, 217, 0.25)",
borderRadius: "1rem",
border: processingCreateBucketAction ? "0px black solid" : "1px black solid",
outline: "none",
boxShadow: bucketCategoryInputFocus ? "5px 5px 5px -4.69px rgba(0, 0, 0, 0.469)" : "none",
scale: bucketCategoryInputFocus ? "1.169" : "1",
transition: "scale 0.269s ease-in-out, box-shadow 0.369s ease-in-out",
pointerEvents: processingCreateBucketAction ? "none" : null,
width: "77.69%",
height: processingCreateBucketAction ? "0rem" : "2rem",
fontSize: "1.269rem",
paddingLeft: "0.69rem",
marginLeft: "1rem"
}
}), /*#__PURE__*/React.createElement("input", {
type: "text",
placeholder: "Bucket Name...",
onFocus: handleBucketNameInputInFocusUpdate,
onBlur: handleBucketNameInputBlurUpdate,
onChange: handleBucketNameInputUpdate,
value: bucketNameInputValue,
style: {
background: "rgba(217, 217, 217, 0.25)",
borderRadius: "1rem",
border: processingCreateBucketAction ? "0px black solid" : "1px black solid",
outline: "none",
boxShadow: bucketCategoryInputFocus ? "5px 5px 5px -4.69px rgba(0, 0, 0, 0.469)" : "none",
scale: bucketCategoryInputFocus ? "1.169" : "1",
transition: "scale 0.269s ease-in-out, box-shadow 0.369s ease-in-out",
pointerEvents: processingCreateBucketAction ? "none" : null,
width: "77.69%",
height: processingCreateBucketAction ? "0rem" : "2rem",
fontSize: "1.269rem",
paddingLeft: "0.69rem",
marginLeft: "1rem",
marginTop: "1rem"
}
}), /*#__PURE__*/React.createElement("input", {
ref: addFileInputRef,
type: "file",
multiple: true,
onChange: addFiles,
style: styles.fileInput
}), /*#__PURE__*/React.createElement("div", {
style: {
position: "relative",
display: "flex",
fontWeight: "569",
fontFamily: "GR",
color: "rgba(0, 0, 0, 0.69)"
}
}, /*#__PURE__*/React.createElement(HUDTyper, {
speed: 1
}, bucketProcessIndicatorTitle)), bucketCategoryInputValue.trim() !== "" && bucketNameInputValue.trim() !== "" && selectedFiles.length > 0 ? /*#__PURE__*/React.createElement("div", {
style: styles.bucketActionTabBar
}, /*#__PURE__*/React.createElement("div", {
style: styles.uploadButton,
onMouseLeave: function onMouseLeave() {
setUploadButtonHover(false);
return;
},
onMouseEnter: function onMouseEnter() {
setUploadButtonHover(true);
return;
},
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
var addedFiles, createdBucket;
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
while (1) switch (_context7.prev = _context7.next) {
case 0:
setUploadingFiles(bucketIndex);
if (!(uploadFilesAction !== undefined)) {
_context7.next = 9;
break;
}
addedFiles = selectedFiles;
createdBucket = {
fileBucketCategory: bucketCategoryInputValue.trim(),
fileBucketName: bucketNameInputValue.trim(),
fileBucketID: bucketNameInputValue.trim().replace(/\s/g, "") + "_" + +HUDUniversalHUDUtilityManager.GenerateUTCDateDouble()
};
_context7.next = 6;
return uploadFilesAction(addedFiles, bucketIndex, createdBucket, currentBucket, /*#__PURE__*/function () {
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(uploadProgress, fileID, fileIndex) {
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
setUploadFilesPercentage(function (prevProgress) {
return _objectSpread(_objectSpread({}, prevProgress), {}, _defineProperty({},