UNPKG

polaris-offices-viewer

Version:

40 lines (39 loc) 1.52 kB
// @ts-nocheck 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 (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 (React.createElement("div", { className: "pg-driver-view" }, slides.map(function (i) { return (React.createElement("div", { className: 'ppt-wrap', key: i, dangerouslySetInnerHTML: { __html: i } })); }), React.createElement("style", { dangerouslySetInnerHTML: { __html: str } }), React.createElement("div", { ref: refs }))); }; export default PptxViewer;