UNPKG

@trap_stevo/legendarybuilderproreact-ui

Version:

The legendary UI & utility API that makes your application a legendary application. ~ Created by Steven Compton

885 lines 43.5 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _extends from "@babel/runtime/helpers/extends"; import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; 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"; import * as React from "react"; import { useState, useEffect } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { ConvertFileSizeToDisplay, ConvertPathsToArchiveTree, DownloadFileFromURL, ExtractZipContents } from "../HUDManagers/HUDUniversalHUDUtilityManager.js"; import { DetermineFileType } from "../HUDManagers/HUDUniversalDataUtilitiesManager.js"; import HUDArchiveTree from "./HUDArchiveTree.js"; import HUDTyper from "./HUDTyper.js"; import HUDIcon from "./HUDIcon.js"; var style = { container: { position: "relative", display: "flex", flexDirection: "column", overflow: "hidden", border: "1px solid rgba(0, 0, 0, 0.05)", borderRadius: "1rem", boxShadow: "0 12px 24px rgba(0, 0, 0, 0.06)", background: "#ffffff", width: "100%", padding: "0.169rem", paddingBottom: "0.169rem", paddingTop: "4.69rem", marginBottom: "1.5rem", marginTop: "1.5rem" }, header: { position: "absolute", display: "flex", justifyContent: "space-between", alignItems: "center", borderBottom: "1px solid rgba(0, 0, 0, 0.05)", background: "#f9f9f9", minWidth: 0, zIndex: 269, padding: "16px 24px", right: 0, left: 0, top: 0 }, headerLeft: { display: "flex", flexBasis: "1%", flexShrink: 1, flexGrow: 1, alignItems: "center", minWidth: 0, gap: "12px" }, fileInfo: { display: "flex", flexDirection: "column", flexShrink: 1, flexGrow: 1, maxWidth: "100%", minWidth: 0 }, fileName: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", lineHeight: "1.4", fontWeight: "600", fontSize: "15.5px", maxWidth: "100%", minWidth: 0 }, fileSize: { fontSize: "13px", color: "#888888", marginTop: "2px" }, actions: { display: "flex", flexShrink: 0, flexGrow: 0, alignItems: "center", gap: "12px" }, iconButton: { display: "flex", justifyContent: "center", alignItems: "center", cursor: "pointer", border: "none", borderRadius: "8px", background: "transparent", padding: "6px" }, iconCopied: { fontSize: "12px", color: "#00b3ff", marginLeft: "4px" }, download: { cursor: "pointer", display: "flex", justifyContent: "center", alignItems: "center", border: "1px solid rgba(0, 179, 255, 0.269)", borderRadius: "12px", boxShadow: "0 4px 12px rgba(0, 179, 255, 0.169)", background: "#e8f9ff", padding: "10px 14px" }, preview: { display: "flex", alignItems: "center", border: "none", borderRadius: "0rem 0rem 1rem 1rem", background: "#fdfdfd", height: "637px", width: "100%" }, loading: { textAlign: "center", fontStyle: "italic", color: "#999", padding: "2rem" }, text: { wrapper: { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", boxSizing: "border-box", height: "100%", padding: "20px" }, content: { display: "flex", flexDirection: "column", textAlign: "center", fontFamily: "Arial, sans-serif", fontSize: "1.1rem", color: "#333" } }, unsupported: { textAlign: "center", fontStyle: "italic", color: "rgba(255, 69, 69, 0.869)", width: "calc(100%)", marginBottom: "1.69rem", marginTop: "1.69rem" }, footer: { position: "absolute", display: "flex", justifyContent: "center", alignItems: "center", borderTop: "1px solid rgba(0, 0, 0, 0.0569)", background: "#fafafa", width: "100%", zIndex: 269, padding: "12px 20px", bottom: 0, right: 0, left: 0 } }; function HUDFilePreview(_ref) { var _ref$applicationDocum = _ref.applicationDocumentPreviewAnimationTransitionConfigurationSettings, applicationDocumentPreviewAnimationTransitionConfigurationSettings = _ref$applicationDocum === void 0 ? {} : _ref$applicationDocum, _ref$applicationDocum2 = _ref.applicationDocumentPreviewInitialAnimationConfigurationSettings, applicationDocumentPreviewInitialAnimationConfigurationSettings = _ref$applicationDocum2 === void 0 ? {} : _ref$applicationDocum2, _ref$copyFilePreviewU = _ref.copyFilePreviewURLButtonAnimationVariantsConfigurationSettings, copyFilePreviewURLButtonAnimationVariantsConfigurationSettings = _ref$copyFilePreviewU === void 0 ? {} : _ref$copyFilePreviewU, _ref$filePreviewDelet = _ref.filePreviewDeleteButtonAnimationVariantsConfigurationSettings, filePreviewDeleteButtonAnimationVariantsConfigurationSettings = _ref$filePreviewDelet === void 0 ? {} : _ref$filePreviewDelet, _ref$applicationDocum3 = _ref.applicationDocumentPreviewAnimationConfigurationSettings, applicationDocumentPreviewAnimationConfigurationSettings = _ref$applicationDocum3 === void 0 ? {} : _ref$applicationDocum3, _ref$filePreviewActio = _ref.filePreviewActionAnimationVariantsConfigurationSettings, filePreviewActionAnimationVariantsConfigurationSettings = _ref$filePreviewActio === void 0 ? {} : _ref$filePreviewActio, _ref$documentPreviewA = _ref.documentPreviewAnimationTransitionConfigurationSettings, documentPreviewAnimationTransitionConfigurationSettings = _ref$documentPreviewA === void 0 ? {} : _ref$documentPreviewA, _ref$archivePreviewAn = _ref.archivePreviewAnimationTransitionConfigurationSettings, archivePreviewAnimationTransitionConfigurationSettings = _ref$archivePreviewAn === void 0 ? {} : _ref$archivePreviewAn, _ref$downloadButtonAn = _ref.downloadButtonAnimationVariantsConfigurationSettings, downloadButtonAnimationVariantsConfigurationSettings = _ref$downloadButtonAn === void 0 ? {} : _ref$downloadButtonAn, _ref$imagePreviewAnim = _ref.imagePreviewAnimationTransitionConfigurationSettings, imagePreviewAnimationTransitionConfigurationSettings = _ref$imagePreviewAnim === void 0 ? {} : _ref$imagePreviewAnim, _ref$videoPreviewAnim = _ref.videoPreviewAnimationTransitionConfigurationSettings, videoPreviewAnimationTransitionConfigurationSettings = _ref$videoPreviewAnim === void 0 ? {} : _ref$videoPreviewAnim, _ref$audioPreviewAnim = _ref.audioPreviewAnimationTransitionConfigurationSettings, audioPreviewAnimationTransitionConfigurationSettings = _ref$audioPreviewAnim === void 0 ? {} : _ref$audioPreviewAnim, _ref$documentPreviewI = _ref.documentPreviewInitialAnimationConfigurationSettings, documentPreviewInitialAnimationConfigurationSettings = _ref$documentPreviewI === void 0 ? {} : _ref$documentPreviewI, _ref$archivePreviewIn = _ref.archivePreviewInitialAnimationConfigurationSettings, archivePreviewInitialAnimationConfigurationSettings = _ref$archivePreviewIn === void 0 ? {} : _ref$archivePreviewIn, _ref$textPreviewAnima = _ref.textPreviewAnimationTransitionConfigurationSettings, textPreviewAnimationTransitionConfigurationSettings = _ref$textPreviewAnima === void 0 ? {} : _ref$textPreviewAnima, _ref$copyFilePreviewU2 = _ref.copyFilePreviewURLButtonHoverConfigurationSettings, copyFilePreviewURLButtonHoverConfigurationSettings = _ref$copyFilePreviewU2 === void 0 ? {} : _ref$copyFilePreviewU2, _ref$copyFilePreviewU3 = _ref.copyFilePreviewURLButtonTextConfigurationSettings, copyFilePreviewURLButtonTextConfigurationSettings = _ref$copyFilePreviewU3 === void 0 ? {} : _ref$copyFilePreviewU3, _ref$filePreviewDelet2 = _ref.filePreviewDeleteButtonHoverConfigurationSettings, filePreviewDeleteButtonHoverConfigurationSettings = _ref$filePreviewDelet2 === void 0 ? {} : _ref$filePreviewDelet2, _ref$imagePreviewInit = _ref.imagePreviewInitialAnimationConfigurationSettings, imagePreviewInitialAnimationConfigurationSettings = _ref$imagePreviewInit === void 0 ? {} : _ref$imagePreviewInit, _ref$videoPreviewInit = _ref.videoPreviewInitialAnimationConfigurationSettings, videoPreviewInitialAnimationConfigurationSettings = _ref$videoPreviewInit === void 0 ? {} : _ref$videoPreviewInit, _ref$audioPreviewInit = _ref.audioPreviewInitialAnimationConfigurationSettings, audioPreviewInitialAnimationConfigurationSettings = _ref$audioPreviewInit === void 0 ? {} : _ref$audioPreviewInit, _ref$textPreviewIniti = _ref.textPreviewInitialAnimationConfigurationSettings, textPreviewInitialAnimationConfigurationSettings = _ref$textPreviewIniti === void 0 ? {} : _ref$textPreviewIniti, _ref$copyFilePreviewU4 = _ref.copyFilePreviewURLButtonTapConfigurationSettings, copyFilePreviewURLButtonTapConfigurationSettings = _ref$copyFilePreviewU4 === void 0 ? {} : _ref$copyFilePreviewU4, _ref$unsupportedFileP = _ref.unsupportedFilePreviewLabelConfigurationSettings, unsupportedFilePreviewLabelConfigurationSettings = _ref$unsupportedFileP === void 0 ? {} : _ref$unsupportedFileP, _ref$applicationDocum4 = _ref.applicationDocumentPreviewConfigurationSettings, applicationDocumentPreviewConfigurationSettings = _ref$applicationDocum4 === void 0 ? {} : _ref$applicationDocum4, _ref$filePreviewDelet3 = _ref.filePreviewDeleteButtonTapConfigurationSettings, filePreviewDeleteButtonTapConfigurationSettings = _ref$filePreviewDelet3 === void 0 ? {} : _ref$filePreviewDelet3, _ref$headerAnimationT = _ref.headerAnimationTransitionConfigurationSettings, headerAnimationTransitionConfigurationSettings = _ref$headerAnimationT === void 0 ? {} : _ref$headerAnimationT, _ref$footerConfigurat = _ref.footerConfigurationAnimationTransitionSettings, footerConfigurationAnimationTransitionSettings = _ref$footerConfigurat === void 0 ? {} : _ref$footerConfigurat, _ref$copyFilePreviewU5 = _ref.copyFilePreviewURLButtonConfigurationSettings, copyFilePreviewURLButtonConfigurationSettings = _ref$copyFilePreviewU5 === void 0 ? {} : _ref$copyFilePreviewU5, _ref$documentPreviewA2 = _ref.documentPreviewAnimationConfigurationSettings, documentPreviewAnimationConfigurationSettings = _ref$documentPreviewA2 === void 0 ? {} : _ref$documentPreviewA2, _ref$filePreviewDelet4 = _ref.filePreviewDeleteButtonConfigurationSettings, filePreviewDeleteButtonConfigurationSettings = _ref$filePreviewDelet4 === void 0 ? {} : _ref$filePreviewDelet4, _ref$archivePreviewAn2 = _ref.archivePreviewAnimationConfigurationSettings, archivePreviewAnimationConfigurationSettings = _ref$archivePreviewAn2 === void 0 ? {} : _ref$archivePreviewAn2, _ref$headerInitialAni = _ref.headerInitialAnimationConfigurationSettings, headerInitialAnimationConfigurationSettings = _ref$headerInitialAni === void 0 ? {} : _ref$headerInitialAni, _ref$footerConfigurat2 = _ref.footerConfigurationInitialAnimationSettings, footerConfigurationInitialAnimationSettings = _ref$footerConfigurat2 === void 0 ? {} : _ref$footerConfigurat2, _ref$imagePreviewAnim2 = _ref.imagePreviewAnimationConfigurationSettings, imagePreviewAnimationConfigurationSettings = _ref$imagePreviewAnim2 === void 0 ? {} : _ref$imagePreviewAnim2, _ref$videoPreviewAnim2 = _ref.videoPreviewAnimationConfigurationSettings, videoPreviewAnimationConfigurationSettings = _ref$videoPreviewAnim2 === void 0 ? {} : _ref$videoPreviewAnim2, _ref$audioPreviewAnim2 = _ref.audioPreviewAnimationConfigurationSettings, audioPreviewAnimationConfigurationSettings = _ref$audioPreviewAnim2 === void 0 ? {} : _ref$audioPreviewAnim2, _ref$textPreviewAnima2 = _ref.textPreviewAnimationConfigurationSettings, textPreviewAnimationConfigurationSettings = _ref$textPreviewAnima2 === void 0 ? {} : _ref$textPreviewAnima2, _ref$downloadButtonHo = _ref.downloadButtonHoverConfigurationSettings, downloadButtonHoverConfigurationSettings = _ref$downloadButtonHo === void 0 ? {} : _ref$downloadButtonHo, _ref$downloadButtonTa = _ref.downloadButtonTapConfigurationSettings, downloadButtonTapConfigurationSettings = _ref$downloadButtonTa === void 0 ? {} : _ref$downloadButtonTa, _ref$filePreviewActio2 = _ref.filePreviewActionConfigurationSettings, filePreviewActionConfigurationSettings = _ref$filePreviewActio2 === void 0 ? {} : _ref$filePreviewActio2, _ref$previewContainer = _ref.previewContainerConfigurationSettings, previewContainerConfigurationSettings = _ref$previewContainer === void 0 ? {} : _ref$previewContainer, _ref$headerAnimationC = _ref.headerAnimationConfigurationSettings, headerAnimationConfigurationSettings = _ref$headerAnimationC === void 0 ? {} : _ref$headerAnimationC, _ref$footerConfigurat3 = _ref.footerConfigurationAnimationSettings, footerConfigurationAnimationSettings = _ref$footerConfigurat3 === void 0 ? {} : _ref$footerConfigurat3, _ref$documentPreviewC = _ref.documentPreviewConfigurationSettings, documentPreviewConfigurationSettings = _ref$documentPreviewC === void 0 ? {} : _ref$documentPreviewC, _ref$downloadButtonCo = _ref.downloadButtonConfigurationSettings, downloadButtonConfigurationSettings = _ref$downloadButtonCo === void 0 ? {} : _ref$downloadButtonCo, _ref$archivePreviewCo = _ref.archivePreviewConfigurationSettings, archivePreviewConfigurationSettings = _ref$archivePreviewCo === void 0 ? {} : _ref$archivePreviewCo, _ref$imagePreviewConf = _ref.imagePreviewConfigurationSettings, imagePreviewConfigurationSettings = _ref$imagePreviewConf === void 0 ? {} : _ref$imagePreviewConf, _ref$videoPreviewConf = _ref.videoPreviewConfigurationSettings, videoPreviewConfigurationSettings = _ref$videoPreviewConf === void 0 ? {} : _ref$videoPreviewConf, _ref$audioPreviewConf = _ref.audioPreviewConfigurationSettings, audioPreviewConfigurationSettings = _ref$audioPreviewConf === void 0 ? {} : _ref$audioPreviewConf, _ref$textPreviewConfi = _ref.textPreviewConfigurationSettings, textPreviewConfigurationSettings = _ref$textPreviewConfi === void 0 ? {} : _ref$textPreviewConfi, _ref$headerLeftConfig = _ref.headerLeftConfigurationSettings, headerLeftConfigurationSettings = _ref$headerLeftConfig === void 0 ? {} : _ref$headerLeftConfig, _ref$imageViewConfigu = _ref.imageViewConfigurationSettings, imageViewConfigurationSettings = _ref$imageViewConfigu === void 0 ? {} : _ref$imageViewConfigu, _ref$fileInfoConfigur = _ref.fileInfoConfigurationSettings, fileInfoConfigurationSettings = _ref$fileInfoConfigur === void 0 ? {} : _ref$fileInfoConfigur, _ref$fileNameConfigur = _ref.fileNameConfigurationSettings, fileNameConfigurationSettings = _ref$fileNameConfigur === void 0 ? {} : _ref$fileNameConfigur, _ref$fileSizeConfigur = _ref.fileSizeConfigurationSettings, fileSizeConfigurationSettings = _ref$fileSizeConfigur === void 0 ? {} : _ref$fileSizeConfigur, _ref$headerConfigurat = _ref.headerConfigurationSettings, headerConfigurationSettings = _ref$headerConfigurat === void 0 ? {} : _ref$headerConfigurat, _ref$footerConfigurat4 = _ref.footerConfigurationSettings, footerConfigurationSettings = _ref$footerConfigurat4 === void 0 ? {} : _ref$footerConfigurat4, _ref$copyFilePreviewU6 = _ref.copyFilePreviewURLButtonIconConfigurations, copyFilePreviewURLButtonIconConfigurations = _ref$copyFilePreviewU6 === void 0 ? {} : _ref$copyFilePreviewU6, _ref$copyFilePreviewU7 = _ref.copyFilePreviewURLButtonTextConfigurations, copyFilePreviewURLButtonTextConfigurations = _ref$copyFilePreviewU7 === void 0 ? {} : _ref$copyFilePreviewU7, _ref$filePreviewDelet5 = _ref.filePreviewDeleteButtonIconConfigurations, filePreviewDeleteButtonIconConfigurations = _ref$filePreviewDelet5 === void 0 ? {} : _ref$filePreviewDelet5, _ref$unsupportedFileP2 = _ref.unsupportedFilePreviewLabelConfigurations, unsupportedFilePreviewLabelConfigurations = _ref$unsupportedFileP2 === void 0 ? {} : _ref$unsupportedFileP2, _ref$applicationDocum5 = _ref.applicationDocumentPreviewConfigurations, applicationDocumentPreviewConfigurations = _ref$applicationDocum5 === void 0 ? {} : _ref$applicationDocum5, _ref$copyFilePreviewU8 = _ref.copyFilePreviewURLButtonConfigurations, copyFilePreviewURLButtonConfigurations = _ref$copyFilePreviewU8 === void 0 ? {} : _ref$copyFilePreviewU8, _ref$filePreviewDelet6 = _ref.filePreviewDeleteButtonConfigurations, filePreviewDeleteButtonConfigurations = _ref$filePreviewDelet6 === void 0 ? {} : _ref$filePreviewDelet6, _ref$downloadButtonIc = _ref.downloadButtonIconConfigurations, downloadButtonIconConfigurations = _ref$downloadButtonIc === void 0 ? {} : _ref$downloadButtonIc, _ref$filePreviewActio3 = _ref.filePreviewActionConfigurations, filePreviewActionConfigurations = _ref$filePreviewActio3 === void 0 ? {} : _ref$filePreviewActio3, _ref$previewContainer2 = _ref.previewContainerConfigurations, previewContainerConfigurations = _ref$previewContainer2 === void 0 ? {} : _ref$previewContainer2, _ref$documentPreviewC2 = _ref.documentPreviewConfigurations, documentPreviewConfigurations = _ref$documentPreviewC2 === void 0 ? {} : _ref$documentPreviewC2, _ref$unknownFileIconC = _ref.unknownFileIconConfigurations, unknownFileIconConfigurations = _ref$unknownFileIconC === void 0 ? {} : _ref$unknownFileIconC, _ref$downloadButtonCo2 = _ref.downloadButtonConfigurations, downloadButtonConfigurations = _ref$downloadButtonCo2 === void 0 ? {} : _ref$downloadButtonCo2, _ref$archivePreviewCo2 = _ref.archivePreviewConfigurations, archivePreviewConfigurations = _ref$archivePreviewCo2 === void 0 ? {} : _ref$archivePreviewCo2, _ref$textFileIconConf = _ref.textFileIconConfigurations, textFileIconConfigurations = _ref$textFileIconConf === void 0 ? {} : _ref$textFileIconConf, _ref$imagePreviewConf2 = _ref.imagePreviewConfigurations, imagePreviewConfigurations = _ref$imagePreviewConf2 === void 0 ? {} : _ref$imagePreviewConf2, _ref$audioPreviewConf2 = _ref.audioPreviewConfigurations, audioPreviewConfigurations = _ref$audioPreviewConf2 === void 0 ? {} : _ref$audioPreviewConf2, _ref$videoPreviewConf2 = _ref.videoPreviewConfigurations, videoPreviewConfigurations = _ref$videoPreviewConf2 === void 0 ? {} : _ref$videoPreviewConf2, _ref$documentIconConf = _ref.documentIconConfigurations, documentIconConfigurations = _ref$documentIconConf === void 0 ? {} : _ref$documentIconConf, _ref$archiveViewConfi = _ref.archiveViewConfigurations, archiveViewConfigurations = _ref$archiveViewConfi === void 0 ? {} : _ref$archiveViewConfi, _ref$archiveIconConfi = _ref.archiveIconConfigurations, archiveIconConfigurations = _ref$archiveIconConfi === void 0 ? {} : _ref$archiveIconConfi, _ref$textPreviewConfi2 = _ref.textPreviewConfigurations, textPreviewConfigurations = _ref$textPreviewConfi2 === void 0 ? {} : _ref$textPreviewConfi2, _ref$binaryIconConfig = _ref.binaryIconConfigurations, binaryIconConfigurations = _ref$binaryIconConfig === void 0 ? {} : _ref$binaryIconConfig, _ref$headerLeftConfig2 = _ref.headerLeftConfigurations, headerLeftConfigurations = _ref$headerLeftConfig2 === void 0 ? {} : _ref$headerLeftConfig2, _ref$imageViewConfigu2 = _ref.imageViewConfigurations, imageViewConfigurations = _ref$imageViewConfigu2 === void 0 ? {} : _ref$imageViewConfigu2, _ref$audioIconConfigu = _ref.audioIconConfigurations, audioIconConfigurations = _ref$audioIconConfigu === void 0 ? {} : _ref$audioIconConfigu, _ref$videoIconConfigu = _ref.videoIconConfigurations, videoIconConfigurations = _ref$videoIconConfigu === void 0 ? {} : _ref$videoIconConfigu, _ref$imageIconConfigu = _ref.imageIconConfigurations, imageIconConfigurations = _ref$imageIconConfigu === void 0 ? {} : _ref$imageIconConfigu, _ref$codeIconConfigur = _ref.codeIconConfigurations, codeIconConfigurations = _ref$codeIconConfigur === void 0 ? {} : _ref$codeIconConfigur, _ref$fileInfoConfigur2 = _ref.fileInfoConfigurations, fileInfoConfigurations = _ref$fileInfoConfigur2 === void 0 ? {} : _ref$fileInfoConfigur2, _ref$fileNameConfigur2 = _ref.fileNameConfigurations, fileNameConfigurations = _ref$fileNameConfigur2 === void 0 ? {} : _ref$fileNameConfigur2, _ref$fileSizeConfigur2 = _ref.fileSizeConfigurations, fileSizeConfigurations = _ref$fileSizeConfigur2 === void 0 ? {} : _ref$fileSizeConfigur2, _ref$headerConfigurat2 = _ref.headerConfigurations, headerConfigurations = _ref$headerConfigurat2 === void 0 ? {} : _ref$headerConfigurat2, _ref$footerConfigurat5 = _ref.footerConfigurations, footerConfigurations = _ref$footerConfigurat5 === void 0 ? {} : _ref$footerConfigurat5, handleDownload = _ref.handleDownload, onDelete = _ref.onDelete, _ref$rightHeaderActio = _ref.rightHeaderActionContent, rightHeaderActionContent = _ref$rightHeaderActio === void 0 ? null : _ref$rightHeaderActio, _ref$leftHeaderAction = _ref.leftHeaderActionContent, leftHeaderActionContent = _ref$leftHeaderAction === void 0 ? null : _ref$leftHeaderAction, _ref$headerActionCont = _ref.headerActionContent, headerActionContent = _ref$headerActionCont === void 0 ? null : _ref$headerActionCont, _ref$rightHeaderConte = _ref.rightHeaderContent, rightHeaderContent = _ref$rightHeaderConte === void 0 ? null : _ref$rightHeaderConte, _ref$leftHeaderConten = _ref.leftHeaderContent, leftHeaderContent = _ref$leftHeaderConten === void 0 ? null : _ref$leftHeaderConten, _ref$loadingContent = _ref.loadingContent, loadingContent = _ref$loadingContent === void 0 ? null : _ref$loadingContent, _ref$headerContent = _ref.headerContent, headerContent = _ref$headerContent === void 0 ? null : _ref$headerContent, _ref$footerContent = _ref.footerContent, footerContent = _ref$footerContent === void 0 ? null : _ref$footerContent, _ref$copyFilePreviewU9 = _ref.copyFilePreviewURLButtonText, copyFilePreviewURLButtonText = _ref$copyFilePreviewU9 === void 0 ? "Copied!" : _ref$copyFilePreviewU9, _ref$forceFileDownloa = _ref.forceFileDownloads, forceFileDownloads = _ref$forceFileDownloa === void 0 ? false : _ref$forceFileDownloa, _ref$showDownloadButt = _ref.showDownloadButton, showDownloadButton = _ref$showDownloadButt === void 0 ? true : _ref$showDownloadButt, _ref$showFileName = _ref.showFileName, showFileName = _ref$showFileName === void 0 ? true : _ref$showFileName, _ref$showFileSize = _ref.showFileSize, showFileSize = _ref$showFileSize === void 0 ? true : _ref$showFileSize, _ref$showActions = _ref.showActions, showActions = _ref$showActions === void 0 ? true : _ref$showActions, _ref$showFooter = _ref.showFooter, showFooter = _ref$showFooter === void 0 ? false : _ref$showFooter, file = _ref.file; var _useState = useState(""), _useState2 = _slicedToArray(_useState, 2), textFileContent = _useState2[0], setTextFileContent = _useState2[1]; var _useState3 = useState(null), _useState4 = _slicedToArray(_useState3, 2), previewUrl = _useState4[0], setPreviewUrl = _useState4[1]; var _useState5 = useState(""), _useState6 = _slicedToArray(_useState5, 2), contentType = _useState6[0], setContentType = _useState6[1]; var _useState7 = useState(null), _useState8 = _slicedToArray(_useState7, 2), archiveList = _useState8[0], setArchiveList = _useState8[1]; var _useState9 = useState(false), _useState10 = _slicedToArray(_useState9, 2), downloading = _useState10[0], setDownloading = _useState10[1]; var _useState11 = useState(true), _useState12 = _slicedToArray(_useState11, 2), loading = _useState12[0], setLoading = _useState12[1]; var _useState13 = useState(""), _useState14 = _slicedToArray(_useState13, 2), fileName = _useState14[0], setFileName = _useState14[1]; var _useState15 = useState(""), _useState16 = _slicedToArray(_useState15, 2), fileSize = _useState16[0], setFileSize = _useState16[1]; var _useState17 = useState(false), _useState18 = _slicedToArray(_useState17, 2), copied = _useState18[0], setCopied = _useState18[1]; var fetchFileMetadata = function fetchFileMetadata(url) { fetch(url, { method: "HEAD" }).then(function (response) { var size = response.headers.get("content-length"); if (size && !fileSize) { setFileSize(ConvertFileSizeToDisplay(Number(size))); } })["catch"](function () { setFileSize("Unknown Size"); }); }; var handleDefaultDownload = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; setDownloading(true); _context.next = 4; return DownloadFileFromURL(previewUrl, fileName, forceFileDownloads); case 4: _context.next = 8; break; case 6: _context.prev = 6; _context.t0 = _context["catch"](0); case 8: _context.prev = 8; setDownloading(false); return _context.finish(8); case 11: case "end": return _context.stop(); } }, _callee, null, [[0, 6, 8, 11]]); })); return function handleDefaultDownload() { return _ref2.apply(this, arguments); }; }(); var handleCopyLink = function handleCopyLink() { navigator.clipboard.writeText(previewUrl); setCopied(true); setTimeout(function () { return setCopied(false); }, 1500); }; var getFileIcon = function getFileIcon() { switch (contentType) { case "image": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "image" }, imageIconConfigurations)); case "video": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "video" }, videoIconConfigurations)); case "audio": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "audio" }, audioIconConfigurations)); case "text": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "file-alt" }, textFileIconConfigurations)); case "code": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "code" }, codeIconConfigurations)); case "document": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "file" }, documentIconConfigurations)); case "archive": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "file-archive" }, archiveIconConfigurations)); case "binary": return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "microchip" }, binaryIconConfigurations)); default: return /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "question" }, unknownFileIconConfigurations)); } }; var renderPreview = function renderPreview() { var lowerName = fileName.toLowerCase(); if (contentType === "document") { if (lowerName.endsWith(".pdf")) { return /*#__PURE__*/React.createElement(motion.iframe, _extends({ initial: _objectSpread({ opacity: 0 }, documentPreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, documentPreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.469 }, documentPreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ border: "none", borderRadius: "0rem 0rem 1rem 1rem", minWidth: "69rem", height: "637px", width: "calc(100%)" }, documentPreviewConfigurationSettings), src: previewUrl }, documentPreviewConfigurations)); } if (/\.(docx?|pptx?|xlsx?)$/.test(lowerName)) { var encodedUrl = encodeURIComponent(previewUrl); var viewerUrl = "https://view.officeapps.live.com/op/view.aspx?src=".concat(encodedUrl); return /*#__PURE__*/React.createElement(motion.iframe, _extends({ initial: _objectSpread({ opacity: 0 }, applicationDocumentPreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, applicationDocumentPreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.469 }, applicationDocumentPreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ border: "none", borderRadius: "0rem 0rem 1rem 1rem", minWidth: "69rem", height: "637px", width: "calc(100%)" }, applicationDocumentPreviewConfigurationSettings), src: viewerUrl }, applicationDocumentPreviewConfigurations)); } } if (contentType === "archive") { var archiveContents = archiveList ? ConvertPathsToArchiveTree(archiveList) : []; return /*#__PURE__*/React.createElement(motion.div, _extends({ initial: _objectSpread({ opacity: 0 }, archivePreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, archivePreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.469 }, archivePreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ display: "flex", justifyContent: "center", minWidth: "69rem", width: "calc(100%)" }, archivePreviewConfigurationSettings) }, archivePreviewConfigurations), archiveContents.length > 0 ? /*#__PURE__*/React.createElement(HUDArchiveTree, _extends({}, archiveViewConfigurations, { tree: archiveContents })) : /*#__PURE__*/React.createElement(motion.div, _extends({ initial: _objectSpread({ opacity: 0 }, archivePreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, archivePreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.469 }, archivePreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ fontFamily: "monospace", padding: "20px" }, archivePreviewConfigurationSettings) }, archivePreviewConfigurations), /*#__PURE__*/React.createElement(HUDTyper, { speed: 3.69 }, "Unable to load content"))); } if (contentType === "image") { return /*#__PURE__*/React.createElement(motion.div, _extends({ initial: _objectSpread({ opacity: 0 }, imagePreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, imagePreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.469 }, imagePreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ display: "flex", justifyContent: "center", minWidth: "69rem", width: "calc(100%)" }, imagePreviewConfigurationSettings) }, imagePreviewConfigurations), /*#__PURE__*/React.createElement(HUDIcon, _extends({ iconConfigurationSettings: _objectSpread({ display: "flex", borderRadius: "0rem 0rem 1rem 1rem", height: "37.69rem" }, imageViewConfigurationSettings), svg: previewUrl }, imageViewConfigurations))); } if (contentType === "video") { return /*#__PURE__*/React.createElement(motion.video, _extends({ initial: _objectSpread({ opacity: 0 }, videoPreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, videoPreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.569 }, videoPreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ borderRadius: "0rem 0rem 1rem 1rem", minWidth: "69rem", height: "637px", width: "calc(100%)" }, videoPreviewConfigurationSettings), src: previewUrl, controls: true }, videoPreviewConfigurations)); } if (contentType === "audio") { return /*#__PURE__*/React.createElement(motion.audio, _extends({ initial: _objectSpread({ opacity: 0 }, audioPreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, audioPreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.569 }, audioPreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ borderRadius: "0rem 0rem 1rem 1rem", minWidth: "69rem", width: "calc(100%)", padding: "16px" }, audioPreviewConfigurationSettings), src: previewUrl, controls: true }, audioPreviewConfigurations)); } if (contentType === "text" || contentType === "code") { return /*#__PURE__*/React.createElement(motion.div, _extends({ initial: _objectSpread({ opacity: 0 }, textPreviewInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1 }, textPreviewAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.469 }, textPreviewAnimationTransitionConfigurationSettings), style: _objectSpread({ fontFamily: "monospace", borderRadius: "0rem 0rem 1rem 1rem", minWidth: "69rem", padding: "20px" }, textPreviewConfigurationSettings) }, textPreviewConfigurations), /*#__PURE__*/React.createElement(HUDTyper, { speed: 3.69 }, textFileContent)); } return /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread(_objectSpread({ borderRadius: "0rem 0rem 1rem 1rem", minWidth: "69rem" }, style.unsupported), unsupportedFilePreviewLabelConfigurationSettings) }, unsupportedFilePreviewLabelConfigurations), "Unsupported file type"); }; useEffect(function () { var inferredType = ""; if (typeof file === "string") { setPreviewUrl(file); setFileName(file.split("/").pop()); inferredType = DetermineFileType({ name: file, contentType: "" }); fetchFileMetadata(file); } else if (file instanceof File) { setPreviewUrl(URL.createObjectURL(file)); setFileName(file.name); inferredType = DetermineFileType({ name: file.name, contentType: file.type }); setFileSize(ConvertFileSizeToDisplay(file.size)); } else if (file.url) { setPreviewUrl(file.url); setFileName(file.name || file.url.split("/").pop()); inferredType = DetermineFileType({ name: file.name || file.url, contentType: file.contentType || "" }); if (file.size) { setFileSize(ConvertFileSizeToDisplay(file.size)); } else { fetchFileMetadata(file.url); } } setContentType(inferredType); setLoading(false); if (inferredType === "text" || inferredType === "code") { if (file instanceof File) { file.text().then(setTextFileContent)["catch"](function () { return setTextFileContent("Unable to load content."); }); } else if (typeof file === "string") { fetch(file).then(function (res) { return res.ok ? res.text() : Promise.reject(); }).then(setTextFileContent)["catch"](function () { return setTextFileContent("Unable to load content."); }); } else if (file.url) { fetch(file.url).then(function (res) { return res.ok ? res.text() : Promise.reject(); }).then(setTextFileContent)["catch"](function () { return setTextFileContent("Unable to load content."); }); } } if (inferredType === "archive") { ExtractZipContents(file.url).then(function (filePaths) { if (!filePaths) { return; } setArchiveList(filePaths); }); } }, [file]); return /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread(_objectSpread({}, style.container), previewContainerConfigurationSettings) }, previewContainerConfigurations), loading ? /*#__PURE__*/React.createElement(React.Fragment, null, loadingContent ? loadingContent : /*#__PURE__*/React.createElement("div", { style: style.loading }, "Loading...")) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(motion.div, _extends({ initial: _objectSpread({ opacity: 0, y: -20 }, headerInitialAnimationConfigurationSettings), animate: _objectSpread({ opacity: 1, y: 0 }, headerAnimationConfigurationSettings), transition: _objectSpread({ duration: 0.369 }, headerAnimationTransitionConfigurationSettings), style: _objectSpread(_objectSpread({}, style.header), headerConfigurationSettings) }, headerConfigurations), leftHeaderContent, /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread(_objectSpread({}, style.headerLeft), headerLeftConfigurationSettings) }, headerLeftConfigurations), getFileIcon(), /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread(_objectSpread({}, style.fileInfo), fileInfoConfigurationSettings) }, fileInfoConfigurations), showFileName && /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread(_objectSpread({}, style.fileName), fileNameConfigurationSettings), title: fileName }, fileNameConfigurations), fileName), showFileSize && fileSize && /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread(_objectSpread({}, style.fileSize), fileSizeConfigurationSettings) }, fileSizeConfigurations), fileSize))), headerContent, /*#__PURE__*/React.createElement(motion.div, _extends({ initial: "hidden", animate: "visible", variants: _objectSpread({ visible: { transition: { staggerChildren: 0.1 } }, hidden: {} }, filePreviewActionAnimationVariantsConfigurationSettings), style: _objectSpread(_objectSpread({}, style.actions), filePreviewActionConfigurationSettings) }, filePreviewActionConfigurations), leftHeaderActionContent, showActions && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(motion.button, _extends({ variants: _objectSpread({ hidden: { opacity: 0, y: -6 }, visible: { opacity: 1, y: 0 } }, copyFilePreviewURLButtonAnimationVariantsConfigurationSettings), whileHover: _objectSpread({ scale: 1.1 }, copyFilePreviewURLButtonHoverConfigurationSettings), whileTap: _objectSpread({ scale: 0.95 }, copyFilePreviewURLButtonTapConfigurationSettings), style: _objectSpread(_objectSpread({ gap: "1.69px" }, style.iconButton), copyFilePreviewURLButtonConfigurationSettings), onClick: handleCopyLink }, copyFilePreviewURLButtonConfigurations), /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: copied ? "check" : "link" }, copyFilePreviewURLButtonIconConfigurations)), copied && /*#__PURE__*/React.createElement("span", _extends({ style: _objectSpread(_objectSpread({}, style.iconCopied), copyFilePreviewURLButtonTextConfigurationSettings) }, copyFilePreviewURLButtonTextConfigurations), copyFilePreviewURLButtonText)), onDelete && /*#__PURE__*/React.createElement(motion.button, _extends({ variants: _objectSpread({ hidden: { opacity: 0, y: -6 }, visible: { opacity: 1, y: 0 } }, filePreviewDeleteButtonAnimationVariantsConfigurationSettings), whileHover: _objectSpread({ scale: 1.1 }, filePreviewDeleteButtonHoverConfigurationSettings), whileTap: _objectSpread({ scale: 0.95 }, filePreviewDeleteButtonTapConfigurationSettings), style: _objectSpread(_objectSpread({}, style.iconButton), filePreviewDeleteButtonConfigurationSettings), onClick: function onClick(e) { onDelete(e, file); } }, filePreviewDeleteButtonConfigurations), /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "trash" }, filePreviewDeleteButtonIconConfigurations)))), headerActionContent, showDownloadButton && /*#__PURE__*/React.createElement(motion.button, _extends({ variants: _objectSpread({ hidden: { opacity: 0, y: -6 }, visible: { opacity: 1, y: 0 } }, downloadButtonAnimationVariantsConfigurationSettings), whileHover: _objectSpread({ scale: 1.069, boxShadow: "0 0 12px rgba(0, 179, 255, 0.369)" }, downloadButtonHoverConfigurationSettings), whileTap: _objectSpread({ scale: 0.95 }, downloadButtonTapConfigurationSettings), style: _objectSpread(_objectSpread({}, style.download), downloadButtonConfigurationSettings), onClick: function onClick(e) { e.preventDefault(); if (handleDownload) { handleDownload(file, setDownloading); } else { handleDefaultDownload(); } } }, downloadButtonConfigurations), /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "download" }, downloadButtonIconConfigurations))), rightHeaderActionContent), rightHeaderContent), renderPreview(), showFooter && footerContent && /*#__PURE__*/React.createElement(motion.div, _extends({ initial: _objectSpread({ opacity: 0, y: 20 }, footerConfigurationInitialAnimationSettings), animate: _objectSpread({ opacity: 1, y: 0 }, footerConfigurationAnimationSettings), transition: _objectSpread({ duration: 0.3 }, footerConfigurationAnimationTransitionSettings), style: _objectSpread(_objectSpread({}, style.footer), footerConfigurationSettings) }, footerConfigurations), footerContent))); } ; export default HUDFilePreview;