UNPKG

react-ipdf-viewer-lite

Version:

A lightweight, dependency-free media viewer for PDFs and other media types with advanced controls

63 lines (62 loc) 2.86 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; import { jsx as _jsx } from "react/jsx-runtime"; export var ImageRenderer = function (_a) { var src = _a.src, zoom = _a.zoom, rotation = _a.rotation, onError = _a.onError; return (_jsx("div", __assign({ style: { display: 'flex', justifyContent: 'center', alignItems: 'center', overflow: 'hidden', } }, { children: _jsx("img", { src: src, alt: "", onError: onError ? function () { return onError(new Error('Failed to load image')); } : undefined, style: { transform: "scale(".concat(zoom, ") rotate(").concat(rotation, "deg)"), transition: 'transform 0.4s ease', maxWidth: '100%', maxHeight: '100%', objectFit: 'contain', } }) }))); }; export var VideoRenderer = function (_a) { var src = _a.src, zoom = _a.zoom, rotation = _a.rotation, onError = _a.onError; return (_jsx("div", __assign({ style: { display: 'flex', justifyContent: 'center', alignItems: 'center', overflow: 'hidden', transform: "rotate(".concat(rotation, "deg)"), transition: 'transform 0.3s ease', } }, { children: _jsx("video", { controls: true, src: src, onError: onError ? function () { return onError(new Error('Failed to load video')); } : undefined, style: { transform: "scale(".concat(zoom, ")"), maxWidth: '100%', maxHeight: '100%', } }) }))); }; export var AudioRenderer = function (_a) { var src = _a.src, zoom = _a.zoom, onError = _a.onError; return (_jsx("div", __assign({ style: { display: 'flex', justifyContent: 'center', alignItems: 'center', padding: '20px', } }, { children: _jsx("audio", { controls: true, src: src, onError: onError ? function () { return onError(new Error('Failed to load audio')); } : undefined, style: { width: "".concat(zoom * 100, "%"), maxWidth: '100%', } }) }))); }; export var UnsupportedRenderer = function (_a) { var mimeType = _a.mimeType; return (_jsx("div", __assign({ style: { padding: '20px', textAlign: 'center', color: '#666', } }, { children: mimeType ? "Unsupported media type: ".concat(mimeType) : 'Unsupported media type' }))); };