UNPKG

offices-viewer

Version:

## Current Renderable File Types

50 lines 1.52 kB
import React, { useRef, useEffect } from 'react'; import JSZip from 'jszip'; import { getContentTypes, getSlideSize, loadTheme, processSingleSlide, processMsgQueue, setThemeContent, genGlobalCSS } from "../utils/pptx"; import "./pptx.css"; import "./nv.d3.min.css"; import "./chart/d3.min.js"; import "./chart/nv.d3.min.js"; function processPPTX(data) { var zip = new JSZip(data); var filesInfo = getContentTypes(zip); var slideSize = getSlideSize(zip); var themeContent = loadTheme(zip); setThemeContent(themeContent); var numOfSlides = filesInfo['slides'].length; var slides = []; for (var i = 0; i < numOfSlides; i++) { var filename = filesInfo['slides'][i]; var slideHtml = processSingleSlide(zip, filename, i, slideSize); slides.push(slideHtml); } return slides; } var PptxViewer = function PptxViewer(props) { var data = props.data; var slides = processPPTX(data); var str = genGlobalCSS(); var refs = useRef(null); useEffect(function () { if (refs.current) { processMsgQueue(); } }, [refs.current]); return /*#__PURE__*/React.createElement("div", { className: "pg-driver-view" }, slides.map(function (i) { return /*#__PURE__*/React.createElement("div", { key: i, dangerouslySetInnerHTML: { __html: i } }); }), /*#__PURE__*/React.createElement("style", { dangerouslySetInnerHTML: { __html: str } }), /*#__PURE__*/React.createElement("div", { ref: refs })); }; export default PptxViewer;