office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
77 lines • 4.65 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = require("react");
var Image_1 = require("../../Image");
var Icon_1 = require("../../Icon");
var Utilities_1 = require("../../Utilities");
var stylesImport = require("./DocumentCard.scss");
var styles = stylesImport;
var LIST_ITEM_COUNT = 3;
var DocumentCardPreview = /** @class */ (function (_super) {
tslib_1.__extends(DocumentCardPreview, _super);
function DocumentCardPreview() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this._renderPreviewList = function (previewImages) {
var getOverflowDocumentCountText = _this.props.getOverflowDocumentCountText;
// Determine how many documents we won't be showing
var overflowDocumentCount = previewImages.length - LIST_ITEM_COUNT;
// Determine the overflow text that will be rendered after the preview list.
var overflowText = overflowDocumentCount
? getOverflowDocumentCountText
? getOverflowDocumentCountText(overflowDocumentCount)
: '+' + overflowDocumentCount
: null;
// Create list items for the documents to be shown
var fileListItems = previewImages.slice(0, LIST_ITEM_COUNT).map(function (file, fileIndex) { return (React.createElement("li", { key: fileIndex },
React.createElement(Image_1.Image, { className: Utilities_1.css('ms-DocumentCardPreview-fileListIcon', styles.fileListIcon), src: file.iconSrc, role: "presentation", alt: "", width: "16px", height: "16px" }),
React.createElement("a", { href: file.url }, file.name))); });
return (React.createElement("div", null,
React.createElement("ul", { className: Utilities_1.css('ms-DocumentCardPreview-fileList', styles.fileList) }, fileListItems),
overflowText && (React.createElement("span", { className: Utilities_1.css('ms-DocumentCardPreview-fileListMore', styles.fileListMore) }, overflowText))));
};
return _this;
}
DocumentCardPreview.prototype.render = function () {
var previewImages = this.props.previewImages;
var style, preview;
var isFileList = false;
if (previewImages.length > 1) {
// Render a list of files
preview = this._renderPreviewList(previewImages);
isFileList = true;
}
else if (previewImages.length === 1) {
// Render a single preview
preview = this._renderPreviewImage(previewImages[0]);
// Override the border color if an accent color was provided
if (previewImages[0].accentColor) {
style = {
borderBottomColor: previewImages[0].accentColor
};
}
}
return (React.createElement("div", { className: Utilities_1.css('ms-DocumentCardPreview', styles.preview, isFileList && 'is-fileList ' + styles.previewIsFileList), style: style }, preview));
};
DocumentCardPreview.prototype._renderPreviewImage = function (previewImage) {
var width = previewImage.width, height = previewImage.height, imageFit = previewImage.imageFit, previewIconProps = previewImage.previewIconProps, previewIconContainerClass = previewImage.previewIconContainerClass;
var iconContainerClass = previewIconContainerClass
? previewIconContainerClass
: 'ms-DocumentCardPreview-iconContainer';
if (previewIconProps) {
return (React.createElement("div", { className: Utilities_1.css(iconContainerClass, styles.previewIconContainer), style: { width: width, height: height } },
React.createElement(Icon_1.Icon, tslib_1.__assign({}, previewIconProps))));
}
var image = (React.createElement(Image_1.Image, { width: width, height: height, imageFit: imageFit, src: previewImage.previewImageSrc, role: "presentation", alt: "" }));
var icon;
if (previewImage.iconSrc) {
icon = (React.createElement(Image_1.Image, { className: Utilities_1.css('ms-DocumentCardPreview-icon', styles.icon), src: previewImage.iconSrc, role: "presentation", alt: "" }));
}
return (React.createElement("div", null,
image,
icon));
};
return DocumentCardPreview;
}(Utilities_1.BaseComponent));
exports.DocumentCardPreview = DocumentCardPreview;
//# sourceMappingURL=DocumentCardPreview.js.map