UNPKG

@trap_stevo/legendarybuilderproreact-ui

Version:

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

113 lines 6.69 kB
import _extends from "@babel/runtime/helpers/extends"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; 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 React from "react"; import { ConvertFileSizeToDisplay } from "../HUDManagers/HUDUniversalHUDUtilityManager.js"; import HUDIcon from "./HUDIcon.js"; function iconForType(t) { switch (t) { case "image": return "file-image"; case "video": return "file-video"; case "audio": return "file-audio"; case "text": return "file-alt"; case "application": return "file"; default: return "file"; } } ; function HUDFileChip(_ref) { var _ref$fileChipDeleteBu = _ref.fileChipDeleteButtonConfigurationSettings, fileChipDeleteButtonConfigurationSettings = _ref$fileChipDeleteBu === void 0 ? {} : _ref$fileChipDeleteBu, _ref$fileChipContaine = _ref.fileChipContainerConfigurationSettings, fileChipContainerConfigurationSettings = _ref$fileChipContaine === void 0 ? {} : _ref$fileChipContaine, _ref$fileChipIconConf = _ref.fileChipIconConfigurationSettings, fileChipIconConfigurationSettings = _ref$fileChipIconConf === void 0 ? {} : _ref$fileChipIconConf, _ref$fileChipNameConf = _ref.fileChipNameConfigurationSettings, fileChipNameConfigurationSettings = _ref$fileChipNameConf === void 0 ? {} : _ref$fileChipNameConf, _ref$fileChipSizeConf = _ref.fileChipSizeConfigurationSettings, fileChipSizeConfigurationSettings = _ref$fileChipSizeConf === void 0 ? {} : _ref$fileChipSizeConf, _ref$fileChipDeleteBu2 = _ref.fileChipDeleteButtonIconConfigurations, fileChipDeleteButtonIconConfigurations = _ref$fileChipDeleteBu2 === void 0 ? {} : _ref$fileChipDeleteBu2, _ref$fileChipDeleteBu3 = _ref.fileChipDeleteButtonConfigurations, fileChipDeleteButtonConfigurations = _ref$fileChipDeleteBu3 === void 0 ? {} : _ref$fileChipDeleteBu3, _ref$fileChipContaine2 = _ref.fileChipContainerConfigurations, fileChipContainerConfigurations = _ref$fileChipContaine2 === void 0 ? {} : _ref$fileChipContaine2, _ref$fileChipIconConf2 = _ref.fileChipIconConfigurations, fileChipIconConfigurations = _ref$fileChipIconConf2 === void 0 ? {} : _ref$fileChipIconConf2, _ref$fileChipNameConf2 = _ref.fileChipNameConfigurations, fileChipNameConfigurations = _ref$fileChipNameConf2 === void 0 ? {} : _ref$fileChipNameConf2, _ref$fileChipSizeConf2 = _ref.fileChipSizeConfigurations, fileChipSizeConfigurations = _ref$fileChipSizeConf2 === void 0 ? {} : _ref$fileChipSizeConf2, file = _ref.file, onRemove = _ref.onRemove, palette = _ref.palette, sizes = _ref.sizes; var type = (file.type || "").split("/")[0] || "file"; var pretty = "".concat(file.name, " \u2022 ").concat(ConvertFileSizeToDisplay(file.size)); return /*#__PURE__*/React.createElement("div", _extends({ title: pretty, style: _objectSpread({ display: "inline-flex", alignItems: "center", border: "1px solid ".concat(palette.chipStroke), borderRadius: 12, boxShadow: "0 2px 8px rgba(0, 0, 0, 0.25)", background: palette.chipBg, maxWidth: 360, gap: 8, padding: "8px 10px" }, fileChipContainerConfigurationSettings !== null && fileChipContainerConfigurationSettings !== void 0 ? fileChipContainerConfigurationSettings : {}) }, fileChipContainerConfigurations !== null && fileChipContainerConfigurations !== void 0 ? fileChipContainerConfigurations : {}), /*#__PURE__*/React.createElement(HUDIcon, _extends({ iconConfigurationSettings: _objectSpread({ height: sizes.icon - 10, width: sizes.icon - 10 }, fileChipIconConfigurationSettings !== null && fileChipIconConfigurationSettings !== void 0 ? fileChipIconConfigurationSettings : {}), name: iconForType(type), color: palette.subtext }, fileChipIconConfigurations !== null && fileChipIconConfigurations !== void 0 ? fileChipIconConfigurations : {})), /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread({ textOverflow: "ellipsis", whiteSpace: "nowrap", overflow: "hidden", fontSize: sizes.font - 1, color: palette.text }, fileChipNameConfigurationSettings !== null && fileChipNameConfigurationSettings !== void 0 ? fileChipNameConfigurationSettings : {}) }, fileChipNameConfigurations !== null && fileChipNameConfigurations !== void 0 ? fileChipNameConfigurations : {}), file.name), /*#__PURE__*/React.createElement("div", _extends({ style: _objectSpread({ fontSize: sizes.font - 2, color: palette.subtext, opacity: 0.9 }, fileChipSizeConfigurationSettings !== null && fileChipSizeConfigurationSettings !== void 0 ? fileChipSizeConfigurationSettings : {}) }, fileChipSizeConfigurations !== null && fileChipSizeConfigurations !== void 0 ? fileChipSizeConfigurations : {}), ConvertFileSizeToDisplay(file.size)), /*#__PURE__*/React.createElement("button", _extends({ style: _objectSpread({ cursor: "pointer", outline: "none", border: "none", borderRadius: 8, background: "transparent", color: palette.subtext, padding: 4, marginLeft: 6 }, fileChipDeleteButtonConfigurationSettings !== null && fileChipDeleteButtonConfigurationSettings !== void 0 ? fileChipDeleteButtonConfigurationSettings : {}), onMouseLeave: function onMouseLeave(e) { e.currentTarget.style.color = palette.subtext; }, onMouseEnter: function onMouseEnter(e) { e.currentTarget.style.color = palette.danger; }, onClick: onRemove, "aria-label": "Remove ".concat(file.name), type: "button" }, fileChipDeleteButtonConfigurations !== null && fileChipDeleteButtonConfigurations !== void 0 ? fileChipDeleteButtonConfigurations : {}), /*#__PURE__*/React.createElement(HUDIcon, _extends({ name: "times" }, fileChipDeleteButtonIconConfigurations !== null && fileChipDeleteButtonIconConfigurations !== void 0 ? fileChipDeleteButtonIconConfigurations : {})))); } ; export default HUDFileChip;